getsentry / getsentry/sentry-javascript
Add automatic instrumentation to @sentry/nestjs where `@Injectable` is not used
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 1.8k
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 515
Description
Currently the following automatic instrumentations rely on users putting `@Injectable` on top of their implementations:
* Middleware
* Interceptors
* Pipes
* Guards
The problem with this approach is that, even though the nestjs docs say you need the decorator for these constructs, they work fine without if they do not rely on other dependencies being injected. [ref]() Currently these would not get instrumented without the decorator and users would have to manual instrumentation.
Solution Brainstorm:
There is several other places we can monkey-patch to make this more robust.
* core/nest-application.ts: contains API like `app.useGlobalFilters`, `app.use`, `app.useInterceptors`
* other decorators that can be put directly on controllers and get implementations as input: `@UseFilters`, `@Useinterceptors`
Contributor guide
Assessment
This issue has not been assessed yet.