getsentry / getsentry/sentry-javascript

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

オープン
#17,704 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
Bug State: Needs Discussion
主要言語
TypeScript
スター
8.7k
フォーク
1.8k
平均マージ
1日 17時間
マージ済み PR(30日)
515

説明

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(),
],
})
```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。