getsentry / getsentry/sentry-javascript

Add automatic instrumentation to @sentry/nestjs where `@Injectable` is not used

Open
#13,517 2 comments 0 reactions 0 assignees View on GitHub
Improvement Nest.js
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.