diff --git a/.pnp.cjs b/.pnp.cjs index f5b8e8515..510391648 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -5159,6 +5159,32 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@opentelemetry/instrumentation-express", [\ + ["npm:0.33.1", {\ + "packageLocation": "./.yarn/cache/@opentelemetry-instrumentation-express-npm-0.33.1-e22c0dd0d4-17dfb5ba50.zip/node_modules/@opentelemetry/instrumentation-express/",\ + "packageDependencies": [\ + ["@opentelemetry/instrumentation-express", "npm:0.33.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.33.1", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-express-virtual-cc1a078a68/0/cache/@opentelemetry-instrumentation-express-npm-0.33.1-e22c0dd0d4-17dfb5ba50.zip/node_modules/@opentelemetry/instrumentation-express/",\ + "packageDependencies": [\ + ["@opentelemetry/instrumentation-express", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.33.1"],\ + ["@opentelemetry/api", "npm:1.6.0"],\ + ["@opentelemetry/core", "virtual:d3c7bbf6a7f97a974e49c3267814e8607d9d8d839b4f62268d716ea7e832f7e3ded30c86e636fa7c95d6294ec5dc6ec07c16da5ffc14b141208d01acef9f1658#npm:1.17.0"],\ + ["@opentelemetry/instrumentation", "virtual:615937aa81839b05262fb17b9798d2b03176d47c4f8dad05d5bcb050f95f724786e9efd2e9f8e96aeb0f4f2bd3253509727df5e270ef87443598047e1192e3e9#npm:0.41.2"],\ + ["@opentelemetry/semantic-conventions", "npm:1.17.0"],\ + ["@types/express", "npm:4.17.17"],\ + ["@types/opentelemetry__api", null]\ + ],\ + "packagePeers": [\ + "@opentelemetry/api",\ + "@types/opentelemetry__api"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@opentelemetry/instrumentation-http", [\ ["npm:0.43.0", {\ "packageLocation": "./.yarn/cache/@opentelemetry-instrumentation-http-npm-0.43.0-8e95b53fde-04f8be1648.zip/node_modules/@opentelemetry/instrumentation-http/",\ @@ -6793,6 +6819,7 @@ const RAW_RUNTIME_STATE = ["@opentelemetry/exporter-trace-otlp-grpc", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.43.0"],\ ["@opentelemetry/id-generator-aws-xray", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:1.2.1"],\ ["@opentelemetry/instrumentation-aws-sdk", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.36.0"],\ + ["@opentelemetry/instrumentation-express", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.33.1"],\ ["@opentelemetry/instrumentation-http", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.43.0"],\ ["@opentelemetry/instrumentation-ioredis", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.35.1"],\ ["@opentelemetry/instrumentation-winston", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.32.1"],\ diff --git a/.yarn/cache/@opentelemetry-instrumentation-express-npm-0.33.1-e22c0dd0d4-17dfb5ba50.zip b/.yarn/cache/@opentelemetry-instrumentation-express-npm-0.33.1-e22c0dd0d4-17dfb5ba50.zip new file mode 100644 index 000000000..19a1c28d2 Binary files /dev/null and b/.yarn/cache/@opentelemetry-instrumentation-express-npm-0.33.1-e22c0dd0d4-17dfb5ba50.zip differ diff --git a/packages/domain-events-infra/package.json b/packages/domain-events-infra/package.json index 32b438f37..825fc288f 100644 --- a/packages/domain-events-infra/package.json +++ b/packages/domain-events-infra/package.json @@ -31,6 +31,7 @@ "@opentelemetry/exporter-trace-otlp-grpc": "^0.43.0", "@opentelemetry/id-generator-aws-xray": "^1.2.1", "@opentelemetry/instrumentation-aws-sdk": "^0.36.0", + "@opentelemetry/instrumentation-express": "^0.33.1", "@opentelemetry/instrumentation-http": "^0.43.0", "@opentelemetry/instrumentation-ioredis": "^0.35.1", "@opentelemetry/instrumentation-winston": "^0.32.1", diff --git a/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts b/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts index e58882a06..dca1ad6a3 100644 --- a/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts +++ b/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts @@ -12,6 +12,7 @@ import { WinstonInstrumentation } from '@opentelemetry/instrumentation-winston' import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis' import { OpenTelemetrySDKInterface } from './OpenTelemetrySDKInterface' +import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express' export class OpenTelemetrySDK implements OpenTelemetrySDKInterface { private declare sdk: OpenTelemetrySDKNode.NodeSDK @@ -44,7 +45,14 @@ export class OpenTelemetrySDK implements OpenTelemetrySDKInterface { sampler: new OpenTelemetrySDKNode.tracing.TraceIdRatioBasedSampler(0.01), textMapPropagator: new AWSXRayPropagator(), instrumentations: [ - new HttpInstrumentation(), + new HttpInstrumentation({ + ignoreIncomingRequestHook: (request) => { + const isHealthCheckUrl = !!request.url?.match(/\/healthcheck/) + + return isHealthCheckUrl + }, + }), + new ExpressInstrumentation(), new AwsInstrumentation({ suppressInternalInstrumentation: true, }), diff --git a/yarn.lock b/yarn.lock index d5fd4c54c..67166385a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4355,6 +4355,20 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/instrumentation-express@npm:^0.33.1": + version: 0.33.1 + resolution: "@opentelemetry/instrumentation-express@npm:0.33.1" + dependencies: + "@opentelemetry/core": "npm:^1.8.0" + "@opentelemetry/instrumentation": "npm:^0.41.2" + "@opentelemetry/semantic-conventions": "npm:^1.0.0" + "@types/express": "npm:4.17.17" + peerDependencies: + "@opentelemetry/api": ^1.3.0 + checksum: 17dfb5ba508380a855a136553b5cc1f0abbe0220b272e358b6753870cd979bad5e1b7c45dad36b2d3b6e04247687f3d54cb295d3fb8e62b1f82c6947e70f4caf + languageName: node + linkType: hard + "@opentelemetry/instrumentation-http@npm:^0.43.0": version: 0.43.0 resolution: "@opentelemetry/instrumentation-http@npm:0.43.0" @@ -6023,6 +6037,7 @@ __metadata: "@opentelemetry/exporter-trace-otlp-grpc": "npm:^0.43.0" "@opentelemetry/id-generator-aws-xray": "npm:^1.2.1" "@opentelemetry/instrumentation-aws-sdk": "npm:^0.36.0" + "@opentelemetry/instrumentation-express": "npm:^0.33.1" "@opentelemetry/instrumentation-http": "npm:^0.43.0" "@opentelemetry/instrumentation-ioredis": "npm:^0.35.1" "@opentelemetry/instrumentation-winston": "npm:^0.32.1" @@ -6807,7 +6822,7 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:^4.17.14": +"@types/express@npm:*, @types/express@npm:4.17.17, @types/express@npm:^4.17.14": version: 4.17.17 resolution: "@types/express@npm:4.17.17" dependencies: