From 99b8273e2df8994abfbcd95d04d5da523bd8a6de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Wed, 3 Jan 2024 10:11:04 +0100 Subject: [PATCH] feat(domain-events-infra): add grpc opentelemetry instrumentation --- .pnp.cjs | 35 +++++++++++++++--- ...-grpc-npm-0.46.0-093fa95eb5-3b702d8b95.zip | Bin 0 -> 60213 bytes packages/domain-events-infra/package.json | 1 + .../Infra/OpenTelemetry/OpenTelemetrySDK.ts | 2 + yarn.lock | 13 +++++++ 5 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 .yarn/cache/@opentelemetry-instrumentation-grpc-npm-0.46.0-093fa95eb5-3b702d8b95.zip diff --git a/.pnp.cjs b/.pnp.cjs index 56bc6a43c..dffdf16cc 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -3890,10 +3890,10 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:834836574d45daaaa7b0a550d30a351ebb69f1a0ebb4600253fa7b6b9969ea437117d4dabb956f26fb111fa1db35a2f35f6402d7884ad354fa89378adcd0a940#npm:0.46.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-virtual-af8d037aa0/0/cache/@opentelemetry-instrumentation-npm-0.46.0-a9a900c324-d0e59c95a7.zip/node_modules/@opentelemetry/instrumentation/",\ + ["virtual:dc4e271be9e656e4ff6058043a51bdb2b199c8d4df68c408629c8531279ac6ff3a027bbffb9a975cd4c8d1998210a0691bc9e740965ab4eb7cda3d7ed078e804#npm:0.46.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-virtual-2c57cd0e90/0/cache/@opentelemetry-instrumentation-npm-0.46.0-a9a900c324-d0e59c95a7.zip/node_modules/@opentelemetry/instrumentation/",\ "packageDependencies": [\ - ["@opentelemetry/instrumentation", "virtual:834836574d45daaaa7b0a550d30a351ebb69f1a0ebb4600253fa7b6b9969ea437117d4dabb956f26fb111fa1db35a2f35f6402d7884ad354fa89378adcd0a940#npm:0.46.0"],\ + ["@opentelemetry/instrumentation", "virtual:dc4e271be9e656e4ff6058043a51bdb2b199c8d4df68c408629c8531279ac6ff3a027bbffb9a975cd4c8d1998210a0691bc9e740965ab4eb7cda3d7ed078e804#npm:0.46.0"],\ ["@opentelemetry/api", "npm:1.7.0"],\ ["@types/opentelemetry__api", null],\ ["@types/shimmer", "npm:1.0.3"],\ @@ -3960,6 +3960,30 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@opentelemetry/instrumentation-grpc", [\ + ["npm:0.46.0", {\ + "packageLocation": "./.yarn/cache/@opentelemetry-instrumentation-grpc-npm-0.46.0-093fa95eb5-3b702d8b95.zip/node_modules/@opentelemetry/instrumentation-grpc/",\ + "packageDependencies": [\ + ["@opentelemetry/instrumentation-grpc", "npm:0.46.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.46.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-instrumentation-grpc-virtual-dc4e271be9/0/cache/@opentelemetry-instrumentation-grpc-npm-0.46.0-093fa95eb5-3b702d8b95.zip/node_modules/@opentelemetry/instrumentation-grpc/",\ + "packageDependencies": [\ + ["@opentelemetry/instrumentation-grpc", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.46.0"],\ + ["@opentelemetry/api", "npm:1.7.0"],\ + ["@opentelemetry/instrumentation", "virtual:dc4e271be9e656e4ff6058043a51bdb2b199c8d4df68c408629c8531279ac6ff3a027bbffb9a975cd4c8d1998210a0691bc9e740965ab4eb7cda3d7ed078e804#npm:0.46.0"],\ + ["@opentelemetry/semantic-conventions", "npm:1.19.0"],\ + ["@types/opentelemetry__api", null]\ + ],\ + "packagePeers": [\ + "@opentelemetry/api",\ + "@types/opentelemetry__api"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@opentelemetry/instrumentation-http", [\ ["npm:0.46.0", {\ "packageLocation": "./.yarn/cache/@opentelemetry-instrumentation-http-npm-0.46.0-6874dd0ab9-030358e53e.zip/node_modules/@opentelemetry/instrumentation-http/",\ @@ -3974,7 +3998,7 @@ const RAW_RUNTIME_STATE = ["@opentelemetry/instrumentation-http", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.46.0"],\ ["@opentelemetry/api", "npm:1.7.0"],\ ["@opentelemetry/core", "virtual:474dbf06214fba6e5126d4a22f80a30140e052e698f11202876e93a81032aa834b5a631bd823e78f24b622ff6bb0f5ada1dac7728cbdeb866ab7e33992e235ac#npm:1.19.0"],\ - ["@opentelemetry/instrumentation", "virtual:834836574d45daaaa7b0a550d30a351ebb69f1a0ebb4600253fa7b6b9969ea437117d4dabb956f26fb111fa1db35a2f35f6402d7884ad354fa89378adcd0a940#npm:0.46.0"],\ + ["@opentelemetry/instrumentation", "virtual:dc4e271be9e656e4ff6058043a51bdb2b199c8d4df68c408629c8531279ac6ff3a027bbffb9a975cd4c8d1998210a0691bc9e740965ab4eb7cda3d7ed078e804#npm:0.46.0"],\ ["@opentelemetry/semantic-conventions", "npm:1.19.0"],\ ["@types/opentelemetry__api", null],\ ["semver", "npm:7.5.4"]\ @@ -4383,7 +4407,7 @@ const RAW_RUNTIME_STATE = ["@opentelemetry/exporter-trace-otlp-http", "virtual:2dcdca630b1b49b522449a033fd9370a6141f9568dce36b242c54ddeafdf1212c9d13646eddf59cf5e44cfd71e6fd7f373daf32ebd3fe1514045286a7f7e3c30#npm:0.46.0"],\ ["@opentelemetry/exporter-trace-otlp-proto", "virtual:2dcdca630b1b49b522449a033fd9370a6141f9568dce36b242c54ddeafdf1212c9d13646eddf59cf5e44cfd71e6fd7f373daf32ebd3fe1514045286a7f7e3c30#npm:0.46.0"],\ ["@opentelemetry/exporter-zipkin", "virtual:2dcdca630b1b49b522449a033fd9370a6141f9568dce36b242c54ddeafdf1212c9d13646eddf59cf5e44cfd71e6fd7f373daf32ebd3fe1514045286a7f7e3c30#npm:1.19.0"],\ - ["@opentelemetry/instrumentation", "virtual:834836574d45daaaa7b0a550d30a351ebb69f1a0ebb4600253fa7b6b9969ea437117d4dabb956f26fb111fa1db35a2f35f6402d7884ad354fa89378adcd0a940#npm:0.46.0"],\ + ["@opentelemetry/instrumentation", "virtual:dc4e271be9e656e4ff6058043a51bdb2b199c8d4df68c408629c8531279ac6ff3a027bbffb9a975cd4c8d1998210a0691bc9e740965ab4eb7cda3d7ed078e804#npm:0.46.0"],\ ["@opentelemetry/resources", "virtual:474dbf06214fba6e5126d4a22f80a30140e052e698f11202876e93a81032aa834b5a631bd823e78f24b622ff6bb0f5ada1dac7728cbdeb866ab7e33992e235ac#npm:1.19.0"],\ ["@opentelemetry/sdk-logs", "virtual:07c62c4930df55f8942cd4bed10d75ad389a986250a110a9a698b1161bf422de51ce5247060e5a1e424b858d200a919b36b9ab356516986f5c0cf4df0d841979#npm:0.46.0"],\ ["@opentelemetry/sdk-metrics", "virtual:474dbf06214fba6e5126d4a22f80a30140e052e698f11202876e93a81032aa834b5a631bd823e78f24b622ff6bb0f5ada1dac7728cbdeb866ab7e33992e235ac#npm:1.19.0"],\ @@ -5733,6 +5757,7 @@ const RAW_RUNTIME_STATE = ["@opentelemetry/id-generator-aws-xray", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:1.2.1"],\ ["@opentelemetry/instrumentation-aws-sdk", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.37.1"],\ ["@opentelemetry/instrumentation-express", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.34.0"],\ + ["@opentelemetry/instrumentation-grpc", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.46.0"],\ ["@opentelemetry/instrumentation-http", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.46.0"],\ ["@opentelemetry/instrumentation-ioredis", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.36.0"],\ ["@opentelemetry/instrumentation-winston", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:0.33.0"],\ diff --git a/.yarn/cache/@opentelemetry-instrumentation-grpc-npm-0.46.0-093fa95eb5-3b702d8b95.zip b/.yarn/cache/@opentelemetry-instrumentation-grpc-npm-0.46.0-093fa95eb5-3b702d8b95.zip new file mode 100644 index 0000000000000000000000000000000000000000..08cb7abe69c845c79b60aa1da10d3b7f68d36254 GIT binary patch literal 60213 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 G&9f(6^bQOF literal 0 HcmV?d00001 diff --git a/packages/domain-events-infra/package.json b/packages/domain-events-infra/package.json index 324b0d275..9627bdcd5 100644 --- a/packages/domain-events-infra/package.json +++ b/packages/domain-events-infra/package.json @@ -38,6 +38,7 @@ "@opentelemetry/id-generator-aws-xray": "^1.2.1", "@opentelemetry/instrumentation-aws-sdk": "^0.37.1", "@opentelemetry/instrumentation-express": "^0.34.0", + "@opentelemetry/instrumentation-grpc": "^0.46.0", "@opentelemetry/instrumentation-http": "^0.46.0", "@opentelemetry/instrumentation-ioredis": "^0.36.0", "@opentelemetry/instrumentation-winston": "^0.33.0", diff --git a/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts b/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts index f0cdadbc2..c470f5a79 100644 --- a/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts +++ b/packages/domain-events-infra/src/Infra/OpenTelemetry/OpenTelemetrySDK.ts @@ -11,6 +11,7 @@ import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-proto' import { WinstonInstrumentation } from '@opentelemetry/instrumentation-winston' import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis' import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express' +import { GrpcInstrumentation } from '@opentelemetry/instrumentation-grpc' import { IncomingMessage } from 'http' import { Attributes } from '@opentelemetry/api' @@ -82,6 +83,7 @@ export class OpenTelemetrySDK implements OpenTelemetrySDKInterface { }), winstonInstrumentation, new IORedisInstrumentation(), + new GrpcInstrumentation(), ], metricReader: metricReader, resource: otResource, diff --git a/yarn.lock b/yarn.lock index ca559fcaf..a54b101db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3244,6 +3244,18 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/instrumentation-grpc@npm:^0.46.0": + version: 0.46.0 + resolution: "@opentelemetry/instrumentation-grpc@npm:0.46.0" + dependencies: + "@opentelemetry/instrumentation": "npm:0.46.0" + "@opentelemetry/semantic-conventions": "npm:1.19.0" + peerDependencies: + "@opentelemetry/api": ^1.3.0 + checksum: 3b702d8b957d0250af277c1a0408c5b21362a9f9c5293a0a829d2c39454e710c6aef4ea975ff1e318a48fd26d9832590f4ddcb97bffde1ecf17b5051b3ad9864 + languageName: node + linkType: hard + "@opentelemetry/instrumentation-http@npm:^0.46.0": version: 0.46.0 resolution: "@opentelemetry/instrumentation-http@npm:0.46.0" @@ -5065,6 +5077,7 @@ __metadata: "@opentelemetry/id-generator-aws-xray": "npm:^1.2.1" "@opentelemetry/instrumentation-aws-sdk": "npm:^0.37.1" "@opentelemetry/instrumentation-express": "npm:^0.34.0" + "@opentelemetry/instrumentation-grpc": "npm:^0.46.0" "@opentelemetry/instrumentation-http": "npm:^0.46.0" "@opentelemetry/instrumentation-ioredis": "npm:^0.36.0" "@opentelemetry/instrumentation-winston": "npm:^0.33.0"