diff --git a/package-lock.json b/package-lock.json
index 92790913..d6dc472f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1900,11 +1900,11 @@
}
},
"node_modules/@grpc/grpc-js": {
- "version": "1.10.6",
- "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.6.tgz",
- "integrity": "sha512-xP58G7wDQ4TCmN/cMUHh00DS7SRDv/+lC+xFLrTkMIN8h55X5NhZMLYbvy7dSELP15qlI6hPhNCRWVMtZMwqLA==",
+ "version": "1.10.8",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.8.tgz",
+ "integrity": "sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg==",
"dependencies": {
- "@grpc/proto-loader": "^0.7.10",
+ "@grpc/proto-loader": "^0.7.13",
"@js-sdsl/ordered-map": "^4.4.2"
},
"engines": {
@@ -1912,13 +1912,13 @@
}
},
"node_modules/@grpc/proto-loader": {
- "version": "0.7.12",
- "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.12.tgz",
- "integrity": "sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q==",
+ "version": "0.7.13",
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz",
+ "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==",
"dependencies": {
"lodash.camelcase": "^4.3.0",
"long": "^5.0.0",
- "protobufjs": "^7.2.4",
+ "protobufjs": "^7.2.5",
"yargs": "^17.7.2"
},
"bin": {
@@ -1928,90 +1928,6 @@
"node": ">=6"
}
},
- "node_modules/@hapi/b64": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz",
- "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==",
- "dependencies": {
- "@hapi/hoek": "9.x.x"
- }
- },
- "node_modules/@hapi/boom": {
- "version": "9.1.4",
- "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz",
- "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==",
- "dependencies": {
- "@hapi/hoek": "9.x.x"
- }
- },
- "node_modules/@hapi/bourne": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz",
- "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q=="
- },
- "node_modules/@hapi/cryptiles": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz",
- "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==",
- "dependencies": {
- "@hapi/boom": "9.x.x"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
- },
- "node_modules/@hapi/iron": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz",
- "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==",
- "dependencies": {
- "@hapi/b64": "5.x.x",
- "@hapi/boom": "9.x.x",
- "@hapi/bourne": "2.x.x",
- "@hapi/cryptiles": "5.x.x",
- "@hapi/hoek": "9.x.x"
- }
- },
- "node_modules/@hapi/podium": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz",
- "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==",
- "dependencies": {
- "@hapi/hoek": "9.x.x",
- "@hapi/teamwork": "5.x.x",
- "@hapi/validate": "1.x.x"
- }
- },
- "node_modules/@hapi/teamwork": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.1.tgz",
- "integrity": "sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==",
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@hapi/validate": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz",
- "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==",
- "dependencies": {
- "@hapi/hoek": "^9.0.0",
- "@hapi/topo": "^5.0.0"
- }
- },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@@ -3352,53 +3268,55 @@
}
},
"node_modules/@opentelemetry/auto-instrumentations-node": {
- "version": "0.45.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.45.0.tgz",
- "integrity": "sha512-l4+f5S1YyOUS2upiI/c2VipV9Ow7rv593D0lNWTLzx+quSFlzQjSEjNn550kbFb+oqc9ZmaU0ogj5VN3nuYU2g==",
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.46.1.tgz",
+ "integrity": "sha512-s0CwmY9KYtPawOhV5YO2Gf62uVOQRNvT6Or8IZ0S4gr/kPVNhoMehTsQvqBwSWQfoFrkmW3KKOHiKJEp4dVGXg==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/instrumentation-amqplib": "^0.37.0",
- "@opentelemetry/instrumentation-aws-lambda": "^0.41.0",
+ "@opentelemetry/instrumentation-aws-lambda": "^0.41.1",
"@opentelemetry/instrumentation-aws-sdk": "^0.41.0",
"@opentelemetry/instrumentation-bunyan": "^0.38.0",
"@opentelemetry/instrumentation-cassandra-driver": "^0.38.0",
- "@opentelemetry/instrumentation-connect": "^0.36.0",
+ "@opentelemetry/instrumentation-connect": "^0.36.1",
"@opentelemetry/instrumentation-cucumber": "^0.6.0",
"@opentelemetry/instrumentation-dataloader": "^0.9.0",
- "@opentelemetry/instrumentation-dns": "^0.36.0",
- "@opentelemetry/instrumentation-express": "^0.38.0",
- "@opentelemetry/instrumentation-fastify": "^0.36.0",
+ "@opentelemetry/instrumentation-dns": "^0.36.1",
+ "@opentelemetry/instrumentation-express": "^0.39.0",
+ "@opentelemetry/instrumentation-fastify": "^0.36.1",
"@opentelemetry/instrumentation-fs": "^0.12.0",
"@opentelemetry/instrumentation-generic-pool": "^0.36.0",
"@opentelemetry/instrumentation-graphql": "^0.40.0",
"@opentelemetry/instrumentation-grpc": "^0.51.0",
- "@opentelemetry/instrumentation-hapi": "^0.37.0",
+ "@opentelemetry/instrumentation-hapi": "^0.38.0",
"@opentelemetry/instrumentation-http": "^0.51.0",
"@opentelemetry/instrumentation-ioredis": "^0.40.0",
- "@opentelemetry/instrumentation-knex": "^0.36.0",
+ "@opentelemetry/instrumentation-knex": "^0.36.1",
"@opentelemetry/instrumentation-koa": "^0.40.0",
"@opentelemetry/instrumentation-lru-memoizer": "^0.37.0",
"@opentelemetry/instrumentation-memcached": "^0.36.0",
"@opentelemetry/instrumentation-mongodb": "^0.43.0",
- "@opentelemetry/instrumentation-mongoose": "^0.38.0",
- "@opentelemetry/instrumentation-mysql": "^0.38.0",
- "@opentelemetry/instrumentation-mysql2": "^0.38.0",
- "@opentelemetry/instrumentation-nestjs-core": "^0.37.0",
+ "@opentelemetry/instrumentation-mongoose": "^0.38.1",
+ "@opentelemetry/instrumentation-mysql": "^0.38.1",
+ "@opentelemetry/instrumentation-mysql2": "^0.38.1",
+ "@opentelemetry/instrumentation-nestjs-core": "^0.37.1",
"@opentelemetry/instrumentation-net": "^0.36.0",
"@opentelemetry/instrumentation-pg": "^0.41.0",
- "@opentelemetry/instrumentation-pino": "^0.38.0",
- "@opentelemetry/instrumentation-redis": "^0.39.0",
+ "@opentelemetry/instrumentation-pino": "^0.39.0",
+ "@opentelemetry/instrumentation-redis": "^0.39.1",
"@opentelemetry/instrumentation-redis-4": "^0.39.0",
"@opentelemetry/instrumentation-restify": "^0.38.0",
"@opentelemetry/instrumentation-router": "^0.37.0",
"@opentelemetry/instrumentation-socket.io": "^0.39.0",
- "@opentelemetry/instrumentation-tedious": "^0.10.0",
+ "@opentelemetry/instrumentation-tedious": "^0.10.1",
+ "@opentelemetry/instrumentation-undici": "^0.2.0",
"@opentelemetry/instrumentation-winston": "^0.37.0",
"@opentelemetry/resource-detector-alibaba-cloud": "^0.28.9",
- "@opentelemetry/resource-detector-aws": "^1.4.2",
+ "@opentelemetry/resource-detector-aws": "^1.5.0",
+ "@opentelemetry/resource-detector-azure": "^0.2.6",
"@opentelemetry/resource-detector-container": "^0.3.9",
"@opentelemetry/resource-detector-gcp": "^0.29.9",
- "@opentelemetry/resources": "^1.12.0",
+ "@opentelemetry/resources": "^1.24.0",
"@opentelemetry/sdk-node": "^0.51.0"
},
"engines": {
@@ -3409,9 +3327,9 @@
}
},
"node_modules/@opentelemetry/context-async-hooks": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.24.0.tgz",
- "integrity": "sha512-s7xaQ9ifDpJvwbWRLkZD/J5hY35w+MECm4TQUkg6szRcny9lf6oVhWij4w3JJFQgvHQMXU7oXOpX8Z05HxV/8g==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.24.1.tgz",
+ "integrity": "sha512-R5r6DO4kgEOVBxFXhXjwospLQkv+sYxwCfjvoZBe7Zm6KKXAV9kDSJhi/D1BweowdZmO+sdbENLs374gER8hpQ==",
"engines": {
"node": ">=14"
},
@@ -3434,16 +3352,16 @@
}
},
"node_modules/@opentelemetry/exporter-trace-otlp-grpc": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.51.0.tgz",
- "integrity": "sha512-xQpxKzS8ZnxYCa1v+3EKWhwMrSK3+RezpJ+AEKaP2pf2QbLfHt7kKfSn7niR2u3A1Tbe2aC7Ptt9+MafhThOOQ==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.51.1.tgz",
+ "integrity": "sha512-P9+Hkszih95ITvldGZ+kXvj9HpD1QfS+PwooyHK72GYA+Bgm+yUSAsDkUkDms8+s9HW6poxURv3LcjaMuBBpVQ==",
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/otlp-grpc-exporter-base": "0.51.0",
- "@opentelemetry/otlp-transformer": "0.51.0",
- "@opentelemetry/resources": "1.24.0",
- "@opentelemetry/sdk-trace-base": "1.24.0"
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/otlp-grpc-exporter-base": "0.51.1",
+ "@opentelemetry/otlp-transformer": "0.51.1",
+ "@opentelemetry/resources": "1.24.1",
+ "@opentelemetry/sdk-trace-base": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -3452,16 +3370,38 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/exporter-trace-otlp-grpc/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/exporter-trace-otlp-http": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.51.0.tgz",
- "integrity": "sha512-zODqnLZmPOxj9CarFv0TrVlx9mgj0TfCMCiUiTdNi9iA2rgdKVo+bjJjpYF6LCTJOQCR5TScAUCKyzwkgDI+iA==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.51.1.tgz",
+ "integrity": "sha512-n+LhLPsX07URh+HhV2SHVSvz1t4G/l/CE5BjpmhAPqeTceFac1VpyQkavWEJbvnK5bUEXijWt4LxAxFpt2fXyw==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/otlp-exporter-base": "0.51.0",
- "@opentelemetry/otlp-transformer": "0.51.0",
- "@opentelemetry/resources": "1.24.0",
- "@opentelemetry/sdk-trace-base": "1.24.0"
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/otlp-exporter-base": "0.51.1",
+ "@opentelemetry/otlp-transformer": "0.51.1",
+ "@opentelemetry/resources": "1.24.1",
+ "@opentelemetry/sdk-trace-base": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -3470,17 +3410,39 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/exporter-trace-otlp-http/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/exporter-trace-otlp-proto": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.51.0.tgz",
- "integrity": "sha512-Fi7r0iMqGoFCQQ+WY0pYOWp395vdinZJIkYKnNbnreHxAN/kVDBl2FxbV3DeOKuRxEY08Gyb9ggPf+Zrqp7l/w==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.51.1.tgz",
+ "integrity": "sha512-SE9f0/6V6EeXC9i+WA4WFjS1EYgaBCpAnI5+lxWvZ7iO7EU1IvHvZhP6Kojr0nLldo83gqg6G7OWFqsID3uF+w==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/otlp-exporter-base": "0.51.0",
- "@opentelemetry/otlp-proto-exporter-base": "0.51.0",
- "@opentelemetry/otlp-transformer": "0.51.0",
- "@opentelemetry/resources": "1.24.0",
- "@opentelemetry/sdk-trace-base": "1.24.0"
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/otlp-exporter-base": "0.51.1",
+ "@opentelemetry/otlp-proto-exporter-base": "0.51.1",
+ "@opentelemetry/otlp-transformer": "0.51.1",
+ "@opentelemetry/resources": "1.24.1",
+ "@opentelemetry/sdk-trace-base": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -3489,15 +3451,37 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/exporter-zipkin": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.24.0.tgz",
- "integrity": "sha512-QeGv0PHONswmu567pf9QliJ6s6DgCu5+ziF+soNS1LTcr1VRRVLViYLmGxmzDFUC48sjNTu7sumcKT0nJXsGBw==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.24.1.tgz",
+ "integrity": "sha512-+Rl/VFmu2n6eaRMnVbyfZx1DqR/1KNyWebYuHyQBZaEAVIn/ZLgmofRpXN1X2nhJ4BNaptQUNxAstCYYz6dKoQ==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/resources": "1.24.0",
- "@opentelemetry/sdk-trace-base": "1.24.0",
- "@opentelemetry/semantic-conventions": "1.24.0"
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/resources": "1.24.1",
+ "@opentelemetry/sdk-trace-base": "1.24.1",
+ "@opentelemetry/semantic-conventions": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -3506,6 +3490,28 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/exporter-zipkin/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/instrumentation": {
"version": "0.51.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.51.0.tgz",
@@ -3542,14 +3548,14 @@
}
},
"node_modules/@opentelemetry/instrumentation-aws-lambda": {
- "version": "0.41.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.41.0.tgz",
- "integrity": "sha512-TeK7ZGtmEDqkfuwyAvlexnG11e7kEux0PncShqdyst2h1k1nVKmwnY/woPCUcTyU08PX6fa9YEyJ9E+G6wZacQ==",
+ "version": "0.41.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.41.1.tgz",
+ "integrity": "sha512-/BLG+0DQr2tCILFGJKJH2Fg6eyjhqOlVflYpNddUEXnzyQ/PAhTdgirkqbICFgeSW2XYcEY9zXpuRldrVNw9cA==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/propagator-aws-xray": "^1.3.1",
"@opentelemetry/resources": "^1.8.0",
- "@opentelemetry/semantic-conventions": "^1.0.0",
+ "@opentelemetry/semantic-conventions": "^1.22.0",
"@types/aws-lambda": "8.10.122"
},
"engines": {
@@ -3608,13 +3614,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-connect": {
- "version": "0.36.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.36.0.tgz",
- "integrity": "sha512-k9++bmJZ9zDEs3u3DnKTn2l7QTiNFg3gPx7G9rW0TPnP+xZoBSBTrEcGYBaqflQlrFG23Q58+X1sM2ayWPv5Fg==",
+ "version": "0.36.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.36.1.tgz",
+ "integrity": "sha512-xI5Q/CMmzBmHshPnzzjD19ptFaYO/rQWzokpNio4QixZYWhJsa35QgRvN9FhPkwgtuJIbt/CWWAufJ3egJNHEA==",
"dependencies": {
"@opentelemetry/core": "^1.8.0",
"@opentelemetry/instrumentation": "^0.51.0",
- "@opentelemetry/semantic-conventions": "^1.0.0",
+ "@opentelemetry/semantic-conventions": "^1.22.0",
"@types/connect": "3.4.36"
},
"engines": {
@@ -3654,9 +3660,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-dns": {
- "version": "0.36.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.36.0.tgz",
- "integrity": "sha512-Uo4lLqqryToV7IfX7EVg+pOHdq6f2F0gIQoMZoC4LIcr3lO9Uk6pJr0YSB9Y4Pcu+PcGuDDXIIwKuUqEDfcTOw==",
+ "version": "0.36.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.36.1.tgz",
+ "integrity": "sha512-NWRbQ7q0E3co/CNTWLZZvUzZoKhB1iTitY282IM8HDTXkA6VRssCfOcvaHw5ezOh23TJbAeYxmmpVj4hFvDPYQ==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/semantic-conventions": "^1.0.0",
@@ -3670,9 +3676,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-express": {
- "version": "0.38.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.38.0.tgz",
- "integrity": "sha512-izId/qcgMgfWV292ZI9b9E7HdV9446vi0Z5zu5fSlt4MF+R6LZXbZLTQAaboJ4Y2+JbtH7apvko1DF93qTFtqw==",
+ "version": "0.39.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.39.0.tgz",
+ "integrity": "sha512-AG8U7z7D0JcBu/7dDcwb47UMEzj9/FMiJV2iQZqrsZnxR3FjB9J9oIH2iszJYci2eUdp2WbdvtpD9RV/zmME5A==",
"dependencies": {
"@opentelemetry/core": "^1.8.0",
"@opentelemetry/instrumentation": "^0.51.0",
@@ -3686,9 +3692,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-fastify": {
- "version": "0.36.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.36.0.tgz",
- "integrity": "sha512-nJQEi5cInZ7j5eC6QvgwlRsEFUZVGvlI8BDSLZ9xY33GTd6U6fCS8M+i26c1U74MLNRikpNBLV/1baT5GGIayg==",
+ "version": "0.36.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.36.1.tgz",
+ "integrity": "sha512-3Nfm43PI0I+3EX+1YbSy6xbDu276R1Dh1tqAk68yd4yirnIh52Kd5B+nJ8CgHA7o3UKakpBjj6vSzi5vNCzJIA==",
"dependencies": {
"@opentelemetry/core": "^1.8.0",
"@opentelemetry/instrumentation": "^0.51.0",
@@ -3761,14 +3767,13 @@
}
},
"node_modules/@opentelemetry/instrumentation-hapi": {
- "version": "0.37.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.37.0.tgz",
- "integrity": "sha512-LprBF0Z/wz3WXwdwoatsfU0IaKkl9At98umNfWtMcMUnYqeIiqVJJ+ijsBDHIhfuc3pbeZ9W4n8CAM1SBYFWxg==",
+ "version": "0.38.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.38.0.tgz",
+ "integrity": "sha512-ZcOqEuwuutTDYIjhDIStix22ECblG/i9pHje23QGs4Q4YS4RMaZ5hKCoQJxW88Z4K7T53rQkdISmoXFKDV8xMg==",
"dependencies": {
"@opentelemetry/core": "^1.8.0",
"@opentelemetry/instrumentation": "^0.51.0",
- "@opentelemetry/semantic-conventions": "^1.0.0",
- "@types/hapi__hapi": "20.0.13"
+ "@opentelemetry/semantic-conventions": "^1.0.0"
},
"engines": {
"node": ">=14"
@@ -3811,9 +3816,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-knex": {
- "version": "0.36.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.36.0.tgz",
- "integrity": "sha512-UXMZhhOHXlsaS/U9xCj1i7+CjWSmmWnOSEUiwa9iCfCnx7qD96BuMSxmq68h3kUfxpUbFGq8OX7znSXbcatInQ==",
+ "version": "0.36.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.36.1.tgz",
+ "integrity": "sha512-6bEuiI+yMf3D0+ZWZE2AKmXhIhBvZ0brdO/0A8lUqeqeS+sS4fTcjA1F2CclsCNxYWEgcs8o3QyQqPceBeVRlg==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/semantic-conventions": "^1.22.0"
@@ -3890,9 +3895,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-mongoose": {
- "version": "0.38.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.38.0.tgz",
- "integrity": "sha512-2SnkQQDlsB6GS6OlXb/wQj1FkXMRPgIbwZxjnZ3KUJC+NQgwnzQRKZFxUrRg29l2WLeUWTSBPX1zO7RKBdKtYw==",
+ "version": "0.38.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.38.1.tgz",
+ "integrity": "sha512-zaeiasdnRjXe6VhYCBMdkmAVh1S5MmXC/0spet+yqoaViGnYst/DOxPvhwg3yT4Yag5crZNWsVXnA538UjP6Ow==",
"dependencies": {
"@opentelemetry/core": "^1.8.0",
"@opentelemetry/instrumentation": "^0.51.0",
@@ -3906,9 +3911,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-mysql": {
- "version": "0.38.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.38.0.tgz",
- "integrity": "sha512-EbbvU9/UPmtNnqQ4JVd2ku8IOeMdCY6OcvJz3SgfWQINXyPL8SZhcPm/CW6hkFq88BYMMlLDSOzu1S3gZwJ1+Q==",
+ "version": "0.38.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.38.1.tgz",
+ "integrity": "sha512-+iBAawUaTfX/HAlvySwozx0C2B6LBfNPXX1W8Z2On1Uva33AGkw2UjL9XgIg1Pj4eLZ9R4EoJ/aFz+Xj4E/7Fw==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/semantic-conventions": "^1.22.0",
@@ -3922,9 +3927,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-mysql2": {
- "version": "0.38.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.38.0.tgz",
- "integrity": "sha512-x6BN7sNKgGzERoQOwkfp9WZdNqDzmQF6c2nSXaAV/kPzhOlPVQ9sJLrpyL+/i/+6iVQRZvA0KaPdCWiUSuBupQ==",
+ "version": "0.38.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.38.1.tgz",
+ "integrity": "sha512-qkpHMgWSDTYVB1vlZ9sspf7l2wdS5DDq/rbIepDwX5BA0N0068JTQqh0CgAh34tdFqSCnWXIhcyOXC2TtRb0sg==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/semantic-conventions": "^1.22.0",
@@ -3938,9 +3943,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-nestjs-core": {
- "version": "0.37.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.37.0.tgz",
- "integrity": "sha512-9/ZZ9x9s5ZNcWZYrmqTVIGb0ADNGxYaqR65gznkHzxXUXuckgzw9jaXKaErjWEyouW0FOECVLgeAB9NcjYB57g==",
+ "version": "0.37.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.37.1.tgz",
+ "integrity": "sha512-ebYQjHZEmGHWEALwwDGhSQVLBaurFnuLIkZD5igPXrt7ohfF4lc5/4al1LO+vKc0NHk8SJWStuRueT86ISA8Vg==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/semantic-conventions": "^1.0.0"
@@ -3986,9 +3991,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-pino": {
- "version": "0.38.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.38.0.tgz",
- "integrity": "sha512-m4tkO+tuKv0zs2uLNxsMw06RwBNjHua8r9FYUlSlVcaF4EHTqC2XOk3h3OWw8HosZAvJvjryAgbEGuX9wJPn7A==",
+ "version": "0.39.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.39.0.tgz",
+ "integrity": "sha512-uA17F2iP77o3NculB63QD2zv3jkJ093Gfb0GxHLEqTIqpYs1ToJ53ybWwjJwqFByxk7GrliaxaxVtWC23PKzBg==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0"
},
@@ -4000,9 +4005,9 @@
}
},
"node_modules/@opentelemetry/instrumentation-redis": {
- "version": "0.39.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.39.0.tgz",
- "integrity": "sha512-yjHWwufY7kfKtf20rliqlETgP32X3ZynGAfoP59NXSSHwTCZS7QMn+S+Hb0iLjwbca/iTM/BooiVFrB943kMrw==",
+ "version": "0.39.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.39.1.tgz",
+ "integrity": "sha512-HUjTerD84jRJnSyDrRPqn6xQ7K91o9qLflRPZqzRvq0GRj5PMfc6TJ/z3q/ayWy/2Kzffhrp7HCIVp0u0TkgUg==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
"@opentelemetry/redis-common": "^0.36.2",
@@ -4078,12 +4083,12 @@
}
},
"node_modules/@opentelemetry/instrumentation-tedious": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.10.0.tgz",
- "integrity": "sha512-9P3bMtx6ncM1IPjSy6nilVohqFJ1Y0XutY6/WHO8Xuphca8MIq2vzmjzREbS+9TfW+1Eq4Q6Y4LMNoDrHwSAaw==",
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.10.1.tgz",
+ "integrity": "sha512-maSXMxgS0szU52khQzAROV4nWr+3M8mZajMQOc3/7tYjo+Q3HlWAowOuagPvp4pwROK4x6oDaFYlY+ZSj1qjYA==",
"dependencies": {
"@opentelemetry/instrumentation": "^0.51.0",
- "@opentelemetry/semantic-conventions": "^1.0.0",
+ "@opentelemetry/semantic-conventions": "^1.22.0",
"@types/tedious": "^4.0.10"
},
"engines": {
@@ -4093,6 +4098,21 @@
"@opentelemetry/api": "^1.3.0"
}
},
+ "node_modules/@opentelemetry/instrumentation-undici": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.2.0.tgz",
+ "integrity": "sha512-RH9WdVRtpnyp8kvya2RYqKsJouPxvHl7jKPsIfrbL8u2QCKloAGi0uEqDHoOS15ZRYPQTDXZ7d8jSpUgSQmvpA==",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.51.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.7.0"
+ }
+ },
"node_modules/@opentelemetry/instrumentation-winston": {
"version": "0.37.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.37.0.tgz",
@@ -4109,11 +4129,11 @@
}
},
"node_modules/@opentelemetry/otlp-exporter-base": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.51.0.tgz",
- "integrity": "sha512-hR4c9vWVz1QgzCBSyy9zSDkvfTgaK96E6/tfVP6O4dzdZW9HqWimA3lXV/KXadEGqShvM4GToz9EHp2A5RU5bQ==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.51.1.tgz",
+ "integrity": "sha512-UYlnOYyDdzo1Gw559EHCzru0RwhvuXCwoH8jGo9J4gO1TE58GjnEmIjomMsKBCym3qWNJfIQXw+9SZCV0DdQNg==",
"dependencies": {
- "@opentelemetry/core": "1.24.0"
+ "@opentelemetry/core": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4122,14 +4142,36 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-exporter-base/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/otlp-grpc-exporter-base": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.51.0.tgz",
- "integrity": "sha512-oTRtDvvB0bTRTBVrvKA/oM1gIAqQ6DVQS07pvqiL1cZS8wBrGgpw+2iTd0nV661Y/MhDn/kNWp8lRhMEIKN9bw==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.51.1.tgz",
+ "integrity": "sha512-ZAS+4pq8o7dsugGTwV9s6JMKSxi+guIHdn0acOv0bqj26e9pWDFx5Ky+bI0aY46uR9Y0JyXqY+KAEYM/SO3DFA==",
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/otlp-exporter-base": "0.51.0",
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/otlp-exporter-base": "0.51.1",
"protobufjs": "^7.2.3"
},
"engines": {
@@ -4139,13 +4181,35 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-grpc-exporter-base/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/otlp-proto-exporter-base": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.51.0.tgz",
- "integrity": "sha512-WDANDLSUh11Gu5o6iCzmjZraIv5bK8z1L/t6lxQ2NeEKiKUPo5pVOBBQQC/yAQU2yeqkiO1GRCieH+XahZf60A==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.51.1.tgz",
+ "integrity": "sha512-gxxxwfk0inDMb5DLeuxQ3L8TtptxSiTNHE4nnAJH34IQXAVRhXSXW1rK8PmDKDngRPIZ6J7ncUCjjIn8b+AgqQ==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/otlp-exporter-base": "0.51.0",
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/otlp-exporter-base": "0.51.1",
"protobufjs": "^7.2.3"
},
"engines": {
@@ -4155,17 +4219,39 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/otlp-proto-exporter-base/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-proto-exporter-base/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/otlp-transformer": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.51.0.tgz",
- "integrity": "sha512-ylLgx2xumVoSefDHP9GMAU/LG+TU3+8eacVDXV5o1RqWxsdVOaQmCTY0XyDgeRTn6hIOVAq/HHQbRq3iWOrt2A==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.51.1.tgz",
+ "integrity": "sha512-OppYOXwV9LQqqtYUCywqoOqX/JT9LQ5/FMuPZ//eTkvuHdUC4ZMwz2c6uSoT2R90GWvvGnF1iEqTGyTT3xAt2Q==",
"dependencies": {
- "@opentelemetry/api-logs": "0.51.0",
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/resources": "1.24.0",
- "@opentelemetry/sdk-logs": "0.51.0",
- "@opentelemetry/sdk-metrics": "1.24.0",
- "@opentelemetry/sdk-trace-base": "1.24.0"
+ "@opentelemetry/api-logs": "0.51.1",
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/resources": "1.24.1",
+ "@opentelemetry/sdk-logs": "0.51.1",
+ "@opentelemetry/sdk-metrics": "1.24.1",
+ "@opentelemetry/sdk-trace-base": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4174,6 +4260,39 @@
"@opentelemetry/api": ">=1.3.0 <1.9.0"
}
},
+ "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/api-logs": {
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.51.1.tgz",
+ "integrity": "sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==",
+ "dependencies": {
+ "@opentelemetry/api": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/propagation-utils": {
"version": "0.30.9",
"resolved": "https://registry.npmjs.org/@opentelemetry/propagation-utils/-/propagation-utils-0.30.9.tgz",
@@ -4186,11 +4305,25 @@
}
},
"node_modules/@opentelemetry/propagator-aws-xray": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.24.0.tgz",
- "integrity": "sha512-rcuMtEOTZC7TW84tws1QLUVRElrGSbBJwK0b+qa56zJULDiUIiUpS+dSzO+aUchg7MtTJBZSG5OPsfsKpGgNig==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.24.1.tgz",
+ "integrity": "sha512-RzwoLe6QzsYGcpmxxDbbbgSpe3ncxSM4dtFHXh/rCYGjyq0nZGXKvk26mJtWZ4kQ3nuiIoqSZueIuGmt/mvOTA==",
+ "dependencies": {
+ "@opentelemetry/core": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/propagator-aws-xray/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
"dependencies": {
- "@opentelemetry/core": "1.24.0"
+ "@opentelemetry/semantic-conventions": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4199,12 +4332,34 @@
"@opentelemetry/api": ">=1.0.0 <1.9.0"
}
},
+ "node_modules/@opentelemetry/propagator-aws-xray/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/propagator-b3": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.24.0.tgz",
- "integrity": "sha512-7TMIDE4+NO5vnkor+zned42wqca+hmhW5gWKhmYjUHC5B5uojo1PvtmBrd7kigFu96XvL4ZUWVzibWRWIQ/++Q==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.24.1.tgz",
+ "integrity": "sha512-nda97ZwhpZKyUJTXqQuKzNhPMUgMLunbbGWn8kroBwegn+nh6OhtyGkrVQsQLNdVKJl0KeB5z0ZgeWszrYhwFw==",
+ "dependencies": {
+ "@opentelemetry/core": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
"dependencies": {
- "@opentelemetry/core": "1.24.0"
+ "@opentelemetry/semantic-conventions": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4213,12 +4368,20 @@
"@opentelemetry/api": ">=1.0.0 <1.9.0"
}
},
+ "node_modules/@opentelemetry/propagator-b3/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/propagator-jaeger": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.24.0.tgz",
- "integrity": "sha512-r3MX3AmJiUeiWTXSDOdwBeaO+ahvWcFCpuKxmhhsH8Q8LqDnjhNd3krqBh4Qsq9wa0WhWtiQaDs/NOCWoMOlOw==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.24.1.tgz",
+ "integrity": "sha512-7bRBJn3FG1l195A1m+xXRHvgzAOBsfmRi9uZ5Da18oTh7BLmNDiA8+kpk51FpTsU1PCikPVpRDNPhKVB6lyzZg==",
"dependencies": {
- "@opentelemetry/core": "1.24.0"
+ "@opentelemetry/core": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4227,6 +4390,28 @@
"@opentelemetry/api": ">=1.0.0 <1.9.0"
}
},
+ "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/propagator-jaeger/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/redis-common": {
"version": "0.36.2",
"resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz",
@@ -4251,9 +4436,9 @@
}
},
"node_modules/@opentelemetry/resource-detector-aws": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.4.2.tgz",
- "integrity": "sha512-Rt4cztIz8UZZ32wRbotKPVbkRfukiMM8xfzf2C1M+Puv91Cw6kDJHAfWCqkx7FdNe0e6aF4u2lkFweE1849RCg==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.5.0.tgz",
+ "integrity": "sha512-JNk/kSzzNQaiMo/F0b/bm8S3Qtr/m89BckN9B4U/cPHSqKLdxX03vgRBOqkXJ5KlAD8kc6K1Etcr8QfvGw6+uA==",
"dependencies": {
"@opentelemetry/core": "^1.0.0",
"@opentelemetry/resources": "^1.0.0",
@@ -4266,6 +4451,21 @@
"@opentelemetry/api": "^1.0.0"
}
},
+ "node_modules/@opentelemetry/resource-detector-azure": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.2.7.tgz",
+ "integrity": "sha512-+R3VnPaK6rc+kKfdvhgQlYDGXy0+JMAjPNDjcRQSeXY8pVOzHGCIrY+gT6gUrpjsw8w1EgNBVofr+qeNOr+o4A==",
+ "dependencies": {
+ "@opentelemetry/resources": "^1.10.1",
+ "@opentelemetry/semantic-conventions": "^1.22.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.0.0"
+ }
+ },
"node_modules/@opentelemetry/resource-detector-container": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@opentelemetry/resource-detector-container/-/resource-detector-container-0.3.9.tgz",
@@ -4299,12 +4499,12 @@
}
},
"node_modules/@opentelemetry/resources": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.0.tgz",
- "integrity": "sha512-mxC7E7ocUS1tLzepnA7O9/G8G6ZTdjCH2pXme1DDDuCuk6n2/53GADX+GWBuyX0dfIxeMInIbJAdjlfN9GNr6A==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.1.tgz",
+ "integrity": "sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/semantic-conventions": "1.24.0"
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/semantic-conventions": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4313,13 +4513,35 @@
"@opentelemetry/api": ">=1.0.0 <1.9.0"
}
},
+ "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/sdk-logs": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.51.0.tgz",
- "integrity": "sha512-K4fMBRFD8hQ6khk0rvYFuo6L9ymeGgByir6BcuFIgQuQ00OhYwBi9AruZz5V733Ejq7P8ObR3YyubkOUIbeVAw==",
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.51.1.tgz",
+ "integrity": "sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/resources": "1.24.0"
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/resources": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4329,13 +4551,35 @@
"@opentelemetry/api-logs": ">=0.39.1"
}
},
+ "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/sdk-metrics": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.24.0.tgz",
- "integrity": "sha512-4tJ+E6N019OZVB/nUW/LoK9xHxfeh88TCoaTqHeLBE9wLYfi6irWW6J9cphMav7J8Qk0D5b7/RM4VEY4dArWOA==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.24.1.tgz",
+ "integrity": "sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/resources": "1.24.0",
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/resources": "1.24.1",
"lodash.merge": "^4.6.2"
},
"engines": {
@@ -4345,24 +4589,46 @@
"@opentelemetry/api": ">=1.3.0 <1.9.0"
}
},
- "node_modules/@opentelemetry/sdk-node": {
- "version": "0.51.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.51.0.tgz",
- "integrity": "sha512-MrPXDQsTAj3lcY8YUCjb7dvSXVZ5jG6wmjD2LB68V1rsLBdP8j70jsI9GaKijY7QB6psbLq6apO1vYeim5U7aw==",
+ "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
"dependencies": {
- "@opentelemetry/api-logs": "0.51.0",
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/exporter-trace-otlp-grpc": "0.51.0",
- "@opentelemetry/exporter-trace-otlp-http": "0.51.0",
- "@opentelemetry/exporter-trace-otlp-proto": "0.51.0",
- "@opentelemetry/exporter-zipkin": "1.24.0",
- "@opentelemetry/instrumentation": "0.51.0",
- "@opentelemetry/resources": "1.24.0",
- "@opentelemetry/sdk-logs": "0.51.0",
- "@opentelemetry/sdk-metrics": "1.24.0",
- "@opentelemetry/sdk-trace-base": "1.24.0",
- "@opentelemetry/sdk-trace-node": "1.24.0",
- "@opentelemetry/semantic-conventions": "1.24.0"
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-node": {
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.51.1.tgz",
+ "integrity": "sha512-GgmNF9C+6esr8PIJxCqHw84rEOkYm6XdFWZ2+Wyc3qaUt92ACoN7uSw5iKNvaUq62W0xii1wsGxwHzyENtPP8w==",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.51.1",
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1",
+ "@opentelemetry/exporter-trace-otlp-http": "0.51.1",
+ "@opentelemetry/exporter-trace-otlp-proto": "0.51.1",
+ "@opentelemetry/exporter-zipkin": "1.24.1",
+ "@opentelemetry/instrumentation": "0.51.1",
+ "@opentelemetry/resources": "1.24.1",
+ "@opentelemetry/sdk-logs": "0.51.1",
+ "@opentelemetry/sdk-metrics": "1.24.1",
+ "@opentelemetry/sdk-trace-base": "1.24.1",
+ "@opentelemetry/sdk-trace-node": "1.24.1",
+ "@opentelemetry/semantic-conventions": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4371,14 +4637,77 @@
"@opentelemetry/api": ">=1.3.0 <1.9.0"
}
},
+ "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/api-logs": {
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.51.1.tgz",
+ "integrity": "sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==",
+ "dependencies": {
+ "@opentelemetry/api": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/instrumentation": {
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.51.1.tgz",
+ "integrity": "sha512-JIrvhpgqY6437QIqToyozrUG1h5UhwHkaGK/WAX+fkrpyPtc+RO5FkRtUd9BH0MibabHHvqsnBGKfKVijbmp8w==",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.51.1",
+ "@types/shimmer": "^1.0.2",
+ "import-in-the-middle": "1.7.4",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-node/node_modules/import-in-the-middle": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.7.4.tgz",
+ "integrity": "sha512-Lk+qzWmiQuRPPulGQeK5qq0v32k2bHnWrRPFgqyvhw7Kkov5L6MOLOIU3pcWeujc9W4q54Cp3Q2WV16eQkc7Bg==",
+ "dependencies": {
+ "acorn": "^8.8.2",
+ "acorn-import-attributes": "^1.9.5",
+ "cjs-module-lexer": "^1.2.2",
+ "module-details-from-path": "^1.0.3"
+ }
+ },
"node_modules/@opentelemetry/sdk-trace-base": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.0.tgz",
- "integrity": "sha512-H9sLETZ4jw9UJ3totV8oM5R0m4CW0ZIOLfp4NV3g0CM8HD5zGZcaW88xqzWDgiYRpctFxd+WmHtGX/Upoa2vRg==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.1.tgz",
+ "integrity": "sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==",
"dependencies": {
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/resources": "1.24.0",
- "@opentelemetry/semantic-conventions": "1.24.0"
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/resources": "1.24.1",
+ "@opentelemetry/semantic-conventions": "1.24.1"
},
"engines": {
"node": ">=14"
@@ -4387,16 +4716,38 @@
"@opentelemetry/api": ">=1.0.0 <1.9.0"
}
},
- "node_modules/@opentelemetry/sdk-trace-node": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.24.0.tgz",
- "integrity": "sha512-QgByHmM9uloTpcYEEyW9YJEIMKHFSIM677RH9pJPWWwtM2NQFbEp/8HIJw80Ymtaz6cAxg1Kay1ByqIVzq3t5g==",
+ "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
"dependencies": {
- "@opentelemetry/context-async-hooks": "1.24.0",
- "@opentelemetry/core": "1.24.0",
- "@opentelemetry/propagator-b3": "1.24.0",
- "@opentelemetry/propagator-jaeger": "1.24.0",
- "@opentelemetry/sdk-trace-base": "1.24.0",
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-node": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.24.1.tgz",
+ "integrity": "sha512-/FZX8uWaGIAwsDhqI8VvQ+qWtfMNlXjaFYGc+vmxgdRFppCSSIRwrPyIhJO1qx61okyYhoyxVEZAfoiNxrfJCg==",
+ "dependencies": {
+ "@opentelemetry/context-async-hooks": "1.24.1",
+ "@opentelemetry/core": "1.24.1",
+ "@opentelemetry/propagator-b3": "1.24.1",
+ "@opentelemetry/propagator-jaeger": "1.24.1",
+ "@opentelemetry/sdk-trace-base": "1.24.1",
"semver": "^7.5.2"
},
"engines": {
@@ -4406,6 +4757,28 @@
"@opentelemetry/api": ">=1.0.0 <1.9.0"
}
},
+ "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz",
+ "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.24.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.9.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@opentelemetry/semantic-conventions": {
"version": "1.24.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.0.tgz",
@@ -4503,24 +4876,6 @@
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
},
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
- },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -4741,42 +5096,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/hapi__catbox": {
- "version": "10.2.6",
- "resolved": "https://registry.npmjs.org/@types/hapi__catbox/-/hapi__catbox-10.2.6.tgz",
- "integrity": "sha512-qdMHk4fBlwRfnBBDJaoaxb+fU9Ewi2xqkXD3mNjSPl2v/G/8IJbDpVRBuIcF7oXrcE8YebU5M8cCeKh1NXEn0w=="
- },
- "node_modules/@types/hapi__hapi": {
- "version": "20.0.13",
- "resolved": "https://registry.npmjs.org/@types/hapi__hapi/-/hapi__hapi-20.0.13.tgz",
- "integrity": "sha512-LP4IPfhIO5ZPVOrJo7H8c8Slc0WYTFAUNQX1U0LBPKyXioXhH5H2TawIgxKujIyOhbwoBbpvOsBf6o5+ToJIrQ==",
- "dependencies": {
- "@hapi/boom": "^9.0.0",
- "@hapi/iron": "^6.0.0",
- "@hapi/podium": "^4.1.3",
- "@types/hapi__catbox": "*",
- "@types/hapi__mimos": "*",
- "@types/hapi__shot": "*",
- "@types/node": "*",
- "joi": "^17.3.0"
- }
- },
- "node_modules/@types/hapi__mimos": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz",
- "integrity": "sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ==",
- "dependencies": {
- "@types/mime-db": "*"
- }
- },
- "node_modules/@types/hapi__shot": {
- "version": "4.1.6",
- "resolved": "https://registry.npmjs.org/@types/hapi__shot/-/hapi__shot-4.1.6.tgz",
- "integrity": "sha512-h33NBjx2WyOs/9JgcFeFhkxnioYWQAZxOHdmqDuoJ1Qjxpcs+JGvSjEEoDeWfcrF+1n47kKgqph5IpfmPOnzbg==",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/http-assert": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz",
@@ -4891,11 +5210,6 @@
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
},
- "node_modules/@types/mime-db": {
- "version": "1.43.5",
- "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.5.tgz",
- "integrity": "sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A=="
- },
"node_modules/@types/minimist": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
@@ -5084,6 +5398,14 @@
"acorn": "^8"
}
},
+ "node_modules/acorn-import-attributes": {
+ "version": "1.9.5",
+ "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
+ "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
+ "peerDependencies": {
+ "acorn": "^8"
+ }
+ },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -8915,18 +9237,6 @@
"node": ">= 0.6.0"
}
},
- "node_modules/joi": {
- "version": "17.13.0",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.0.tgz",
- "integrity": "sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==",
- "dependencies": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
- }
- },
"node_modules/joycon": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
@@ -10758,9 +11068,9 @@
}
},
"node_modules/protobufjs": {
- "version": "7.2.6",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz",
- "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==",
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.0.tgz",
+ "integrity": "sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==",
"hasInstallScript": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
@@ -12980,18 +13290,26 @@
"@dotcom-reliability-kit/log-error": "^4.1.1",
"@dotcom-reliability-kit/logger": "^3.1.1",
"@opentelemetry/api": "^1.8.0",
- "@opentelemetry/auto-instrumentations-node": "^0.45.0",
- "@opentelemetry/exporter-trace-otlp-proto": "^0.51.0",
- "@opentelemetry/resources": "^1.24.0",
- "@opentelemetry/sdk-node": "^0.51.0",
- "@opentelemetry/sdk-trace-base": "^1.24.0",
- "@opentelemetry/semantic-conventions": "^1.24.0"
+ "@opentelemetry/auto-instrumentations-node": "^0.46.1",
+ "@opentelemetry/exporter-trace-otlp-proto": "^0.51.1",
+ "@opentelemetry/resources": "^1.24.1",
+ "@opentelemetry/sdk-node": "^0.51.1",
+ "@opentelemetry/sdk-trace-base": "^1.24.1",
+ "@opentelemetry/semantic-conventions": "^1.24.1"
},
"engines": {
"node": "18.x || 20.x || 22.x",
"npm": "8.x || 9.x || 10.x"
}
},
+ "packages/opentelemetry/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz",
+ "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"packages/serialize-error": {
"name": "@dotcom-reliability-kit/serialize-error",
"version": "3.2.0",
diff --git a/packages/opentelemetry/README.md b/packages/opentelemetry/README.md
index 28fb7d65..6caff5d3 100644
--- a/packages/opentelemetry/README.md
+++ b/packages/opentelemetry/README.md
@@ -20,6 +20,7 @@ An [OpenTelemetry](https://opentelemetry.io/docs/what-is-opentelemetry/) client
* [`options.authorizationHeader`](#optionsauthorizationheader)
* [`options.tracing`](#optionstracing)
* [`options.tracing.endpoint`](#optionstracingendpoint)
+ * [`options.tracing.authorizationHeader`](#optionstracingauthorizationheader)
* [`options.tracing.samplePercentage`](#optionstracingsamplepercentage)
* [`OTEL_` environment variables](#otel_-environment-variables)
* [Contributing](#contributing)
@@ -209,10 +210,7 @@ setupOpenTelemetry({
#### `options.authorizationHeader`
-Set the [`Authorization` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) in requests to the OpenTelemetry collector. Defaults to `undefined`.
-
-**Environment variable:** `OPENTELEMETRY_AUTHORIZATION_HEADER`
-**Option:** `authorizationHeader` (`String`)
+**Deprecated**. This will still work but has been replaced with [`options.tracing.authorizationHeader`](#optionstracingauthorizationheader), which is now the preferred way to set this option.
#### `options.tracing`
@@ -225,6 +223,13 @@ A URL to send OpenTelemetry traces to. E.g. `http://localhost:4318/v1/traces`. D
**Environment variable:** `OPENTELEMETRY_TRACING_ENDPOINT`
**Option:** `tracing.endpoint` (`String`)
+#### `options.tracing.authorizationHeader`
+
+Set the [`Authorization` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) in requests to the OpenTelemetry tracing collector. Defaults to `undefined`.
+
+**Environment variable:** `OPENTELEMETRY_AUTHORIZATION_HEADER`
+**Option:** `tracing.authorizationHeader` (`String`)
+
#### `options.tracing.samplePercentage`
The percentage of traces to send to the exporter. Defaults to `5` which means that 5% of traces will be exported.
diff --git a/packages/opentelemetry/lib/config/instrumentations.js b/packages/opentelemetry/lib/config/instrumentations.js
new file mode 100644
index 00000000..5ce494f6
--- /dev/null
+++ b/packages/opentelemetry/lib/config/instrumentations.js
@@ -0,0 +1,60 @@
+const {
+ getNodeAutoInstrumentations
+} = require('@opentelemetry/auto-instrumentations-node');
+const { logRecoverableError } = require('@dotcom-reliability-kit/log-error');
+const { UserInputError } = require('@dotcom-reliability-kit/errors');
+
+// Request paths that we ignore when instrumenting HTTP requests
+const IGNORED_REQUEST_PATHS = ['/__gtg', '/__health', '/favicon.ico'];
+
+/**
+ * Create an instrumentations array for configuring OpenTelemetry.
+ *
+ * @returns {import('@opentelemetry/sdk-node').NodeSDKConfiguration['instrumentations']}
+ */
+exports.createInstrumentationConfig = function createInstrumentationConfig() {
+ return [
+ getNodeAutoInstrumentations({
+ '@opentelemetry/instrumentation-http': {
+ ignoreIncomingRequestHook
+ },
+ '@opentelemetry/instrumentation-fs': {
+ enabled: false
+ }
+ })
+ ];
+};
+
+/**
+ * NOTE: this is not a filter like you know it. The name gives us a clue:
+ * if the hook returns `true` then the request WILL be ignored.
+ *
+ * @see https://github.com/open-telemetry/opentelemetry-js/blob/main/experimental/packages/opentelemetry-instrumentation-http/README.md#http-instrumentation-options
+ * @type {import('@opentelemetry/instrumentation-http').IgnoreIncomingRequestFunction}
+ */
+function ignoreIncomingRequestHook(request) {
+ if (request.url) {
+ try {
+ const url = new URL(request.url, `http://${request.headers.host}`);
+
+ // Don't send traces for paths that we frequently poll
+ if (IGNORED_REQUEST_PATHS.includes(url.pathname)) {
+ return true;
+ }
+ } catch (/** @type {any} */ cause) {
+ // If URL parsing errors then we log it and move on.
+ // We don't ignore URLs that result in an error because
+ // we're interested in the traces from bad requests.
+ logRecoverableError({
+ error: new UserInputError({
+ message: 'Failed to parse the request URL for filtering',
+ code: 'OTEL_REQUEST_FILTER_FAILURE',
+ cause
+ }),
+ includeHeaders: ['host'],
+ request
+ });
+ }
+ }
+ return false;
+}
diff --git a/packages/opentelemetry/lib/config/resource.js b/packages/opentelemetry/lib/config/resource.js
new file mode 100644
index 00000000..81c03d6a
--- /dev/null
+++ b/packages/opentelemetry/lib/config/resource.js
@@ -0,0 +1,25 @@
+const appInfo = require('@dotcom-reliability-kit/app-info');
+const { Resource } = require('@opentelemetry/resources');
+const {
+ SEMRESATTRS_CLOUD_PROVIDER,
+ SEMRESATTRS_CLOUD_REGION,
+ SEMRESATTRS_DEPLOYMENT_ENVIRONMENT,
+ SEMRESATTRS_SERVICE_NAME,
+ SEMRESATTRS_SERVICE_VERSION
+} = require('@opentelemetry/semantic-conventions');
+
+/**
+ * Create a Resource object using gathered app info.
+ *
+ * @returns {import('@opentelemetry/sdk-node').NodeSDKConfiguration['resource']}
+ */
+exports.createResourceConfig = function createResourceConfig() {
+ // We set OpenTelemetry resource attributes based on app data
+ return new Resource({
+ [SEMRESATTRS_SERVICE_NAME]: appInfo.systemCode || undefined,
+ [SEMRESATTRS_SERVICE_VERSION]: appInfo.releaseVersion || undefined,
+ [SEMRESATTRS_CLOUD_PROVIDER]: appInfo.cloudProvider || undefined,
+ [SEMRESATTRS_CLOUD_REGION]: appInfo.region || undefined,
+ [SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: appInfo.environment || undefined
+ });
+};
diff --git a/packages/opentelemetry/lib/config/tracing.js b/packages/opentelemetry/lib/config/tracing.js
new file mode 100644
index 00000000..47c83421
--- /dev/null
+++ b/packages/opentelemetry/lib/config/tracing.js
@@ -0,0 +1,74 @@
+const {
+ OTLPTraceExporter
+} = require('@opentelemetry/exporter-trace-otlp-proto');
+const {
+ NoopSpanProcessor,
+ TraceIdRatioBasedSampler
+} = require('@opentelemetry/sdk-trace-base');
+const logger = require('@dotcom-reliability-kit/logger');
+const { TRACING_USER_AGENT } = require('./user-agents');
+
+const DEFAULT_SAMPLE_PERCENTAGE = 5;
+
+/**
+ * @typedef {object} TracingOptions
+ * @property {string} [authorizationHeader]
+ * The HTTP `Authorization` header to send with OpenTelemetry tracing requests.
+ * @property {string} [endpoint]
+ * The URL to send OpenTelemetry trace segments to, for example http://localhost:4318/v1/traces.
+ * @property {number} [samplePercentage]
+ * What percentage of traces should be sent onto the collector.
+ */
+
+/**
+ * Create an OpenTelemetry tracing configuration.
+ *
+ * @param {TracingOptions} options
+ * @returns {Partial}
+ */
+exports.createTracingConfig = function createTracingConfig(options) {
+ /** @type {Partial} */
+ const config = {};
+
+ // If we have an OpenTelemetry tracing endpoint then set it up,
+ // otherwise we pass a noop span processor so that nothing is exported
+ if (options?.endpoint) {
+ const headers = {
+ 'user-agent': TRACING_USER_AGENT
+ };
+ if (options.authorizationHeader) {
+ headers.authorization = options.authorizationHeader;
+ }
+ config.traceExporter = new OTLPTraceExporter({
+ url: options.endpoint,
+ headers
+ });
+
+ // Sample traces
+ let samplePercentage = DEFAULT_SAMPLE_PERCENTAGE;
+ if (options.samplePercentage && !Number.isNaN(options.samplePercentage)) {
+ samplePercentage = options.samplePercentage;
+ }
+ const sampleRatio = samplePercentage / 100;
+ config.sampler = new TraceIdRatioBasedSampler(sampleRatio);
+
+ logger.info({
+ event: 'OTEL_TRACE_STATUS',
+ message: `OpenTelemetry tracing is enabled and exporting to endpoint ${options.endpoint}`,
+ enabled: true,
+ endpoint: options.endpoint,
+ samplePercentage
+ });
+ } else {
+ logger.warn({
+ event: 'OTEL_TRACE_STATUS',
+ message:
+ 'OpenTelemetry tracing is disabled because no tracing endpoint was set',
+ enabled: false,
+ endpoint: null
+ });
+ config.spanProcessor = new NoopSpanProcessor();
+ }
+
+ return config;
+};
diff --git a/packages/opentelemetry/lib/config/user-agents.js b/packages/opentelemetry/lib/config/user-agents.js
new file mode 100644
index 00000000..876aab40
--- /dev/null
+++ b/packages/opentelemetry/lib/config/user-agents.js
@@ -0,0 +1,7 @@
+const appInfo = require('@dotcom-reliability-kit/app-info');
+const packageJson = require('../../package.json');
+const traceExporterPackageJson = require('@opentelemetry/exporter-trace-otlp-proto/package.json');
+
+const BASE_USER_AGENT = `FTSystem/${appInfo.systemCode} (${packageJson.name}/${packageJson.version})`;
+
+exports.TRACING_USER_AGENT = `${BASE_USER_AGENT} (${traceExporterPackageJson.name}/${traceExporterPackageJson.version})`;
diff --git a/packages/opentelemetry/lib/index.js b/packages/opentelemetry/lib/index.js
index e0dbf094..afa1b7c6 100644
--- a/packages/opentelemetry/lib/index.js
+++ b/packages/opentelemetry/lib/index.js
@@ -1,60 +1,32 @@
-const packageJson = require('../package.json');
+const { createInstrumentationConfig } = require('./config/instrumentations');
+const { createResourceConfig } = require('./config/resource');
+const { createTracingConfig } = require('./config/tracing');
const { diag, DiagLogLevel } = require('@opentelemetry/api');
-const {
- getNodeAutoInstrumentations
-} = require('@opentelemetry/auto-instrumentations-node');
-const { Resource } = require('@opentelemetry/resources');
const opentelemetrySDK = require('@opentelemetry/sdk-node');
-const {
- SEMRESATTRS_CLOUD_PROVIDER,
- SEMRESATTRS_CLOUD_REGION,
- SEMRESATTRS_DEPLOYMENT_ENVIRONMENT,
- SEMRESATTRS_SERVICE_NAME,
- SEMRESATTRS_SERVICE_VERSION
-} = require('@opentelemetry/semantic-conventions');
-const appInfo = require('@dotcom-reliability-kit/app-info');
-const {
- OTLPTraceExporter
-} = require('@opentelemetry/exporter-trace-otlp-proto');
-const traceExporterPackageJson = require('@opentelemetry/exporter-trace-otlp-proto/package.json');
-const {
- NoopSpanProcessor,
- TraceIdRatioBasedSampler
-} = require('@opentelemetry/sdk-trace-base');
const logger = require('@dotcom-reliability-kit/logger');
-const { logRecoverableError } = require('@dotcom-reliability-kit/log-error');
-const { UserInputError } = require('@dotcom-reliability-kit/errors');
-const USER_AGENT = `FTSystem/${appInfo.systemCode} (${packageJson.name}/${packageJson.version})`;
-const TRACING_USER_AGENT = `${USER_AGENT} (${traceExporterPackageJson.name}/${traceExporterPackageJson.version})`;
-
-const DEFAULT_SAMPLE_PERCENTAGE = 5;
-
-const IGNORED_REQUEST_PATHS = ['/__gtg', '/__health', '/favicon.ico'];
+/**
+ * @typedef {import('./config/tracing').TracingOptions} TracingOptions
+ */
/**
* @typedef {object} Options
* @property {string} [authorizationHeader]
- * The HTTP `Authorization` header to send with OpenTelemetry requests.
+ * [DEPRECATED] The HTTP `Authorization` header to send with OpenTelemetry requests. Use `tracing.authorizationHeader` instead.
* @property {TracingOptions} [tracing]
* Configuration options for OpenTelemetry tracing.
*/
-/**
- * @typedef {object} TracingOptions
- * @property {string} endpoint
- * The URL to send OpenTelemetry trace segments to, for example http://localhost:4318/v1/traces.
- * @property {number} [samplePercentage]
- * What percentage of traces should be sent onto the collector.
- */
-
/**
* Set up OpenTelemetry tracing.
*
* @param {Options} [options]
* OpenTelemetry configuration options.
*/
-function setupOpenTelemetry({ authorizationHeader, tracing } = {}) {
+function setupOpenTelemetry({
+ authorizationHeader,
+ tracing: tracingOptions
+} = {}) {
// We don't support using the built-in `OTEL_`-prefixed environment variables. We
// do want to know when these are used, though, so that we can easily spot when
// an app's use of these environment variables might be interfering.
@@ -77,104 +49,18 @@ function setupOpenTelemetry({ authorizationHeader, tracing } = {}) {
DiagLogLevel.INFO
);
- // Construct the OpenTelemetry SDK configuration
- /** @type {opentelemetrySDK.NodeSDKConfiguration} */
- const openTelemetryConfig = {};
-
- // Set OpenTelemetry resource attributes based on app data
- openTelemetryConfig.resource = new Resource({
- [SEMRESATTRS_SERVICE_NAME]: appInfo.systemCode || undefined,
- [SEMRESATTRS_SERVICE_VERSION]: appInfo.releaseVersion || undefined,
- [SEMRESATTRS_CLOUD_PROVIDER]: appInfo.cloudProvider || undefined,
- [SEMRESATTRS_CLOUD_REGION]: appInfo.region || undefined,
- [SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: appInfo.environment || undefined
- });
-
- // Auto-instrument common and built-in Node.js modules
- openTelemetryConfig.instrumentations = [
- getNodeAutoInstrumentations({
- '@opentelemetry/instrumentation-http': {
- // NOTE: this is not a filter like you know it. The name
- // gives us a clue: if the hook returns `true` then the
- // request WILL be ignored.
- ignoreIncomingRequestHook: (request) => {
- if (request.url) {
- try {
- const url = new URL(
- request.url,
- `http://${request.headers.host}`
- );
-
- // Don't send traces for paths that we frequently poll
- if (IGNORED_REQUEST_PATHS.includes(url.pathname)) {
- return true;
- }
- } catch (/** @type {any} */ cause) {
- // If URL parsing errors then we log it and move on.
- // We don't ignore URLs that result in an error because
- // we're interested in the traces from bad requests.
- logRecoverableError({
- error: new UserInputError({
- message: 'Failed to parse the request URL for filtering',
- code: 'OTEL_REQUEST_FILTER_FAILURE',
- cause
- }),
- includeHeaders: ['host'],
- request
- });
- }
- }
- return false;
- }
- },
- '@opentelemetry/instrumentation-fs': {
- enabled: false
- }
- })
- ];
-
- // If we have an OpenTelemetry tracing endpoint then set it up,
- // otherwise we pass a noop span processor so that nothing is exported
- if (tracing?.endpoint) {
- const headers = {
- 'user-agent': TRACING_USER_AGENT
- };
- if (authorizationHeader) {
- headers.authorization = authorizationHeader;
- }
- openTelemetryConfig.traceExporter = new OTLPTraceExporter({
- url: tracing.endpoint,
- headers
- });
-
- // Sample traces
- let samplePercentage = DEFAULT_SAMPLE_PERCENTAGE;
- if (tracing.samplePercentage && !Number.isNaN(tracing.samplePercentage)) {
- samplePercentage = tracing.samplePercentage;
- }
- const sampleRatio = samplePercentage / 100;
- openTelemetryConfig.sampler = new TraceIdRatioBasedSampler(sampleRatio);
-
- logger.info({
- event: 'OTEL_TRACE_STATUS',
- message: `OpenTelemetry tracing is enabled and exporting to endpoint ${tracing.endpoint}`,
- enabled: true,
- endpoint: tracing.endpoint,
- samplePercentage
- });
- } else {
- logger.warn({
- event: 'OTEL_TRACE_STATUS',
- message:
- 'OpenTelemetry tracing is disabled because no tracing endpoint was set',
- enabled: false,
- endpoint: null
- });
- openTelemetryConfig.spanProcessor = new NoopSpanProcessor();
- }
-
// Set up and start OpenTelemetry
- const sdk = new opentelemetrySDK.NodeSDK(openTelemetryConfig);
+ const sdk = new opentelemetrySDK.NodeSDK({
+ // Configurations we set regardless of whether we're using tracing
+ instrumentations: createInstrumentationConfig(),
+ resource: createResourceConfig(),
+
+ // Add tracing-specific configurations
+ ...createTracingConfig({
+ authorizationHeader,
+ ...tracingOptions
+ })
+ });
sdk.start();
}
diff --git a/packages/opentelemetry/package.json b/packages/opentelemetry/package.json
index 4306948f..1a64039b 100644
--- a/packages/opentelemetry/package.json
+++ b/packages/opentelemetry/package.json
@@ -21,11 +21,11 @@
"@dotcom-reliability-kit/log-error": "^4.1.1",
"@dotcom-reliability-kit/logger": "^3.1.1",
"@opentelemetry/api": "^1.8.0",
- "@opentelemetry/auto-instrumentations-node": "^0.45.0",
- "@opentelemetry/exporter-trace-otlp-proto": "^0.51.0",
- "@opentelemetry/resources": "^1.24.0",
- "@opentelemetry/sdk-node": "^0.51.0",
- "@opentelemetry/sdk-trace-base": "^1.24.0",
- "@opentelemetry/semantic-conventions": "^1.24.0"
+ "@opentelemetry/auto-instrumentations-node": "^0.46.1",
+ "@opentelemetry/exporter-trace-otlp-proto": "^0.51.1",
+ "@opentelemetry/resources": "^1.24.1",
+ "@opentelemetry/sdk-node": "^0.51.1",
+ "@opentelemetry/sdk-trace-base": "^1.24.1",
+ "@opentelemetry/semantic-conventions": "^1.24.1"
}
}
diff --git a/packages/opentelemetry/setup.js b/packages/opentelemetry/setup.js
index 1467bd80..b6a5b782 100644
--- a/packages/opentelemetry/setup.js
+++ b/packages/opentelemetry/setup.js
@@ -4,6 +4,7 @@ const setupOpenTelemetry = require('./lib/index.js');
let tracing = undefined;
if (process.env.OPENTELEMETRY_TRACING_ENDPOINT) {
tracing = {
+ authorizationHeader: process.env.OPENTELEMETRY_AUTHORIZATION_HEADER,
endpoint: process.env.OPENTELEMETRY_TRACING_ENDPOINT,
samplePercentage: process.env.OPENTELEMETRY_TRACING_SAMPLE_PERCENTAGE
? Number(process.env.OPENTELEMETRY_TRACING_SAMPLE_PERCENTAGE)
@@ -12,6 +13,5 @@ if (process.env.OPENTELEMETRY_TRACING_ENDPOINT) {
}
setupOpenTelemetry({
- authorizationHeader: process.env.OPENTELEMETRY_AUTHORIZATION_HEADER,
tracing
});
diff --git a/packages/opentelemetry/test/unit/lib/config/instrumentation.spec.js b/packages/opentelemetry/test/unit/lib/config/instrumentation.spec.js
new file mode 100644
index 00000000..4d1e7211
--- /dev/null
+++ b/packages/opentelemetry/test/unit/lib/config/instrumentation.spec.js
@@ -0,0 +1,128 @@
+jest.mock('@opentelemetry/auto-instrumentations-node', () => ({
+ getNodeAutoInstrumentations: jest
+ .fn()
+ .mockReturnValue('mock-auto-instrumentations')
+}));
+jest.mock('@dotcom-reliability-kit/log-error');
+jest.mock('@dotcom-reliability-kit/errors');
+
+const {
+ getNodeAutoInstrumentations
+} = require('@opentelemetry/auto-instrumentations-node');
+const { logRecoverableError } = require('@dotcom-reliability-kit/log-error');
+const { UserInputError } = require('@dotcom-reliability-kit/errors');
+
+const {
+ createInstrumentationConfig
+} = require('../../../../lib/config/instrumentations');
+
+describe('@dotcom-reliability-kit/opentelemetry/lib/config/instrumentation', () => {
+ it('exports a function', () => {
+ expect(typeof createInstrumentationConfig).toBe('function');
+ });
+
+ describe('createInstrumentationConfig()', () => {
+ let instrumentations;
+
+ beforeEach(() => {
+ instrumentations = createInstrumentationConfig();
+ });
+
+ it('creates Node.js auto-instrumentations with some configurations', () => {
+ expect(getNodeAutoInstrumentations).toHaveBeenCalledTimes(1);
+ expect(getNodeAutoInstrumentations).toHaveBeenCalledWith({
+ '@opentelemetry/instrumentation-http': {
+ ignoreIncomingRequestHook: expect.any(Function)
+ },
+ '@opentelemetry/instrumentation-fs': {
+ enabled: false
+ }
+ });
+ });
+
+ describe('ignore incoming request hook function', () => {
+ let ignoreIncomingRequestHook;
+
+ beforeAll(() => {
+ ignoreIncomingRequestHook =
+ getNodeAutoInstrumentations.mock.calls[0][0][
+ '@opentelemetry/instrumentation-http'
+ ].ignoreIncomingRequestHook;
+ });
+
+ it('returns `true` with a request to `/__gtg`', () => {
+ const mockRequest = {
+ url: '/__gtg?a=b',
+ headers: { host: 'mock-host' }
+ };
+ expect(ignoreIncomingRequestHook(mockRequest)).toBe(true);
+ });
+
+ it('returns `true` with a request to `/__health`', () => {
+ const mockRequest = {
+ url: '/__health?a=b',
+ headers: { host: 'mock-host' }
+ };
+ expect(ignoreIncomingRequestHook(mockRequest)).toBe(true);
+ });
+
+ it('returns `true` with a request to `/favicon.ico`', () => {
+ const mockRequest = {
+ url: '/favicon.ico?a=b',
+ headers: { host: 'mock-host' }
+ };
+ expect(ignoreIncomingRequestHook(mockRequest)).toBe(true);
+ });
+
+ it('returns `false` with a request to anything else', () => {
+ const mockRequest = {
+ url: '/mock-endpoint',
+ headers: { host: 'mock-host' }
+ };
+ expect(ignoreIncomingRequestHook(mockRequest)).toBe(false);
+ });
+
+ it('returns `false` when a request URL is not present', () => {
+ const mockRequest = {
+ url: undefined,
+ headers: { host: 'mock-host' }
+ };
+ expect(ignoreIncomingRequestHook(mockRequest)).toBe(false);
+ });
+
+ it("doesn't throw when the host header isn't set", () => {
+ const mockRequest = {
+ url: '/mock-endpoint',
+ headers: {}
+ };
+ expect(() => ignoreIncomingRequestHook(mockRequest)).not.toThrow();
+ });
+
+ it('logs a warning and returns `false` when a request URL cannot be parsed', () => {
+ const mockRequest = {
+ url: '/mock-endpont',
+ headers: { host: '' }
+ };
+ expect(ignoreIncomingRequestHook(mockRequest)).toBe(false);
+ expect(UserInputError).toHaveBeenCalledTimes(1);
+ expect(UserInputError).toHaveBeenCalledWith(
+ expect.objectContaining({
+ code: 'OTEL_REQUEST_FILTER_FAILURE'
+ })
+ );
+ expect(logRecoverableError).toHaveBeenCalledTimes(1);
+ expect(logRecoverableError).toHaveBeenCalledWith(
+ expect.objectContaining({
+ error: expect.any(UserInputError),
+ includeHeaders: ['host'],
+ request: mockRequest
+ })
+ );
+ });
+ });
+
+ it('returns an array of instrumentations', () => {
+ expect(instrumentations).toEqual(['mock-auto-instrumentations']);
+ });
+ });
+});
diff --git a/packages/opentelemetry/test/unit/lib/config/resource.spec.js b/packages/opentelemetry/test/unit/lib/config/resource.spec.js
new file mode 100644
index 00000000..abe33230
--- /dev/null
+++ b/packages/opentelemetry/test/unit/lib/config/resource.spec.js
@@ -0,0 +1,71 @@
+jest.mock('@dotcom-reliability-kit/app-info', () => ({
+ systemCode: 'mock-system-code',
+ releaseVersion: 'mock-release-version',
+ cloudProvider: 'mock-cloud-provider',
+ region: 'mock-cloud-region',
+ environment: 'mock-environment'
+}));
+jest.mock('@opentelemetry/resources');
+jest.mock('@opentelemetry/semantic-conventions', () => ({
+ SEMRESATTRS_CLOUD_PROVIDER: 'mock-semresattrs-cloud-provider',
+ SEMRESATTRS_CLOUD_REGION: 'mock-semresattrs-cloud-region',
+ SEMRESATTRS_DEPLOYMENT_ENVIRONMENT: 'mock-semresattrs-deployment-environment',
+ SEMRESATTRS_SERVICE_NAME: 'mock-semresattrs-service-name',
+ SEMRESATTRS_SERVICE_VERSION: 'mock-semresattrs-service-version'
+}));
+
+const appInfo = require('@dotcom-reliability-kit/app-info');
+const { Resource } = require('@opentelemetry/resources');
+const { createResourceConfig } = require('../../../../lib/config/resource');
+
+describe('@dotcom-reliability-kit/opentelemetry/lib/config/resource', () => {
+ it('exports a function', () => {
+ expect(typeof createResourceConfig).toBe('function');
+ });
+
+ describe('createResourceConfig()', () => {
+ let resource;
+
+ beforeEach(() => {
+ resource = createResourceConfig();
+ });
+
+ it('creates and returns an OpenTelemetry Resource', () => {
+ expect(Resource).toHaveBeenCalledTimes(1);
+ expect(Resource).toHaveBeenCalledWith({
+ 'mock-semresattrs-cloud-provider': 'mock-cloud-provider',
+ 'mock-semresattrs-cloud-region': 'mock-cloud-region',
+ 'mock-semresattrs-deployment-environment': 'mock-environment',
+ 'mock-semresattrs-service-name': 'mock-system-code',
+ 'mock-semresattrs-service-version': 'mock-release-version'
+ });
+ expect(resource).toStrictEqual(Resource.mock.instances[0]);
+ });
+
+ describe('when any appInfo properties are falsy', () => {
+ let resource;
+
+ beforeEach(() => {
+ Resource.mockClear();
+ appInfo.systemCode = null;
+ appInfo.releaseVersion = null;
+ appInfo.cloudProvider = null;
+ appInfo.region = null;
+ appInfo.environment = null;
+ resource = createResourceConfig();
+ });
+
+ it('creates and returns an OpenTelemetry Resource with properties set to `undefined`', () => {
+ expect(Resource).toHaveBeenCalledTimes(1);
+ expect(Resource).toHaveBeenCalledWith({
+ 'mock-semresattrs-cloud-provider': undefined,
+ 'mock-semresattrs-cloud-region': undefined,
+ 'mock-semresattrs-deployment-environment': undefined,
+ 'mock-semresattrs-service-name': undefined,
+ 'mock-semresattrs-service-version': undefined
+ });
+ expect(resource).toStrictEqual(Resource.mock.instances[0]);
+ });
+ });
+ });
+});
diff --git a/packages/opentelemetry/test/unit/lib/config/tracing.spec.js b/packages/opentelemetry/test/unit/lib/config/tracing.spec.js
new file mode 100644
index 00000000..99fa47c8
--- /dev/null
+++ b/packages/opentelemetry/test/unit/lib/config/tracing.spec.js
@@ -0,0 +1,144 @@
+jest.mock('@opentelemetry/exporter-trace-otlp-proto');
+jest.mock('@opentelemetry/sdk-trace-base');
+jest.mock('@dotcom-reliability-kit/logger');
+jest.mock('../../../../lib/config/user-agents', () => ({
+ TRACING_USER_AGENT: 'mock-tracing-user-agent'
+}));
+
+const logger = require('@dotcom-reliability-kit/logger');
+const {
+ OTLPTraceExporter
+} = require('@opentelemetry/exporter-trace-otlp-proto');
+const {
+ NoopSpanProcessor,
+ TraceIdRatioBasedSampler
+} = require('@opentelemetry/sdk-trace-base');
+const { createTracingConfig } = require('../../../../lib/config/tracing');
+
+describe('@dotcom-reliability-kit/opentelemetry/lib/config/tracing', () => {
+ it('exports a function', () => {
+ expect(typeof createTracingConfig).toBe('function');
+ });
+
+ describe('createTracingConfig(options)', () => {
+ let config;
+
+ beforeAll(() => {
+ config = createTracingConfig({
+ authorizationHeader: 'mock-auth-header',
+ endpoint: 'mock-endpoint',
+ samplePercentage: 10
+ });
+ });
+
+ it('creates a trace exporter', () => {
+ expect(OTLPTraceExporter).toHaveBeenCalledTimes(1);
+ expect(OTLPTraceExporter).toHaveBeenCalledWith({
+ url: 'mock-endpoint',
+ headers: {
+ authorization: 'mock-auth-header',
+ 'user-agent': 'mock-tracing-user-agent'
+ }
+ });
+ });
+
+ it('creates a ratio-based trace sampler', () => {
+ expect(TraceIdRatioBasedSampler).toHaveBeenCalledTimes(1);
+ expect(TraceIdRatioBasedSampler).toHaveBeenCalledWith(0.1);
+ });
+
+ it('does not create a noop span processor', () => {
+ expect(NoopSpanProcessor).toHaveBeenCalledTimes(0);
+ });
+
+ it('logs that tracing is enabled', () => {
+ expect(logger.info).toHaveBeenCalledWith({
+ enabled: true,
+ endpoint: 'mock-endpoint',
+ event: 'OTEL_TRACE_STATUS',
+ message:
+ 'OpenTelemetry tracing is enabled and exporting to endpoint mock-endpoint',
+ samplePercentage: 10
+ });
+ });
+
+ it('returns the configuration', () => {
+ expect(config).toEqual({
+ traceExporter: OTLPTraceExporter.mock.instances[0],
+ sampler: TraceIdRatioBasedSampler.mock.instances[0]
+ });
+ });
+
+ describe('when options.authorizationHeader is not defined', () => {
+ beforeAll(() => {
+ OTLPTraceExporter.mockClear();
+ config = createTracingConfig({
+ endpoint: 'mock-endpoint',
+ samplePercentage: 10
+ });
+ });
+
+ it('creates a trace exporter without an authorization header', () => {
+ expect(OTLPTraceExporter).toHaveBeenCalledTimes(1);
+ expect(OTLPTraceExporter).toHaveBeenCalledWith({
+ url: 'mock-endpoint',
+ headers: {
+ 'user-agent': 'mock-tracing-user-agent'
+ }
+ });
+ });
+ });
+
+ describe('when options.samplePercentage is not defined', () => {
+ beforeAll(() => {
+ TraceIdRatioBasedSampler.mockClear();
+ config = createTracingConfig({
+ authorizationHeader: 'mock-auth-header',
+ endpoint: 'mock-endpoint'
+ });
+ });
+
+ it('creates a ratio-based trace sampler with a default sample ratio', () => {
+ expect(TraceIdRatioBasedSampler).toHaveBeenCalledTimes(1);
+ expect(TraceIdRatioBasedSampler).toHaveBeenCalledWith(0.05);
+ });
+ });
+
+ describe('when options.endpoint is not defined', () => {
+ beforeAll(() => {
+ OTLPTraceExporter.mockClear();
+ TraceIdRatioBasedSampler.mockClear();
+ config = createTracingConfig({});
+ });
+
+ it('does not creates a trace exporter', () => {
+ expect(OTLPTraceExporter).toHaveBeenCalledTimes(0);
+ });
+
+ it('does not create a ratio-based trace sampler', () => {
+ expect(TraceIdRatioBasedSampler).toHaveBeenCalledTimes(0);
+ });
+
+ it('creates a noop span processor', () => {
+ expect(NoopSpanProcessor).toHaveBeenCalledTimes(1);
+ expect(NoopSpanProcessor).toHaveBeenCalledWith();
+ });
+
+ it('logs that tracing is disabled', () => {
+ expect(logger.warn).toHaveBeenCalledWith({
+ enabled: false,
+ endpoint: null,
+ event: 'OTEL_TRACE_STATUS',
+ message:
+ 'OpenTelemetry tracing is disabled because no tracing endpoint was set'
+ });
+ });
+
+ it('returns the configuration', () => {
+ expect(config).toEqual({
+ spanProcessor: NoopSpanProcessor.mock.instances[0]
+ });
+ });
+ });
+ });
+});
diff --git a/packages/opentelemetry/test/unit/lib/config/user-agents.spec.js b/packages/opentelemetry/test/unit/lib/config/user-agents.spec.js
new file mode 100644
index 00000000..7826ce2a
--- /dev/null
+++ b/packages/opentelemetry/test/unit/lib/config/user-agents.spec.js
@@ -0,0 +1,23 @@
+jest.mock('@dotcom-reliability-kit/app-info', () => ({
+ systemCode: 'mock-system-code'
+}));
+jest.mock('../../../../package.json', () => ({
+ name: 'mock-package',
+ version: '1.2.3'
+}));
+jest.mock('@opentelemetry/exporter-trace-otlp-proto/package.json', () => ({
+ name: 'mock-otel-tracing-package',
+ version: '3.4.5'
+}));
+
+const { TRACING_USER_AGENT } = require('../../../../lib/config/user-agents');
+
+describe('@dotcom-reliability-kit/opentelemetry/lib/config/resource', () => {
+ describe('.TRACING_USER_AGENT', () => {
+ it('is set based on app info and package versions', () => {
+ expect(TRACING_USER_AGENT).toStrictEqual(
+ 'FTSystem/mock-system-code (mock-package/1.2.3) (mock-otel-tracing-package/3.4.5)'
+ );
+ });
+ });
+});
diff --git a/packages/opentelemetry/test/unit/lib/index.spec.js b/packages/opentelemetry/test/unit/lib/index.spec.js
index 7a63af4f..a230270d 100644
--- a/packages/opentelemetry/test/unit/lib/index.spec.js
+++ b/packages/opentelemetry/test/unit/lib/index.spec.js
@@ -1,70 +1,46 @@
-jest.mock('../../../package.json', () => ({
- name: 'mock-package',
- version: '1.2.3'
-}));
-jest.mock('@opentelemetry/auto-instrumentations-node');
-jest.mock('@opentelemetry/exporter-trace-otlp-proto');
-jest.mock('@opentelemetry/exporter-trace-otlp-proto/package.json', () => ({
- name: 'mock-otel-tracing-package',
- version: '3.4.5'
-}));
-jest.mock('@opentelemetry/sdk-trace-base');
-jest.mock('@opentelemetry/resources');
jest.mock('@opentelemetry/sdk-node');
-jest.mock('@opentelemetry/semantic-conventions');
-jest.mock('@dotcom-reliability-kit/app-info');
jest.mock('@opentelemetry/api');
jest.mock('@dotcom-reliability-kit/logger');
-jest.mock('@dotcom-reliability-kit/log-error');
-jest.mock('@dotcom-reliability-kit/errors');
+jest.mock('../../../lib/config/instrumentations', () => ({
+ createInstrumentationConfig: jest
+ .fn()
+ .mockReturnValue('mock-instrumentations')
+}));
+jest.mock('../../../lib/config/resource', () => ({
+ createResourceConfig: jest.fn().mockReturnValue('mock-resource')
+}));
+jest.mock('../../../lib/config/tracing', () => ({
+ createTracingConfig: jest.fn().mockReturnValue({ tracing: 'mock-tracing' })
+}));
-const { diag, DiagLogLevel } = require('@opentelemetry/api');
const {
- getNodeAutoInstrumentations
-} = require('@opentelemetry/auto-instrumentations-node');
+ createInstrumentationConfig
+} = require('../../../lib/config/instrumentations');
+const { createResourceConfig } = require('../../../lib/config/resource');
+const { createTracingConfig } = require('../../../lib/config/tracing');
+const { diag, DiagLogLevel } = require('@opentelemetry/api');
+const { NodeSDK } = require('@opentelemetry/sdk-node');
const logger = require('@dotcom-reliability-kit/logger');
-const { logRecoverableError } = require('@dotcom-reliability-kit/log-error');
-const { UserInputError } = require('@dotcom-reliability-kit/errors');
-const { Resource } = require('@opentelemetry/resources');
-const opentelemetrySDK = require('@opentelemetry/sdk-node');
-const {
- SEMRESATTRS_CLOUD_PROVIDER,
- SEMRESATTRS_CLOUD_REGION,
- SEMRESATTRS_DEPLOYMENT_ENVIRONMENT,
- SEMRESATTRS_SERVICE_NAME,
- SEMRESATTRS_SERVICE_VERSION
-} = require('@opentelemetry/semantic-conventions');
-const appInfo = require('@dotcom-reliability-kit/app-info');
-const {
- OTLPTraceExporter
-} = require('@opentelemetry/exporter-trace-otlp-proto');
-const {
- NoopSpanProcessor,
- TraceIdRatioBasedSampler
-} = require('@opentelemetry/sdk-trace-base');
-
-// Set up the mock
-appInfo.systemCode = 'MOCK_SYSTEM_CODE';
-appInfo.releaseVersion = 'MOCK_RELEASE_VERSION';
-appInfo.cloudProvider = 'MOCK_CLOUD_PROVIDER';
-appInfo.region = 'MOCK_CLOUD_REGION';
-appInfo.environment = 'MOCK_ENVIRONMENT';
logger.createChildLogger.mockReturnValue('mock child logger');
DiagLogLevel.INFO = 'mock info log level';
-getNodeAutoInstrumentations.mockReturnValue('mock implementation response');
// Import the OTel function for testing
-const openTelemetryTracing = require('../../../lib/index');
+const setupOpenTelemetry = require('../../../lib/index');
describe('@dotcom-reliability-kit/opentelemetry', () => {
- it('should be exporting a function', () => {
- expect(typeof openTelemetryTracing).toStrictEqual('function');
+ it('exports a function', () => {
+ expect(typeof setupOpenTelemetry).toStrictEqual('function');
});
- describe('OpenTelemetry is set up correctly', () => {
+ describe('setupOpenTelemetry(options)', () => {
beforeAll(() => {
- openTelemetryTracing({ tracing: { endpoint: 'MOCK_TRACING_ENDPOINT' } });
+ setupOpenTelemetry({
+ tracing: {
+ endpoint: 'mock-tracing-endpoint',
+ samplePercentage: 137
+ }
+ });
});
it('sets up OpenTelemetry to log via Reliability Kit logger', () => {
@@ -79,270 +55,123 @@ describe('@dotcom-reliability-kit/opentelemetry', () => {
);
});
- it('calls and starts the OpenTelemetry Node SDK', () => {
- expect(opentelemetrySDK.NodeSDK).toHaveBeenCalledTimes(1);
- expect(opentelemetrySDK.NodeSDK).toHaveBeenCalledWith(expect.any(Object));
- expect(opentelemetrySDK.NodeSDK.prototype.start).toHaveBeenCalledTimes(1);
+ it('configures the OpenTelemetry instrumentations', () => {
+ expect(createInstrumentationConfig).toHaveBeenCalledTimes(1);
+ expect(createInstrumentationConfig).toHaveBeenCalledWith();
});
- it('sets OpenTelemetry resource attributes based on app data', () => {
- expect(Resource).toHaveBeenCalledTimes(1);
- expect(Resource).toHaveBeenCalledWith({
- [SEMRESATTRS_SERVICE_NAME]: 'MOCK_SYSTEM_CODE',
- [SEMRESATTRS_SERVICE_VERSION]: 'MOCK_RELEASE_VERSION',
- [SEMRESATTRS_CLOUD_PROVIDER]: 'MOCK_CLOUD_PROVIDER',
- [SEMRESATTRS_CLOUD_REGION]: 'MOCK_CLOUD_REGION',
- [SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: 'MOCK_ENVIRONMENT'
- });
- expect(opentelemetrySDK.NodeSDK.mock.calls[0][0].resource).toBeInstanceOf(
- Resource
- );
+ it('configures the OpenTelemetry resource', () => {
+ expect(createResourceConfig).toHaveBeenCalledTimes(1);
+ expect(createResourceConfig).toHaveBeenCalledWith();
});
- it('sets OpenTelemetry instrumentations by auto-instrumenting common and built-in Node.js modules', () => {
- expect(getNodeAutoInstrumentations).toHaveBeenCalledTimes(1);
- expect(getNodeAutoInstrumentations).toHaveBeenCalledWith({
- '@opentelemetry/instrumentation-http': {
- ignoreIncomingRequestHook: expect.any(Function)
- },
- '@opentelemetry/instrumentation-fs': {
- enabled: false
- }
+ it('creates tracing config', () => {
+ expect(createTracingConfig).toHaveBeenCalledTimes(1);
+ expect(createTracingConfig).toHaveBeenCalledWith({
+ endpoint: 'mock-tracing-endpoint',
+ samplePercentage: 137
});
- expect(
- opentelemetrySDK.NodeSDK.mock.calls[0][0].instrumentations
- ).toEqual(expect.arrayContaining(['mock implementation response']));
});
- it('creates traces via an instantiated OTLPTraceExporter', () => {
- expect(OTLPTraceExporter).toHaveBeenCalledTimes(1);
- expect(OTLPTraceExporter).toHaveBeenCalledWith({
- url: 'MOCK_TRACING_ENDPOINT',
- headers: {
- 'user-agent':
- 'FTSystem/MOCK_SYSTEM_CODE (mock-package/1.2.3) (mock-otel-tracing-package/3.4.5)'
- }
+ it('instantiates and starts the OpenTelemetry Node SDK with the created config', () => {
+ expect(NodeSDK).toHaveBeenCalledTimes(1);
+ expect(NodeSDK).toHaveBeenCalledWith({
+ instrumentations: 'mock-instrumentations',
+ resource: 'mock-resource',
+ tracing: 'mock-tracing'
});
- expect(
- opentelemetrySDK.NodeSDK.mock.calls[0][0].traceExporter
- ).toBeInstanceOf(OTLPTraceExporter);
+ expect(NodeSDK.prototype.start).toHaveBeenCalledTimes(1);
});
- it('creates a ratio-based sampler and sets a sample rate for OpenTelemetry', () => {
- expect(TraceIdRatioBasedSampler).toHaveBeenCalledTimes(1);
- expect(TraceIdRatioBasedSampler).toHaveBeenCalledWith(0.05); // The default
- expect(opentelemetrySDK.NodeSDK.mock.calls[0][0].sampler).toBeInstanceOf(
- TraceIdRatioBasedSampler
- );
- });
-
- it('logs that tracing is enabled', () => {
- expect(logger.info).toHaveBeenCalledWith({
- enabled: true,
- endpoint: 'MOCK_TRACING_ENDPOINT',
- event: 'OTEL_TRACE_STATUS',
- message:
- 'OpenTelemetry tracing is enabled and exporting to endpoint MOCK_TRACING_ENDPOINT',
- samplePercentage: 5
- });
- });
-
- it('it does not create traces via an instantiated NoopSpanProcessor', () => {
- expect(NoopSpanProcessor).toHaveBeenCalledTimes(0);
- });
-
- describe('ignoreIncomingRequestHook filter', () => {
- let ignoreIncomingRequestHook;
-
+ describe('when no options are set', () => {
beforeAll(() => {
- ignoreIncomingRequestHook =
- getNodeAutoInstrumentations.mock.calls[0][0][
- '@opentelemetry/instrumentation-http'
- ].ignoreIncomingRequestHook;
+ NodeSDK.mockClear();
+ setupOpenTelemetry();
});
- it('returns `true` with a request to `/__gtg`', () => {
- const mockRequest = {
- url: '/__gtg?a=b',
- headers: { host: 'mock-host' }
- };
- expect(ignoreIncomingRequestHook(mockRequest)).toBe(true);
- });
-
- it('returns `true` with a request to `/__health`', () => {
- const mockRequest = {
- url: '/__health?a=b',
- headers: { host: 'mock-host' }
- };
- expect(ignoreIncomingRequestHook(mockRequest)).toBe(true);
- });
-
- it('returns `true` with a request to `/favicon.ico`', () => {
- const mockRequest = {
- url: '/favicon.ico?a=b',
- headers: { host: 'mock-host' }
- };
- expect(ignoreIncomingRequestHook(mockRequest)).toBe(true);
- });
-
- it('returns `false` with a request to anything else', () => {
- const mockRequest = {
- url: '/mock-endpoint',
- headers: { host: 'mock-host' }
- };
- expect(ignoreIncomingRequestHook(mockRequest)).toBe(false);
- });
-
- it('returns `false` when a request URL is not present', () => {
- const mockRequest = {
- url: undefined,
- headers: { host: 'mock-host' }
- };
- expect(ignoreIncomingRequestHook(mockRequest)).toBe(false);
- });
-
- it("doesn't throw when the host header isn't set", () => {
- const mockRequest = {
- url: '/mock-endpoint',
- headers: {}
- };
- expect(() => ignoreIncomingRequestHook(mockRequest)).not.toThrow();
- });
-
- it('logs a warning and returns `false` when a request URL cannot be parsed', () => {
- const mockRequest = {
- url: '/mock-endpont',
- headers: { host: '' }
- };
- expect(ignoreIncomingRequestHook(mockRequest)).toBe(false);
- expect(UserInputError).toHaveBeenCalledTimes(1);
- expect(UserInputError).toHaveBeenCalledWith(
- expect.objectContaining({
- code: 'OTEL_REQUEST_FILTER_FAILURE'
- })
- );
- expect(logRecoverableError).toHaveBeenCalledTimes(1);
- expect(logRecoverableError).toHaveBeenCalledWith(
- expect.objectContaining({
- error: expect.any(UserInputError),
- includeHeaders: ['host'],
- request: mockRequest
- })
- );
+ it('still instantiates and starts the OpenTelemetry Node SDK with the created config', () => {
+ expect(NodeSDK).toHaveBeenCalledTimes(1);
+ expect(NodeSDK).toHaveBeenCalledWith({
+ instrumentations: 'mock-instrumentations',
+ resource: 'mock-resource',
+ tracing: 'mock-tracing'
+ });
});
});
- });
- describe('when an authorization header is passed into the options', () => {
- beforeAll(() => {
- OTLPTraceExporter.mockReset();
- openTelemetryTracing({
- tracing: { endpoint: 'MOCK_TRACING_ENDPOINT' },
- authorizationHeader: 'mock-authorization-header'
+ describe('when an authorization header is passed into the root options (deprecated)', () => {
+ beforeAll(() => {
+ createTracingConfig.mockReset();
+ setupOpenTelemetry({
+ authorizationHeader: 'mock-authorization-header-root',
+ tracing: {
+ endpoint: 'mock-tracing-endpoint'
+ }
+ });
});
- });
- it('instantiates the OTLPTraceExporter with the authorization header set', () => {
- expect(OTLPTraceExporter).toHaveBeenCalledTimes(1);
- expect(OTLPTraceExporter).toHaveBeenCalledWith({
- url: 'MOCK_TRACING_ENDPOINT',
- headers: {
- authorization: 'mock-authorization-header',
- 'user-agent':
- 'FTSystem/MOCK_SYSTEM_CODE (mock-package/1.2.3) (mock-otel-tracing-package/3.4.5)'
- }
+ it('uses the authorization header when configuring tracing', () => {
+ expect(createTracingConfig).toHaveBeenCalledTimes(1);
+ expect(createTracingConfig).toHaveBeenCalledWith({
+ authorizationHeader: 'mock-authorization-header-root',
+ endpoint: 'mock-tracing-endpoint'
+ });
});
});
- });
- describe('when a sample percentage is passed into the options', () => {
- beforeAll(() => {
- opentelemetrySDK.NodeSDK.mockReset();
- TraceIdRatioBasedSampler.mockReset();
- openTelemetryTracing({
- tracing: { endpoint: 'MOCK_TRACING_ENDPOINT', samplePercentage: 50 }
+ describe('when an authorization header is passed into the tracing options', () => {
+ beforeAll(() => {
+ createTracingConfig.mockReset();
+ setupOpenTelemetry({
+ tracing: {
+ authorizationHeader: 'mock-authorization-header-tracing',
+ endpoint: 'mock-tracing-endpoint'
+ }
+ });
});
- });
-
- it('sets a sample rate for OpenTelemetry based on the value', () => {
- expect(TraceIdRatioBasedSampler).toHaveBeenCalledTimes(1);
- // The value of `samplePercentage` divided by 100
- expect(TraceIdRatioBasedSampler).toHaveBeenCalledWith(0.5);
- expect(opentelemetrySDK.NodeSDK.mock.calls[0][0].sampler).toBeInstanceOf(
- TraceIdRatioBasedSampler
- );
- });
- });
-
- describe('spans are not created and exported if param is not a traces endpoint', () => {
- beforeAll(() => {
- opentelemetrySDK.NodeSDK.mockReset();
- OTLPTraceExporter.mockReset();
- openTelemetryTracing({ tracing: undefined });
- });
- it('instantiates the NoopSpanProcessor if param is not a traces endpoint', () => {
- expect(NoopSpanProcessor).toHaveBeenCalledTimes(1);
- expect(
- opentelemetrySDK.NodeSDK.mock.calls[0][0].spanProcessor
- ).toBeInstanceOf(NoopSpanProcessor);
- });
-
- it('logs that tracing is disabled', () => {
- expect(logger.warn).toHaveBeenCalledWith({
- enabled: false,
- endpoint: null,
- event: 'OTEL_TRACE_STATUS',
- message:
- 'OpenTelemetry tracing is disabled because no tracing endpoint was set'
+ it('uses the authorization header when configuring tracing', () => {
+ expect(createTracingConfig).toHaveBeenCalledTimes(1);
+ expect(createTracingConfig).toHaveBeenCalledWith({
+ authorizationHeader: 'mock-authorization-header-tracing',
+ endpoint: 'mock-tracing-endpoint'
+ });
});
});
- it('it does not create traces via an instantiated OTLPTraceExporter', () => {
- expect(OTLPTraceExporter).toHaveBeenCalledTimes(0);
- });
- });
-
- it('executes when no param is passed in (as params are optional)', () => {
- openTelemetryTracing();
- });
-
- describe('when OTEL_ environment variables are defined', () => {
- beforeAll(() => {
- process.env.OTEL_MOCK = 'mock';
- openTelemetryTracing();
- });
+ describe('when an authorization header is passed into both the root options (deprecated) and tracing options', () => {
+ beforeAll(() => {
+ createTracingConfig.mockReset();
+ setupOpenTelemetry({
+ authorizationHeader: 'mock-authorization-header-root',
+ tracing: {
+ authorizationHeader: 'mock-authorization-header-tracing',
+ endpoint: 'mock-tracing-endpoint'
+ }
+ });
+ });
- it('logs a warning that these environment variables are not supported', () => {
- expect(logger.warn).toHaveBeenCalledWith({
- event: 'OTEL_ENVIRONMENT_VARIABLES_DEFINED',
- message:
- 'OTEL-prefixed environment variables are defined, this use-case is not supported by Reliability Kit. You may encounter issues'
+ it('prioritises the tracing option authorization header', () => {
+ expect(createTracingConfig).toHaveBeenCalledTimes(1);
+ expect(createTracingConfig).toHaveBeenCalledWith({
+ authorizationHeader: 'mock-authorization-header-tracing',
+ endpoint: 'mock-tracing-endpoint'
+ });
});
});
- });
- describe('when app data is not available', () => {
- beforeAll(() => {
- Resource.mockReset();
- appInfo.systemCode = null;
- appInfo.releaseVersion = null;
- appInfo.cloudProvider = null;
- appInfo.region = null;
- appInfo.environment = null;
- openTelemetryTracing({
- tracing: { endpoint: 'MOCK_TRACING_ENDPOINT' }
+ describe('when OTEL_ environment variables are defined', () => {
+ beforeAll(() => {
+ process.env.OTEL_MOCK = 'mock';
+ setupOpenTelemetry();
});
- });
- it('sets OpenTelemetry resource attributes to undefined', () => {
- expect(Resource).toHaveBeenCalledTimes(1);
- expect(Resource).toHaveBeenCalledWith({
- [SEMRESATTRS_SERVICE_NAME]: undefined,
- [SEMRESATTRS_SERVICE_VERSION]: undefined,
- [SEMRESATTRS_CLOUD_PROVIDER]: undefined,
- [SEMRESATTRS_CLOUD_REGION]: undefined,
- [SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: undefined
+ it('logs a warning that these environment variables are not supported', () => {
+ expect(logger.warn).toHaveBeenCalledWith({
+ event: 'OTEL_ENVIRONMENT_VARIABLES_DEFINED',
+ message:
+ 'OTEL-prefixed environment variables are defined, this use-case is not supported by Reliability Kit. You may encounter issues'
+ });
});
});
});
diff --git a/packages/opentelemetry/test/unit/setup.spec.js b/packages/opentelemetry/test/unit/setup.spec.js
index f8f36867..8a7f1c3a 100644
--- a/packages/opentelemetry/test/unit/setup.spec.js
+++ b/packages/opentelemetry/test/unit/setup.spec.js
@@ -14,8 +14,8 @@ describe('setupOpenTelemetry', () => {
expect(setupOpenTelemetry).toHaveBeenCalledTimes(1);
expect(setupOpenTelemetry).toHaveBeenCalledWith({
- authorizationHeader: 'MOCK_AUTH_HEADER',
tracing: {
+ authorizationHeader: 'MOCK_AUTH_HEADER',
endpoint: 'MOCK_TRACING_ENDPOINT'
}
});
@@ -28,8 +28,8 @@ describe('setupOpenTelemetry', () => {
expect(setupOpenTelemetry).toHaveBeenCalledTimes(1);
expect(setupOpenTelemetry).toHaveBeenCalledWith({
- authorizationHeader: 'MOCK_AUTH_HEADER',
tracing: {
+ authorizationHeader: 'MOCK_AUTH_HEADER',
endpoint: 'MOCK_TRACING_ENDPOINT',
samplePercentage: 50
}
@@ -44,8 +44,8 @@ describe('setupOpenTelemetry', () => {
expect(setupOpenTelemetry).toHaveBeenCalledTimes(1);
expect(setupOpenTelemetry).toHaveBeenCalledWith({
- authorizationHeader: 'MOCK_AUTH_HEADER',
tracing: {
+ authorizationHeader: 'MOCK_AUTH_HEADER',
endpoint: 'MOCK_TRACING_ENDPOINT',
samplePercentage: NaN
}
@@ -59,9 +59,7 @@ describe('setupOpenTelemetry', () => {
require('../../setup.js');
expect(setupOpenTelemetry).toHaveBeenCalledTimes(1);
- expect(setupOpenTelemetry).toHaveBeenCalledWith({
- authorizationHeader: 'MOCK_AUTH_HEADER'
- });
+ expect(setupOpenTelemetry).toHaveBeenCalledWith({});
});
});
});