Comments (7)
I have a couple thoughts after reviewing the code:
- I think this library would benefit from clearly dividing the instrumentation part (i.e. creating spans, context management, trace id injection in logs) and Nest helpers (services, initialization, etc.)
- in other words, that division would best be done by exporting a
NestInstrumentation
, which you can use when initialising Open Telemetry - it's not immediately clear if spans will be created for actions/handlers without
@Span
annotation, it looks to me like they won't, which is a bit unusual for an instrumentation of this kind - the purpose of TraceInterceptor is a bit unclear, did OTel propagators not work for you otherwise?
If you think you have the right Nest expertise to drive the design on Nest's end of this library, I can check if @splunk would commit some resources to make this library play a bit more nicely with Open Telemetry - good support for instrumentation in Nest is on our list. Let me know what you think.
from nestjs-opentelemetry.
@jtmalinowski i think you might be interested in https://github.com/pragmaticivan/nestjs-otel.
from nestjs-opentelemetry.
@mentos1386 thanks for the tip. The repo you linked only provides metrics and some manual instrumentation helpers. Once metrics specification matures, it will be nice to incorporate it.
from nestjs-opentelemetry.
@MetinSeylan I'm closing for now, this library is now in the registry. Maybe there'll be a potential for some more collaboration in the future.
from nestjs-opentelemetry.
@jtmalinowski @mentos1386 we are using this library as a internal tool in my company, that's why we are decided refactor this library dramatically, we are working on it with my team, we will release new version soon, btw thanks for feedback it's important for us
from nestjs-opentelemetry.
Gotcha.
from nestjs-opentelemetry.
finally refactored :)
from nestjs-opentelemetry.
Related Issues (20)
- Nest can't resolve dependencies of the EventSubscribersLoader HOT 1
- Type 'SimpleSpanProcessor' is not assignable to type 'SpanProcessor' HOT 9
- Disable Http Instrumentation HOT 1
- Question: plan to re-introduce Auto Metric Observers? HOT 2
- Nest can't resolve dependencies of the ControllerInjector HOT 5
- `MetricAutoObserver` doesn't work when I register module using `forRootAsync`
- Unable to use with @opentelemetry/exporter-prometheus HOT 3
- Type 'SimpleSpanProcessor' is not assignable to type 'SpanProcessor'. Type 'SimpleSpanProcessor' is not assignable to type 'SpanProcessor' HOT 3
- OTEL metrics SDK is already stable. Do you plan to support metric decorators and Auto Observers? HOT 1
- Deprecation warning: @opentelemetry/api-metrics @ 0.32.0 to >= 1.3.0
- Some issue when record tracing log on guard HOT 2
- Bug: Parent span duration is not correctly calculated HOT 1
- Just getting path logs
- ERROR [ExceptionHandler] Nest can't resolve dependencies of the SDK_INJECTORS (OPEN_TELEMETRY_SDK_CONFIG, ?) HOT 2
- How to send the deployment.environment attribute? HOT 1
- It gets messy debugging with open telemetry enable
- QUESTION: Is it possible to integrate new relic exporter to send metrics?
- Is this package alive? HOT 2
- useClass is missing when importing the module via forRootAsync
- How to use LoggerInjector?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nestjs-opentelemetry.