getsentry / getsentry/sentry-javascript

Trace isolation not working in with express/apollo app causing unrelated logs to have the same trace id

Aperta
#17,704 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Bug State: Needs Discussion
Lingua principale
TypeScript
Stelle
8.7k
Fork
1.8k
Merge medio
1g 17h
PR unite (30g)
515

Descrizione

Sentry feedback: https://sentry.sentry.io/issues/feedback/?feedbackSlug=javascript%3A6854743819&project=11276

### Description

> Our app is very simple, just a docker container running node , Apollo server v4 w/ Express , deployed on Google Cloud Run.

```js
import { sentry as sentryConfig, service } from '@config'

import 'isomorphic-fetch'
import * as Sentry from '@sentry/node'
import { getRequestInfo } from '@shared/requestAsyncLocalStorage'

Sentry.init({
environment: sentryConfig.environment,
dsn: sentryConfig.dsn,
normalizeDepth: 7,
release: sentryConfig.release,
initialScope: {
tags: {
service,
},
},
ignoreErrors: ['You must be signed in to do this', 'too often'],
beforeBreadcrumb: (breadcrumb) => {
// ignore Apollo server reporting
// otherwise, the global scope will be polluted with useless breadcrumbs
// and useful ones will be discarded when hitting maxBreadcrumbs limit
if (
breadcrumb.category === 'http' &&
breadcrumb.message &&
breadcrumb.message.includes('[usage-reporting.api.apollographql.com](http://usage-reporting.api.apollographql.com/)')
) {
return null
}

return breadcrumb
},
beforeSendLog: (log) => {
// Can't override sentry's traceId, so we need to add it to the attributes
const requestInfo = getRequestInfo()

if (requestInfo.traceId && log.attributes) {
log.attributes.traceId = requestInfo.traceId
}

return log
},
enableLogs: true,
integrations: (defaults) => [
...defaults,
Sentry.rewriteFramesIntegration({
root: __dirname || process.cwd(),
}),
Sentry.modulesIntegration(),
],
})
```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.