@sentry/node 10.62.0 → 10.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/index.js +15 -14
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/integrations/featureFlagShims/launchDarkly.js.map +1 -1
- package/build/cjs/integrations/featureFlagShims/openFeature.js.map +1 -1
- package/build/cjs/integrations/featureFlagShims/statsig.js.map +1 -1
- package/build/cjs/integrations/featureFlagShims/unleash.js.map +1 -1
- package/build/cjs/integrations/fs/index.js.map +1 -1
- package/build/cjs/integrations/http.js.map +1 -1
- package/build/cjs/integrations/node-fetch.js +24 -0
- package/build/cjs/integrations/node-fetch.js.map +1 -0
- package/build/cjs/integrations/tracing/amqplib/index.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib/vendored/semconv.js +0 -6
- package/build/cjs/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib/vendored/utils.js +11 -10
- package/build/cjs/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/connect/index.js.map +1 -1
- package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js +2 -2
- package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/dataloader/index.js.map +1 -1
- package/build/cjs/integrations/tracing/express.js.map +1 -1
- package/build/cjs/integrations/tracing/fastify/index.js +7 -103
- package/build/cjs/integrations/tracing/fastify/index.js.map +1 -1
- package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js +4 -5
- package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/firebase/firebase.js.map +1 -1
- package/build/cjs/integrations/tracing/firebase/otel/patches/firestore.js +9 -9
- package/build/cjs/integrations/tracing/firebase/otel/patches/firestore.js.map +1 -1
- package/build/cjs/integrations/tracing/genericPool/index.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/index.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/index.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/vendored/utils.js +8 -9
- package/build/cjs/integrations/tracing/hapi/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/hono/index.js +7 -7
- package/build/cjs/integrations/tracing/hono/index.js.map +1 -1
- package/build/cjs/integrations/tracing/index.js +0 -1
- package/build/cjs/integrations/tracing/index.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/index.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js +2 -1
- package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/semconv.js +0 -12
- package/build/cjs/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/utils.js +12 -11
- package/build/cjs/integrations/tracing/kafka/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/knex/index.js.map +1 -1
- package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js +11 -10
- package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/knex/vendored/semconv.js +0 -16
- package/build/cjs/integrations/tracing/knex/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/index.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js +2 -2
- package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/utils.js +2 -2
- package/build/cjs/integrations/tracing/koa/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/lrumemoizer/index.js.map +1 -1
- package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js +4 -2
- package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/index.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/semconv.js +0 -12
- package/build/cjs/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/utils.js +12 -11
- package/build/cjs/integrations/tracing/mongo/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/index.js +3 -2
- package/build/cjs/integrations/tracing/mongoose/index.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js +11 -8
- package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js +0 -12
- package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/utils.js +9 -9
- package/build/cjs/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/index.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/vendored/instrumentation.js +36 -129
- package/build/cjs/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/vendored/semconv.js +0 -14
- package/build/cjs/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/vendored/utils.js +2 -27
- package/build/cjs/integrations/tracing/mysql/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/index.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js +7 -4
- package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/vendored/semconv.js +0 -12
- package/build/cjs/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/vendored/utils.js +7 -4
- package/build/cjs/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/postgres/index.js.map +1 -1
- package/build/cjs/integrations/tracing/postgres/vendored/semconv.js +0 -12
- package/build/cjs/integrations/tracing/postgres/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/postgres/vendored/utils.js +12 -11
- package/build/cjs/integrations/tracing/postgres/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/postgresjs.js +8 -7
- package/build/cjs/integrations/tracing/postgresjs.js.map +1 -1
- package/build/cjs/integrations/tracing/prisma/index.js +48 -62
- package/build/cjs/integrations/tracing/prisma/index.js.map +1 -1
- package/build/cjs/integrations/tracing/prisma/vendored/active-tracing-helper.js +83 -57
- package/build/cjs/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +1 -1
- package/build/cjs/integrations/tracing/prisma/vendored/constants.js.map +1 -1
- package/build/cjs/integrations/tracing/prisma/vendored/global.js +2 -2
- package/build/cjs/integrations/tracing/prisma/vendored/global.js.map +1 -1
- package/build/cjs/integrations/tracing/prisma/vendored/instrumentation.js +1 -6
- package/build/cjs/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/cache.js +41 -0
- package/build/cjs/integrations/tracing/redis/cache.js.map +1 -0
- package/build/cjs/integrations/tracing/redis/index.js +16 -38
- package/build/cjs/integrations/tracing/redis/index.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js +22 -13
- package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js +21 -15
- package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/vendored/semconv.js +0 -8
- package/build/cjs/integrations/tracing/redis/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious/index.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js +9 -8
- package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious/vendored/semconv.js +0 -12
- package/build/cjs/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/vercelai/constants.js.map +1 -1
- package/build/cjs/integrations/tracing/vercelai/index.js +2 -4
- package/build/cjs/integrations/tracing/vercelai/index.js.map +1 -1
- package/build/cjs/sdk/diagnosticsChannelInjection.js.map +1 -1
- package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js +18 -6
- package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -1
- package/build/cjs/sdk/index.js +2 -2
- package/build/cjs/sdk/index.js.map +1 -1
- package/build/cjs/sdk/initOtel.js +36 -0
- package/build/cjs/sdk/initOtel.js.map +1 -1
- package/build/esm/index.js +2 -2
- package/build/esm/integrations/featureFlagShims/launchDarkly.js.map +1 -1
- package/build/esm/integrations/featureFlagShims/openFeature.js.map +1 -1
- package/build/esm/integrations/featureFlagShims/statsig.js.map +1 -1
- package/build/esm/integrations/featureFlagShims/unleash.js.map +1 -1
- package/build/esm/integrations/fs/index.js.map +1 -1
- package/build/esm/integrations/http.js.map +1 -1
- package/build/esm/integrations/node-fetch.js +22 -0
- package/build/esm/integrations/node-fetch.js.map +1 -0
- package/build/esm/integrations/tracing/amqplib/index.js.map +1 -1
- package/build/esm/integrations/tracing/amqplib/vendored/semconv.js +1 -4
- package/build/esm/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/amqplib/vendored/utils.js +7 -6
- package/build/esm/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/connect/index.js.map +1 -1
- package/build/esm/integrations/tracing/connect/vendored/instrumentation.js +2 -2
- package/build/esm/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/dataloader/index.js.map +1 -1
- package/build/esm/integrations/tracing/express.js.map +1 -1
- package/build/esm/integrations/tracing/fastify/index.js +8 -103
- package/build/esm/integrations/tracing/fastify/index.js.map +1 -1
- package/build/esm/integrations/tracing/fastify/v3/instrumentation.js +5 -6
- package/build/esm/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/firebase/firebase.js.map +1 -1
- package/build/esm/integrations/tracing/firebase/otel/patches/firestore.js +7 -7
- package/build/esm/integrations/tracing/firebase/otel/patches/firestore.js.map +1 -1
- package/build/esm/integrations/tracing/genericPool/index.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/index.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/index.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/vendored/utils.js +3 -4
- package/build/esm/integrations/tracing/hapi/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/hono/index.js +3 -3
- package/build/esm/integrations/tracing/hono/index.js.map +1 -1
- package/build/esm/integrations/tracing/index.js +1 -2
- package/build/esm/integrations/tracing/index.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/index.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js +3 -2
- package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/semconv.js +1 -7
- package/build/esm/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/utils.js +11 -10
- package/build/esm/integrations/tracing/kafka/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/knex/index.js.map +1 -1
- package/build/esm/integrations/tracing/knex/vendored/instrumentation.js +10 -9
- package/build/esm/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/knex/vendored/semconv.js +1 -9
- package/build/esm/integrations/tracing/knex/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/koa/index.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/instrumentation.js +2 -2
- package/build/esm/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/utils.js +2 -2
- package/build/esm/integrations/tracing/koa/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/lrumemoizer/index.js.map +1 -1
- package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js +5 -3
- package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/index.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/semconv.js +1 -7
- package/build/esm/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/utils.js +9 -8
- package/build/esm/integrations/tracing/mongo/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/index.js +4 -3
- package/build/esm/integrations/tracing/mongoose/index.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js +9 -6
- package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/semconv.js +1 -7
- package/build/esm/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/utils.js +10 -10
- package/build/esm/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/index.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/vendored/instrumentation.js +38 -131
- package/build/esm/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/vendored/semconv.js +1 -8
- package/build/esm/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/vendored/utils.js +3 -25
- package/build/esm/integrations/tracing/mysql/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/index.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js +6 -3
- package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/vendored/semconv.js +1 -7
- package/build/esm/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/vendored/utils.js +8 -5
- package/build/esm/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/postgres/index.js.map +1 -1
- package/build/esm/integrations/tracing/postgres/vendored/semconv.js +1 -7
- package/build/esm/integrations/tracing/postgres/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/postgres/vendored/utils.js +13 -12
- package/build/esm/integrations/tracing/postgres/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/postgresjs.js +7 -6
- package/build/esm/integrations/tracing/postgresjs.js.map +1 -1
- package/build/esm/integrations/tracing/prisma/index.js +49 -63
- package/build/esm/integrations/tracing/prisma/index.js.map +1 -1
- package/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js +83 -57
- package/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +1 -1
- package/build/esm/integrations/tracing/prisma/vendored/constants.js.map +1 -1
- package/build/esm/integrations/tracing/prisma/vendored/global.js +2 -2
- package/build/esm/integrations/tracing/prisma/vendored/global.js.map +1 -1
- package/build/esm/integrations/tracing/prisma/vendored/instrumentation.js +1 -6
- package/build/esm/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/redis/cache.js +38 -0
- package/build/esm/integrations/tracing/redis/cache.js.map +1 -0
- package/build/esm/integrations/tracing/redis/index.js +12 -37
- package/build/esm/integrations/tracing/redis/index.js.map +1 -1
- package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js +19 -10
- package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js +16 -10
- package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/redis/vendored/semconv.js +1 -5
- package/build/esm/integrations/tracing/redis/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/tedious/index.js.map +1 -1
- package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js +8 -7
- package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/tedious/vendored/semconv.js +1 -7
- package/build/esm/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/vercelai/constants.js.map +1 -1
- package/build/esm/integrations/tracing/vercelai/index.js +3 -5
- package/build/esm/integrations/tracing/vercelai/index.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/sdk/diagnosticsChannelInjection.js.map +1 -1
- package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js +19 -8
- package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -1
- package/build/esm/sdk/index.js +1 -1
- package/build/esm/sdk/initOtel.js +38 -2
- package/build/esm/sdk/initOtel.js.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/integrations/featureFlagShims/launchDarkly.d.ts +3 -1
- package/build/types/integrations/featureFlagShims/launchDarkly.d.ts.map +1 -1
- package/build/types/integrations/featureFlagShims/openFeature.d.ts +3 -1
- package/build/types/integrations/featureFlagShims/openFeature.d.ts.map +1 -1
- package/build/types/integrations/featureFlagShims/statsig.d.ts +3 -1
- package/build/types/integrations/featureFlagShims/statsig.d.ts.map +1 -1
- package/build/types/integrations/featureFlagShims/unleash.d.ts +3 -1
- package/build/types/integrations/featureFlagShims/unleash.d.ts.map +1 -1
- package/build/types/integrations/fs/index.d.ts +3 -1
- package/build/types/integrations/fs/index.d.ts.map +1 -1
- package/build/types/integrations/http.d.ts +3 -1
- package/build/types/integrations/http.d.ts.map +1 -1
- package/build/types/integrations/node-fetch.d.ts +9 -0
- package/build/types/integrations/node-fetch.d.ts.map +1 -0
- package/build/types/integrations/tracing/amqplib/index.d.ts +3 -1
- package/build/types/integrations/tracing/amqplib/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/amqplib/vendored/semconv.d.ts +0 -6
- package/build/types/integrations/tracing/amqplib/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/anthropic-ai/index.d.ts +3 -1
- package/build/types/integrations/tracing/anthropic-ai/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/connect/index.d.ts +3 -1
- package/build/types/integrations/tracing/connect/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/dataloader/index.d.ts +3 -1
- package/build/types/integrations/tracing/dataloader/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/express.d.ts +3 -1
- package/build/types/integrations/tracing/express.d.ts.map +1 -1
- package/build/types/integrations/tracing/fastify/index.d.ts +6 -6
- package/build/types/integrations/tracing/fastify/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/fastify/v3/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/firebase/firebase.d.ts +3 -1
- package/build/types/integrations/tracing/firebase/firebase.d.ts.map +1 -1
- package/build/types/integrations/tracing/genericPool/index.d.ts +3 -1
- package/build/types/integrations/tracing/genericPool/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/google-genai/index.d.ts +3 -1
- package/build/types/integrations/tracing/google-genai/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/index.d.ts +3 -1
- package/build/types/integrations/tracing/graphql/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/index.d.ts +3 -1
- package/build/types/integrations/tracing/hapi/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/hono/index.d.ts +3 -1
- package/build/types/integrations/tracing/hono/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/index.d.ts +3 -1
- package/build/types/integrations/tracing/kafka/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts +5 -63
- package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/knex/index.d.ts +3 -1
- package/build/types/integrations/tracing/knex/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/knex/vendored/semconv.d.ts +0 -32
- package/build/types/integrations/tracing/knex/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/index.d.ts +3 -1
- package/build/types/integrations/tracing/koa/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/langchain/index.d.ts +3 -1
- package/build/types/integrations/tracing/langchain/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/langgraph/index.d.ts +3 -1
- package/build/types/integrations/tracing/langgraph/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/lrumemoizer/index.d.ts +3 -1
- package/build/types/integrations/tracing/lrumemoizer/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/index.d.ts +3 -1
- package/build/types/integrations/tracing/mongo/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts +1 -37
- package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/index.d.ts +3 -1
- package/build/types/integrations/tracing/mongoose/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -48
- package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/index.d.ts +3 -1
- package/build/types/integrations/tracing/mysql/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/instrumentation.d.ts +3 -17
- package/build/types/integrations/tracing/mysql/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/mysql-types.d.ts +16 -16
- package/build/types/integrations/tracing/mysql/vendored/mysql-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/semconv.d.ts +1 -70
- package/build/types/integrations/tracing/mysql/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/utils.d.ts +6 -9
- package/build/types/integrations/tracing/mysql/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/index.d.ts +3 -1
- package/build/types/integrations/tracing/mysql2/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/vendored/semconv.d.ts +0 -6
- package/build/types/integrations/tracing/mysql2/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/openai/index.d.ts +3 -1
- package/build/types/integrations/tracing/openai/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/index.d.ts +3 -1
- package/build/types/integrations/tracing/postgres/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts +1 -50
- package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgresjs.d.ts +3 -1
- package/build/types/integrations/tracing/postgresjs.d.ts.map +1 -1
- package/build/types/integrations/tracing/prisma/index.d.ts +5 -21
- package/build/types/integrations/tracing/prisma/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts +5 -7
- package/build/types/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts.map +1 -1
- package/build/types/integrations/tracing/prisma/vendored/constants.d.ts.map +1 -1
- package/build/types/integrations/tracing/prisma/vendored/global.d.ts.map +1 -1
- package/build/types/integrations/tracing/prisma/vendored/instrumentation.d.ts +2 -4
- package/build/types/integrations/tracing/prisma/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/prisma/vendored/types.d.ts +5 -23
- package/build/types/integrations/tracing/prisma/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/redis/cache.d.ts +22 -0
- package/build/types/integrations/tracing/redis/cache.d.ts.map +1 -0
- package/build/types/integrations/tracing/redis/index.d.ts +6 -22
- package/build/types/integrations/tracing/redis/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/redis/vendored/redis-instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/redis/vendored/semconv.d.ts +0 -4
- package/build/types/integrations/tracing/redis/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/tedious/index.d.ts +3 -1
- package/build/types/integrations/tracing/tedious/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/tedious/vendored/semconv.d.ts +1 -62
- package/build/types/integrations/tracing/tedious/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/vercelai/constants.d.ts +1 -1
- package/build/types/integrations/tracing/vercelai/constants.d.ts.map +1 -1
- package/build/types/integrations/tracing/vercelai/index.d.ts +3 -1
- package/build/types/integrations/tracing/vercelai/index.d.ts.map +1 -1
- package/build/types/sdk/diagnosticsChannelInjection.d.ts +1 -1
- package/build/types/sdk/diagnosticsChannelInjection.d.ts.map +1 -1
- package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +2 -0
- package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts.map +1 -1
- package/build/types/sdk/initOtel.d.ts +2 -3
- package/build/types/sdk/initOtel.d.ts.map +1 -1
- package/build/types-ts3.8/index.d.ts +1 -1
- package/build/types-ts3.8/integrations/featureFlagShims/launchDarkly.d.ts +3 -1
- package/build/types-ts3.8/integrations/featureFlagShims/openFeature.d.ts +3 -1
- package/build/types-ts3.8/integrations/featureFlagShims/statsig.d.ts +3 -1
- package/build/types-ts3.8/integrations/featureFlagShims/unleash.d.ts +3 -1
- package/build/types-ts3.8/integrations/fs/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/http.d.ts +3 -1
- package/build/types-ts3.8/integrations/node-fetch.d.ts +9 -0
- package/build/types-ts3.8/integrations/tracing/amqplib/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/amqplib/vendored/semconv.d.ts +0 -6
- package/build/types-ts3.8/integrations/tracing/anthropic-ai/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/connect/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/dataloader/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/express.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/fastify/index.d.ts +6 -6
- package/build/types-ts3.8/integrations/tracing/firebase/firebase.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/genericPool/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/google-genai/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/graphql/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/hapi/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/hono/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/kafka/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/semconv.d.ts +5 -63
- package/build/types-ts3.8/integrations/tracing/knex/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/knex/vendored/semconv.d.ts +0 -32
- package/build/types-ts3.8/integrations/tracing/koa/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/langchain/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/langgraph/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/lrumemoizer/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/mongo/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/semconv.d.ts +1 -37
- package/build/types-ts3.8/integrations/tracing/mongoose/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -48
- package/build/types-ts3.8/integrations/tracing/mysql/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/mysql/vendored/instrumentation.d.ts +3 -17
- package/build/types-ts3.8/integrations/tracing/mysql/vendored/mysql-types.d.ts +16 -16
- package/build/types-ts3.8/integrations/tracing/mysql/vendored/semconv.d.ts +1 -70
- package/build/types-ts3.8/integrations/tracing/mysql/vendored/utils.d.ts +6 -9
- package/build/types-ts3.8/integrations/tracing/mysql2/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/mysql2/vendored/semconv.d.ts +0 -6
- package/build/types-ts3.8/integrations/tracing/openai/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/postgres/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/postgres/vendored/semconv.d.ts +1 -50
- package/build/types-ts3.8/integrations/tracing/postgresjs.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/prisma/index.d.ts +5 -21
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts +5 -7
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/instrumentation.d.ts +2 -4
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/types.d.ts +5 -23
- package/build/types-ts3.8/integrations/tracing/redis/cache.d.ts +22 -0
- package/build/types-ts3.8/integrations/tracing/redis/index.d.ts +6 -22
- package/build/types-ts3.8/integrations/tracing/redis/vendored/semconv.d.ts +0 -4
- package/build/types-ts3.8/integrations/tracing/tedious/index.d.ts +3 -1
- package/build/types-ts3.8/integrations/tracing/tedious/vendored/semconv.d.ts +1 -62
- package/build/types-ts3.8/integrations/tracing/vercelai/constants.d.ts +1 -1
- package/build/types-ts3.8/integrations/tracing/vercelai/index.d.ts +3 -1
- package/build/types-ts3.8/sdk/diagnosticsChannelInjection.d.ts +1 -1
- package/build/types-ts3.8/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +2 -0
- package/build/types-ts3.8/sdk/initOtel.d.ts +3 -4
- package/package.json +8 -8
- package/build/cjs/integrations/node-fetch/index.js +0 -80
- package/build/cjs/integrations/node-fetch/index.js.map +0 -1
- package/build/cjs/integrations/node-fetch/vendored/semconv.js +0 -28
- package/build/cjs/integrations/node-fetch/vendored/semconv.js.map +0 -1
- package/build/cjs/integrations/node-fetch/vendored/undici.js +0 -302
- package/build/cjs/integrations/node-fetch/vendored/undici.js.map +0 -1
- package/build/cjs/integrations/tracing/fastify/vendored/instrumentation.js +0 -387
- package/build/cjs/integrations/tracing/fastify/vendored/instrumentation.js.map +0 -1
- package/build/cjs/integrations/tracing/hapi/vendored/semconv.js +0 -6
- package/build/cjs/integrations/tracing/hapi/vendored/semconv.js.map +0 -1
- package/build/cjs/integrations/tracing/mysql/vendored/AttributeNames.js +0 -9
- package/build/cjs/integrations/tracing/mysql/vendored/AttributeNames.js.map +0 -1
- package/build/cjs/integrations/tracing/redis/vendored/redis-common.js +0 -34
- package/build/cjs/integrations/tracing/redis/vendored/redis-common.js.map +0 -1
- package/build/esm/integrations/node-fetch/index.js +0 -77
- package/build/esm/integrations/node-fetch/index.js.map +0 -1
- package/build/esm/integrations/node-fetch/vendored/semconv.js +0 -15
- package/build/esm/integrations/node-fetch/vendored/semconv.js.map +0 -1
- package/build/esm/integrations/node-fetch/vendored/undici.js +0 -300
- package/build/esm/integrations/node-fetch/vendored/undici.js.map +0 -1
- package/build/esm/integrations/tracing/fastify/vendored/instrumentation.js +0 -385
- package/build/esm/integrations/tracing/fastify/vendored/instrumentation.js.map +0 -1
- package/build/esm/integrations/tracing/hapi/vendored/semconv.js +0 -4
- package/build/esm/integrations/tracing/hapi/vendored/semconv.js.map +0 -1
- package/build/esm/integrations/tracing/mysql/vendored/AttributeNames.js +0 -7
- package/build/esm/integrations/tracing/mysql/vendored/AttributeNames.js.map +0 -1
- package/build/esm/integrations/tracing/redis/vendored/redis-common.js +0 -32
- package/build/esm/integrations/tracing/redis/vendored/redis-common.js.map +0 -1
- package/build/types/integrations/node-fetch/index.d.ts +0 -36
- package/build/types/integrations/node-fetch/index.d.ts.map +0 -1
- package/build/types/integrations/node-fetch/vendored/internal-types.d.ts +0 -25
- package/build/types/integrations/node-fetch/vendored/internal-types.d.ts.map +0 -1
- package/build/types/integrations/node-fetch/vendored/semconv.d.ts +0 -13
- package/build/types/integrations/node-fetch/vendored/semconv.d.ts.map +0 -1
- package/build/types/integrations/node-fetch/vendored/types.d.ts +0 -60
- package/build/types/integrations/node-fetch/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/node-fetch/vendored/undici.d.ts +0 -21
- package/build/types/integrations/node-fetch/vendored/undici.d.ts.map +0 -1
- package/build/types/integrations/tracing/fastify/vendored/instrumentation.d.ts +0 -27
- package/build/types/integrations/tracing/fastify/vendored/instrumentation.d.ts.map +0 -1
- package/build/types/integrations/tracing/hapi/vendored/semconv.d.ts +0 -13
- package/build/types/integrations/tracing/hapi/vendored/semconv.d.ts.map +0 -1
- package/build/types/integrations/tracing/mysql/vendored/AttributeNames.d.ts +0 -4
- package/build/types/integrations/tracing/mysql/vendored/AttributeNames.d.ts.map +0 -1
- package/build/types/integrations/tracing/mysql/vendored/types.d.ts +0 -9
- package/build/types/integrations/tracing/mysql/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/redis/vendored/redis-common.d.ts +0 -6
- package/build/types/integrations/tracing/redis/vendored/redis-common.d.ts.map +0 -1
- package/build/types-ts3.8/integrations/node-fetch/index.d.ts +0 -36
- package/build/types-ts3.8/integrations/node-fetch/vendored/internal-types.d.ts +0 -25
- package/build/types-ts3.8/integrations/node-fetch/vendored/semconv.d.ts +0 -13
- package/build/types-ts3.8/integrations/node-fetch/vendored/types.d.ts +0 -60
- package/build/types-ts3.8/integrations/node-fetch/vendored/undici.d.ts +0 -21
- package/build/types-ts3.8/integrations/tracing/fastify/vendored/instrumentation.d.ts +0 -27
- package/build/types-ts3.8/integrations/tracing/hapi/vendored/semconv.d.ts +0 -13
- package/build/types-ts3.8/integrations/tracing/mysql/vendored/AttributeNames.d.ts +0 -4
- package/build/types-ts3.8/integrations/tracing/mysql/vendored/types.d.ts +0 -9
- package/build/types-ts3.8/integrations/tracing/redis/vendored/redis-common.d.ts +0 -6
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"undici.js","sources":["../../../../../src/integrations/node-fetch/vendored/undici.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/ed97091c9890dd18e52759f2ea98e9d7593b3ae4/packages/instrumentation-undici\n * - Upstream version: @opentelemetry/instrumentation-undici@0.24.0\n * - Tracking issue: https://github.com/getsentry/sentry-javascript/issues/20165\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n * - Dropped the OTel metrics (no MeterProvider is wired up) and the dead\n * `requireParentforSpans` code path (the SDK always passes `false`)\n * - Dropped the `@opentelemetry/instrumentation` base (undici reports via `diagnostics_channel`,\n * so no module patching was needed) — now a plain class wired up directly by the integration\n */\n\nimport * as diagch from 'diagnostics_channel';\nimport { URL } from 'url';\n\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n debug,\n getClient,\n getTraceData,\n LRUMap,\n shouldPropagateTraceForUrl,\n SPAN_KIND,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n withActiveSpan,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../debug-build';\nimport {\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_HTTP_REQUEST_METHOD_ORIGINAL,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_NETWORK_PEER_ADDRESS,\n ATTR_NETWORK_PEER_PORT,\n ATTR_SERVER_ADDRESS,\n ATTR_SERVER_PORT,\n ATTR_URL_FULL,\n ATTR_URL_PATH,\n ATTR_URL_QUERY,\n ATTR_URL_SCHEME,\n ATTR_USER_AGENT_ORIGINAL,\n} from './semconv';\n\nimport type {\n ListenerRecord,\n RequestErrorMessage,\n RequestHeadersMessage,\n RequestMessage,\n RequestTrailersMessage,\n ResponseHeadersMessage,\n} from './internal-types';\nimport type { UndiciInstrumentationConfig, UndiciRequest } from './types';\n\n/** Replaces OTel's `safeExecuteInTheMiddle`: run `fn`, route any error to `onError`, and swallow it. */\nfunction safeExecute<T>(fn: () => T, onError: (error: unknown) => void): T | undefined {\n try {\n return fn();\n } catch (error) {\n onError(error);\n return undefined;\n }\n}\n\n// A combination of https://github.com/elastic/apm-agent-nodejs and\n// https://github.com/gadget-inc/opentelemetry-instrumentations/blob/main/packages/opentelemetry-instrumentation-undici/src/index.ts\n//\n// Not an OTel `InstrumentationBase` (undici reports via `diagnostics_channel`, not module patching);\n// the integration wires this up directly via `enable()` / `disable()`.\nexport class UndiciInstrumentation {\n // Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for unsubscribing.\n private _channelSubs: Array<ListenerRecord> = [];\n private _spanFromReq = new WeakMap<UndiciRequest, Span>();\n // Caches trace-propagation decisions per URL so we don't recompute the `tracePropagationTargets` regexes per request.\n private _propagationDecisionMap = new LRUMap<string, boolean>(100);\n private _config: UndiciInstrumentationConfig;\n\n constructor(config: UndiciInstrumentationConfig = {}) {\n this._config = config;\n }\n\n public disable(): void {\n this._channelSubs.forEach(sub => sub.unsubscribe());\n this._channelSubs.length = 0;\n }\n\n /** Subscribe to the undici diagnostics channels (idempotent). */\n public enable(): void {\n // Avoid duplicate subscriptions\n if (this._channelSubs.length > 0) {\n return;\n }\n\n this.subscribeToChannel('undici:request:create', this.onRequestCreated.bind(this));\n this.subscribeToChannel('undici:client:sendHeaders', this.onRequestHeaders.bind(this));\n this.subscribeToChannel('undici:request:headers', this.onResponseHeaders.bind(this));\n this.subscribeToChannel('undici:request:trailers', this.onDone.bind(this));\n this.subscribeToChannel('undici:request:error', this.onError.bind(this));\n }\n\n private subscribeToChannel(\n diagnosticChannel: string,\n onMessage: (message: any, name: string | symbol) => void,\n ): void {\n // `diagnostics_channel` had a ref counting bug until v18.19.0.\n // https://github.com/nodejs/node/pull/47520\n const [major = 0, minor = 0] = process.version\n .replace('v', '')\n .split('.')\n .map(n => Number(n));\n const useNewSubscribe = major > 18 || (major === 18 && minor >= 19);\n\n let unsubscribe: () => void;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n } else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe,\n });\n }\n\n private parseRequestHeaders(request: UndiciRequest): Map<string, string | string[]> {\n const result = new Map<string, string | string[]>();\n\n if (Array.isArray(request.headers)) {\n // headers are an array [k1, v2, k2, v2] (undici v6+)\n // values could be string or a string[] for multiple values\n for (let i = 0; i < request.headers.length; i += 2) {\n const key = request.headers[i];\n const value = request.headers[i + 1];\n\n // Key should always be a string, but the types don't know that, and let's be safe\n if (typeof key === 'string' && value !== undefined) {\n result.set(key.toLowerCase(), value);\n }\n }\n } else if (typeof request.headers === 'string') {\n // headers are a raw string (undici v5)\n // headers could be repeated in several lines for multiple values\n const headers = request.headers.split('\\r\\n');\n for (const line of headers) {\n if (!line) {\n continue;\n }\n const colonIndex = line.indexOf(':');\n if (colonIndex === -1) {\n // Invalid header? Probably this can't happen, but again let's be safe.\n continue;\n }\n const key = line.substring(0, colonIndex).toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n const allValues = result.get(key);\n\n if (allValues && Array.isArray(allValues)) {\n allValues.push(value);\n } else if (allValues) {\n result.set(key, [allValues, value]);\n } else {\n result.set(key, value);\n }\n }\n }\n return result;\n }\n\n // This is the 1st message we receive for each request (fired after request creation). Here we will\n // create the span and populate some atttributes, then link the span to the request for further\n // span processing\n private onRequestCreated({ request }: RequestMessage): void {\n // Ignore if:\n // - instrumentation is disabled\n // - ignored by config\n // - method is 'CONNECT'\n const config = this._config;\n const enabled = config.enabled !== false;\n const shouldIgnoreReq = safeExecute(\n () => !enabled || request.method === 'CONNECT' || config.ignoreRequestHook?.(request),\n e => e && DEBUG_BUILD && debug.error('caught ignoreRequestHook error: ', e),\n );\n\n if (shouldIgnoreReq) {\n return;\n }\n\n let requestUrl;\n try {\n requestUrl = new URL(request.path, request.origin);\n } catch (err) {\n DEBUG_BUILD && debug.warn('could not determine url.full:', err);\n // Skip instrumenting this request.\n return;\n }\n const urlScheme = requestUrl.protocol.replace(':', '');\n const requestMethod = this.getRequestMethod(request.method);\n const attributes: SpanAttributes = {\n [ATTR_HTTP_REQUEST_METHOD]: requestMethod,\n [ATTR_HTTP_REQUEST_METHOD_ORIGINAL]: request.method,\n [ATTR_URL_FULL]: requestUrl.toString(),\n [ATTR_URL_PATH]: requestUrl.pathname,\n [ATTR_URL_QUERY]: requestUrl.search,\n [ATTR_URL_SCHEME]: urlScheme,\n };\n\n const schemePorts: Record<string, string> = { https: '443', http: '80' };\n const serverAddress = requestUrl.hostname;\n const serverPort = requestUrl.port || schemePorts[urlScheme];\n\n attributes[ATTR_SERVER_ADDRESS] = serverAddress;\n if (serverPort && !isNaN(Number(serverPort))) {\n attributes[ATTR_SERVER_PORT] = Number(serverPort);\n }\n\n // Get user agent from headers\n const headersMap = this.parseRequestHeaders(request);\n const userAgentValues = headersMap.get('user-agent');\n\n if (userAgentValues) {\n // NOTE: having multiple user agents is not expected so\n // we're going to take last one like `curl` does\n // ref: https://curl.se/docs/manpage.html#-A\n const userAgent = Array.isArray(userAgentValues) ? userAgentValues[userAgentValues.length - 1] : userAgentValues;\n attributes[ATTR_USER_AGENT_ORIGINAL] = userAgent;\n }\n\n // Get attributes from the hook if present\n const hookAttributes = safeExecute(\n () => config.startSpanHook?.(request),\n e => e && DEBUG_BUILD && debug.error('caught startSpanHook error: ', e),\n );\n if (hookAttributes) {\n Object.entries(hookAttributes).forEach(([key, val]) => {\n attributes[key] = val;\n });\n }\n\n const span = startInactiveSpan({\n name: requestMethod === '_OTHER' ? 'HTTP' : requestMethod,\n kind: SPAN_KIND.CLIENT,\n attributes,\n });\n\n // Execute the request hook if defined\n safeExecute(\n () => config.requestHook?.(span, request),\n e => e && DEBUG_BUILD && debug.error('caught requestHook error: ', e),\n );\n\n // Context propagation goes last so no hook can tamper the propagation headers.\n // We propagate the trace data of the freshly created client span (not the active parent span)\n // so downstream services are parented to the http.client span, matching the upstream behavior.\n this.injectTracePropagationHeaders(span, request, requestUrl.toString());\n\n this._spanFromReq.set(request, span);\n }\n\n // This is the 2nd message we receive for each request. It is fired when connection with\n // the remote is established and about to send the first byte. Here we do have info about the\n // remote address and port so we can populate some `network.*` attributes into the span\n private onRequestHeaders({ request, socket }: RequestHeadersMessage): void {\n const span = this._spanFromReq.get(request);\n\n if (!span) {\n return;\n }\n\n const config = this._config;\n const { remoteAddress, remotePort } = socket;\n const spanAttributes: SpanAttributes = {\n [ATTR_NETWORK_PEER_ADDRESS]: remoteAddress,\n [ATTR_NETWORK_PEER_PORT]: remotePort,\n };\n\n // After hooks have been processed (which may modify request headers)\n // we can collect the headers based on the configuration\n if (config.headersToSpanAttributes?.requestHeaders) {\n const headersToAttribs = new Set(config.headersToSpanAttributes.requestHeaders.map(n => n.toLowerCase()));\n const headersMap = this.parseRequestHeaders(request);\n\n for (const [name, value] of headersMap.entries()) {\n if (headersToAttribs.has(name)) {\n const attrValue = Array.isArray(value) ? value : [value];\n spanAttributes[`http.request.header.${name}`] = attrValue;\n }\n }\n }\n\n span.setAttributes(spanAttributes);\n }\n\n // This is the 3rd message we get for each request and it's fired when the server\n // headers are received, body may not be accessible yet.\n // From the response headers we can set the status and content length\n private onResponseHeaders({ request, response }: ResponseHeadersMessage): void {\n const span = this._spanFromReq.get(request);\n\n if (!span) {\n return;\n }\n\n const spanAttributes: SpanAttributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: response.statusCode,\n };\n\n const config = this._config;\n\n // Execute the response hook if defined\n safeExecute(\n () => config.responseHook?.(span, { request, response }),\n e => e && DEBUG_BUILD && debug.error('caught responseHook error: ', e),\n );\n\n if (config.headersToSpanAttributes?.responseHeaders) {\n const headersToAttribs = new Set<string>();\n config.headersToSpanAttributes?.responseHeaders.forEach(name => headersToAttribs.add(name.toLowerCase()));\n\n for (let idx = 0; idx < response.headers.length; idx = idx + 2) {\n const nameBuf = response.headers[idx];\n const valueBuf = response.headers[idx + 1];\n if (nameBuf === undefined || valueBuf === undefined) {\n continue;\n }\n const name = nameBuf.toString().toLowerCase();\n const value = valueBuf;\n\n if (headersToAttribs.has(name)) {\n const attrName = `http.response.header.${name}`;\n if (!Object.prototype.hasOwnProperty.call(spanAttributes, attrName)) {\n spanAttributes[attrName] = [value.toString()];\n } else {\n (spanAttributes[attrName] as string[]).push(value.toString());\n }\n }\n }\n }\n\n span.setAttributes(spanAttributes);\n\n // The Sentry pipeline infers `ok` / `not_found` / etc. from `http.response.status_code` when the\n // status is left unset, so we only need to flag erroneous responses explicitly.\n if (response.statusCode >= 400) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n }\n }\n\n // This is the last event we receive if the request went without any errors\n private onDone({ request }: RequestTrailersMessage): void {\n const span = this._spanFromReq.get(request);\n\n if (!span) {\n return;\n }\n\n span.end();\n this._spanFromReq.delete(request);\n }\n\n // This is the event we get when something is wrong in the request like\n // - invalid options when calling `fetch` global API or any undici method for request\n // - connectivity errors such as unreachable host\n // - requests aborted through an `AbortController.signal`\n // NOTE: server errors are considered valid responses and it's the lib consumer\n // who should deal with that.\n private onError({ request, error }: RequestErrorMessage): void {\n const span = this._spanFromReq.get(request);\n\n if (!span) {\n return;\n }\n\n // NOTE: in `undici@6.3.0` when request aborted the error type changes from\n // a custom error (`RequestAbortedError`) to a built-in `DOMException` carrying\n // some differences:\n // - `code` is from DOMEXception (ABORT_ERR: 20)\n // - `message` changes\n // - stacktrace is smaller and contains node internal frames\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: error.message,\n });\n span.end();\n this._spanFromReq.delete(request);\n }\n\n // Propagate the trace data of the given (client) span into the outgoing request headers, gated by\n // `tracePropagationTargets`. Mirrors what `propagation.inject()` did with the SentryPropagator, but\n // via Sentry's `getTraceData()` so we stay off OpenTelemetry's propagation API.\n private injectTracePropagationHeaders(span: Span, request: UndiciRequest, url: string): void {\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() ?? {};\n\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, this._propagationDecisionMap)) {\n return;\n }\n\n // We make the freshly created client span active so the propagated headers reference it (and not\n // the parent span). Passing `{ span }` to `getTraceData()` is not enough: for an inactive span it\n // resolves to the span's *captured* scope, whose active span is still the parent.\n const addedHeaders = withActiveSpan(span, () => getTraceData({ propagateTraceparent }));\n\n const headerEntries = Object.entries(addedHeaders);\n\n for (let i = 0; i < headerEntries.length; i++) {\n const pair = headerEntries[i];\n if (!pair) {\n continue;\n }\n const [k, v] = pair;\n if (!v) {\n continue;\n }\n\n if (typeof request.addHeader === 'function') {\n request.addHeader(k, v);\n } else if (typeof request.headers === 'string') {\n request.headers += `${k}: ${v}\\r\\n`;\n } else if (Array.isArray(request.headers)) {\n // undici@6.11.0 accidentally, briefly removed `request.addHeader()`.\n request.headers.push(k, v);\n }\n }\n }\n\n private getRequestMethod(original: string): string {\n const knownMethods = {\n CONNECT: true,\n OPTIONS: true,\n HEAD: true,\n GET: true,\n POST: true,\n PUT: true,\n PATCH: true,\n DELETE: true,\n TRACE: true,\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n QUERY: true,\n };\n\n if (original.toUpperCase() in knownMethods) {\n return original.toUpperCase();\n }\n\n return '_OTHER';\n }\n}\n"],"names":["LRUMap","DEBUG_BUILD","debug","URL","ATTR_HTTP_REQUEST_METHOD","ATTR_HTTP_REQUEST_METHOD_ORIGINAL","ATTR_URL_FULL","ATTR_URL_PATH","ATTR_URL_QUERY","ATTR_URL_SCHEME","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","ATTR_USER_AGENT_ORIGINAL","startInactiveSpan","SPAN_KIND","ATTR_NETWORK_PEER_ADDRESS","ATTR_NETWORK_PEER_PORT","ATTR_HTTP_RESPONSE_STATUS_CODE","SPAN_STATUS_ERROR","getClient","shouldPropagateTraceForUrl","withActiveSpan","getTraceData"],"mappings":";;;;;;;;AAyDA,SAAS,WAAA,CAAe,IAAa,OAAA,EAAkD;AACrF,EAAA,IAAI;AACF,IAAA,OAAO,EAAA,EAAG;AAAA,EACZ,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAOO,MAAM,qBAAA,CAAsB;AAAA,EAQjC,WAAA,CAAY,MAAA,GAAsC,EAAC,EAAG;AANtD;AAAA,IAAA,IAAA,CAAQ,eAAsC,EAAC;AAC/C,IAAA,IAAA,CAAQ,YAAA,uBAAmB,OAAA,EAA6B;AAExD;AAAA,IAAA,IAAA,CAAQ,uBAAA,GAA0B,IAAIA,WAAA,CAAwB,GAAG,CAAA;AAI/D,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AAAA,EACjB;AAAA,EAEO,OAAA,GAAgB;AACrB,IAAA,IAAA,CAAK,YAAA,CAAa,OAAA,CAAQ,CAAA,GAAA,KAAO,GAAA,CAAI,aAAa,CAAA;AAClD,IAAA,IAAA,CAAK,aAAa,MAAA,GAAS,CAAA;AAAA,EAC7B;AAAA;AAAA,EAGO,MAAA,GAAe;AAEpB,IAAA,IAAI,IAAA,CAAK,YAAA,CAAa,MAAA,GAAS,CAAA,EAAG;AAChC,MAAA;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,mBAAmB,uBAAA,EAAyB,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAC,CAAA;AACjF,IAAA,IAAA,CAAK,mBAAmB,2BAAA,EAA6B,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAC,CAAA;AACrF,IAAA,IAAA,CAAK,mBAAmB,wBAAA,EAA0B,IAAA,CAAK,iBAAA,CAAkB,IAAA,CAAK,IAAI,CAAC,CAAA;AACnF,IAAA,IAAA,CAAK,mBAAmB,yBAAA,EAA2B,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,IAAI,CAAC,CAAA;AACzE,IAAA,IAAA,CAAK,mBAAmB,sBAAA,EAAwB,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,EACzE;AAAA,EAEQ,kBAAA,CACN,mBACA,SAAA,EACM;AAGN,IAAA,MAAM,CAAC,KAAA,GAAQ,CAAA,EAAG,QAAQ,CAAC,CAAA,GAAI,QAAQ,OAAA,CACpC,OAAA,CAAQ,KAAK,EAAE,CAAA,CACf,MAAM,GAAG,CAAA,CACT,IAAI,CAAA,CAAA,KAAK,MAAA,CAAO,CAAC,CAAC,CAAA;AACrB,IAAA,MAAM,eAAA,GAAkB,KAAA,GAAQ,EAAA,IAAO,KAAA,KAAU,MAAM,KAAA,IAAS,EAAA;AAEhE,IAAA,IAAI,WAAA;AACJ,IAAA,IAAI,eAAA,EAAiB;AACnB,MAAA,MAAA,CAAO,SAAA,GAAY,mBAAmB,SAAS,CAAA;AAC/C,MAAA,WAAA,GAAc,MAAM,MAAA,CAAO,WAAA,GAAc,iBAAA,EAAmB,SAAS,CAAA;AAAA,IACvE,CAAA,MAAO;AACL,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,iBAAiB,CAAA;AAChD,MAAA,OAAA,CAAQ,UAAU,SAAS,CAAA;AAC3B,MAAA,WAAA,GAAc,MAAM,OAAA,CAAQ,WAAA,CAAY,SAAS,CAAA;AAAA,IACnD;AAEA,IAAA,IAAA,CAAK,aAAa,IAAA,CAAK;AAAA,MACrB,IAAA,EAAM,iBAAA;AAAA,MACN;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEQ,oBAAoB,OAAA,EAAwD;AAClF,IAAA,MAAM,MAAA,uBAAa,GAAA,EAA+B;AAElD,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA,EAAG;AAGlC,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,QAAQ,OAAA,CAAQ,MAAA,EAAQ,KAAK,CAAA,EAAG;AAClD,QAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA;AAC7B,QAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,OAAA,CAAQ,CAAA,GAAI,CAAC,CAAA;AAGnC,QAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,KAAA,KAAU,MAAA,EAAW;AAClD,UAAA,MAAA,CAAO,GAAA,CAAI,GAAA,CAAI,WAAA,EAAY,EAAG,KAAK,CAAA;AAAA,QACrC;AAAA,MACF;AAAA,IACF,CAAA,MAAA,IAAW,OAAO,OAAA,CAAQ,OAAA,KAAY,QAAA,EAAU;AAG9C,MAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,KAAA,CAAM,MAAM,CAAA;AAC5C,MAAA,KAAA,MAAW,QAAQ,OAAA,EAAS;AAC1B,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA;AAAA,QACF;AACA,QAAA,MAAM,UAAA,GAAa,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACnC,QAAA,IAAI,eAAe,EAAA,EAAI;AAErB,UAAA;AAAA,QACF;AACA,QAAA,MAAM,MAAM,IAAA,CAAK,SAAA,CAAU,CAAA,EAAG,UAAU,EAAE,WAAA,EAAY;AACtD,QAAA,MAAM,QAAQ,IAAA,CAAK,SAAA,CAAU,UAAA,GAAa,CAAC,EAAE,IAAA,EAAK;AAClD,QAAA,MAAM,SAAA,GAAY,MAAA,CAAO,GAAA,CAAI,GAAG,CAAA;AAEhC,QAAA,IAAI,SAAA,IAAa,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AACzC,UAAA,SAAA,CAAU,KAAK,KAAK,CAAA;AAAA,QACtB,WAAW,SAAA,EAAW;AACpB,UAAA,MAAA,CAAO,GAAA,CAAI,GAAA,EAAK,CAAC,SAAA,EAAW,KAAK,CAAC,CAAA;AAAA,QACpC,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,GAAA,CAAI,KAAK,KAAK,CAAA;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,gBAAA,CAAiB,EAAE,OAAA,EAAQ,EAAyB;AAK1D,IAAA,MAAM,SAAS,IAAA,CAAK,OAAA;AACpB,IAAA,MAAM,OAAA,GAAU,OAAO,OAAA,KAAY,KAAA;AACnC,IAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,MACtB,MAAM,CAAC,OAAA,IAAW,OAAA,CAAQ,WAAW,SAAA,IAAa,MAAA,CAAO,oBAAoB,OAAO,CAAA;AAAA,MACpF,OAAK,CAAA,IAAKC,sBAAA,IAAeC,UAAA,CAAM,KAAA,CAAM,oCAAoC,CAAC;AAAA,KAC5E;AAEA,IAAA,IAAI,eAAA,EAAiB;AACnB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,UAAA;AACJ,IAAA,IAAI;AACF,MAAA,UAAA,GAAa,IAAIC,OAAA,CAAI,OAAA,CAAQ,IAAA,EAAM,QAAQ,MAAM,CAAA;AAAA,IACnD,SAAS,GAAA,EAAK;AACZ,MAAAF,sBAAA,IAAeC,UAAA,CAAM,IAAA,CAAK,+BAAA,EAAiC,GAAG,CAAA;AAE9D,MAAA;AAAA,IACF;AACA,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,QAAA,CAAS,OAAA,CAAQ,KAAK,EAAE,CAAA;AACrD,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAC1D,IAAA,MAAM,UAAA,GAA6B;AAAA,MACjC,CAACE,gCAAwB,GAAG,aAAA;AAAA,MAC5B,CAACC,yCAAiC,GAAG,OAAA,CAAQ,MAAA;AAAA,MAC7C,CAACC,qBAAa,GAAG,UAAA,CAAW,QAAA,EAAS;AAAA,MACrC,CAACC,qBAAa,GAAG,UAAA,CAAW,QAAA;AAAA,MAC5B,CAACC,sBAAc,GAAG,UAAA,CAAW,MAAA;AAAA,MAC7B,CAACC,uBAAe,GAAG;AAAA,KACrB;AAEA,IAAA,MAAM,WAAA,GAAsC,EAAE,KAAA,EAAO,KAAA,EAAO,MAAM,IAAA,EAAK;AACvE,IAAA,MAAM,gBAAgB,UAAA,CAAW,QAAA;AACjC,IAAA,MAAM,UAAA,GAAa,UAAA,CAAW,IAAA,IAAQ,WAAA,CAAY,SAAS,CAAA;AAE3D,IAAA,UAAA,CAAWC,2BAAmB,CAAA,GAAI,aAAA;AAClC,IAAA,IAAI,cAAc,CAAC,KAAA,CAAM,MAAA,CAAO,UAAU,CAAC,CAAA,EAAG;AAC5C,MAAA,UAAA,CAAWC,wBAAgB,CAAA,GAAI,MAAA,CAAO,UAAU,CAAA;AAAA,IAClD;AAGA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,mBAAA,CAAoB,OAAO,CAAA;AACnD,IAAA,MAAM,eAAA,GAAkB,UAAA,CAAW,GAAA,CAAI,YAAY,CAAA;AAEnD,IAAA,IAAI,eAAA,EAAiB;AAInB,MAAA,MAAM,SAAA,GAAY,MAAM,OAAA,CAAQ,eAAe,IAAI,eAAA,CAAgB,eAAA,CAAgB,MAAA,GAAS,CAAC,CAAA,GAAI,eAAA;AACjG,MAAA,UAAA,CAAWC,gCAAwB,CAAA,GAAI,SAAA;AAAA,IACzC;AAGA,IAAA,MAAM,cAAA,GAAiB,WAAA;AAAA,MACrB,MAAM,MAAA,CAAO,aAAA,GAAgB,OAAO,CAAA;AAAA,MACpC,OAAK,CAAA,IAAKX,sBAAA,IAAeC,UAAA,CAAM,KAAA,CAAM,gCAAgC,CAAC;AAAA,KACxE;AACA,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,MAAA,CAAO,OAAA,CAAQ,cAAc,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,GAAG,CAAA,KAAM;AACrD,QAAA,UAAA,CAAW,GAAG,CAAA,GAAI,GAAA;AAAA,MACpB,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,OAAOW,sBAAA,CAAkB;AAAA,MAC7B,IAAA,EAAM,aAAA,KAAkB,QAAA,GAAW,MAAA,GAAS,aAAA;AAAA,MAC5C,MAAMC,cAAA,CAAU,MAAA;AAAA,MAChB;AAAA,KACD,CAAA;AAGD,IAAA,WAAA;AAAA,MACE,MAAM,MAAA,CAAO,WAAA,GAAc,IAAA,EAAM,OAAO,CAAA;AAAA,MACxC,OAAK,CAAA,IAAKb,sBAAA,IAAeC,UAAA,CAAM,KAAA,CAAM,8BAA8B,CAAC;AAAA,KACtE;AAKA,IAAA,IAAA,CAAK,6BAAA,CAA8B,IAAA,EAAM,OAAA,EAAS,UAAA,CAAW,UAAU,CAAA;AAEvE,IAAA,IAAA,CAAK,YAAA,CAAa,GAAA,CAAI,OAAA,EAAS,IAAI,CAAA;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKQ,gBAAA,CAAiB,EAAE,OAAA,EAAS,MAAA,EAAO,EAAgC;AACzE,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,YAAA,CAAa,GAAA,CAAI,OAAO,CAAA;AAE1C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,SAAS,IAAA,CAAK,OAAA;AACpB,IAAA,MAAM,EAAE,aAAA,EAAe,UAAA,EAAW,GAAI,MAAA;AACtC,IAAA,MAAM,cAAA,GAAiC;AAAA,MACrC,CAACa,iCAAyB,GAAG,aAAA;AAAA,MAC7B,CAACC,8BAAsB,GAAG;AAAA,KAC5B;AAIA,IAAA,IAAI,MAAA,CAAO,yBAAyB,cAAA,EAAgB;AAClD,MAAA,MAAM,gBAAA,GAAmB,IAAI,GAAA,CAAI,MAAA,CAAO,uBAAA,CAAwB,cAAA,CAAe,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,WAAA,EAAa,CAAC,CAAA;AACxG,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,mBAAA,CAAoB,OAAO,CAAA;AAEnD,MAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK,UAAA,CAAW,SAAQ,EAAG;AAChD,QAAA,IAAI,gBAAA,CAAiB,GAAA,CAAI,IAAI,CAAA,EAAG;AAC9B,UAAA,MAAM,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AACvD,UAAA,cAAA,CAAe,CAAA,oBAAA,EAAuB,IAAI,CAAA,CAAE,CAAA,GAAI,SAAA;AAAA,QAClD;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,cAAc,cAAc,CAAA;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAA,CAAkB,EAAE,OAAA,EAAS,QAAA,EAAS,EAAiC;AAC7E,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,YAAA,CAAa,GAAA,CAAI,OAAO,CAAA;AAE1C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,cAAA,GAAiC;AAAA,MACrC,CAACC,sCAA8B,GAAG,QAAA,CAAS;AAAA,KAC7C;AAEA,IAAA,MAAM,SAAS,IAAA,CAAK,OAAA;AAGpB,IAAA,WAAA;AAAA,MACE,MAAM,MAAA,CAAO,YAAA,GAAe,MAAM,EAAE,OAAA,EAAS,UAAU,CAAA;AAAA,MACvD,OAAK,CAAA,IAAKhB,sBAAA,IAAeC,UAAA,CAAM,KAAA,CAAM,+BAA+B,CAAC;AAAA,KACvE;AAEA,IAAA,IAAI,MAAA,CAAO,yBAAyB,eAAA,EAAiB;AACnD,MAAA,MAAM,gBAAA,uBAAuB,GAAA,EAAY;AACzC,MAAA,MAAA,CAAO,uBAAA,EAAyB,gBAAgB,OAAA,CAAQ,CAAA,IAAA,KAAQ,iBAAiB,GAAA,CAAI,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA;AAExG,MAAA,KAAA,IAAS,GAAA,GAAM,GAAG,GAAA,GAAM,QAAA,CAAS,QAAQ,MAAA,EAAQ,GAAA,GAAM,MAAM,CAAA,EAAG;AAC9D,QAAA,MAAM,OAAA,GAAU,QAAA,CAAS,OAAA,CAAQ,GAAG,CAAA;AACpC,QAAA,MAAM,QAAA,GAAW,QAAA,CAAS,OAAA,CAAQ,GAAA,GAAM,CAAC,CAAA;AACzC,QAAA,IAAI,OAAA,KAAY,MAAA,IAAa,QAAA,KAAa,MAAA,EAAW;AACnD,UAAA;AAAA,QACF;AACA,QAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,QAAA,EAAS,CAAE,WAAA,EAAY;AAC5C,QAAA,MAAM,KAAA,GAAQ,QAAA;AAEd,QAAA,IAAI,gBAAA,CAAiB,GAAA,CAAI,IAAI,CAAA,EAAG;AAC9B,UAAA,MAAM,QAAA,GAAW,wBAAwB,IAAI,CAAA,CAAA;AAC7C,UAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,eAAe,IAAA,CAAK,cAAA,EAAgB,QAAQ,CAAA,EAAG;AACnE,YAAA,cAAA,CAAe,QAAQ,CAAA,GAAI,CAAC,KAAA,CAAM,UAAU,CAAA;AAAA,UAC9C,CAAA,MAAO;AACL,YAAC,eAAe,QAAQ,CAAA,CAAe,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAAA,UAC9D;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,cAAc,cAAc,CAAA;AAIjC,IAAA,IAAI,QAAA,CAAS,cAAc,GAAA,EAAK;AAC9B,MAAA,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAMgB,sBAAA,EAAmB,CAAA;AAAA,IAC5C;AAAA,EACF;AAAA;AAAA,EAGQ,MAAA,CAAO,EAAE,OAAA,EAAQ,EAAiC;AACxD,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,YAAA,CAAa,GAAA,CAAI,OAAO,CAAA;AAE1C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,GAAA,EAAI;AACT,IAAA,IAAA,CAAK,YAAA,CAAa,OAAO,OAAO,CAAA;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQQ,OAAA,CAAQ,EAAE,OAAA,EAAS,KAAA,EAAM,EAA8B;AAC7D,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,YAAA,CAAa,GAAA,CAAI,OAAO,CAAA;AAE1C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA;AAAA,IACF;AAQA,IAAA,IAAA,CAAK,SAAA,CAAU;AAAA,MACb,IAAA,EAAMA,sBAAA;AAAA,MACN,SAAS,KAAA,CAAM;AAAA,KAChB,CAAA;AACD,IAAA,IAAA,CAAK,GAAA,EAAI;AACT,IAAA,IAAA,CAAK,YAAA,CAAa,OAAO,OAAO,CAAA;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKQ,6BAAA,CAA8B,IAAA,EAAY,OAAA,EAAwB,GAAA,EAAmB;AAC3F,IAAA,MAAM,EAAE,yBAAyB,oBAAA,EAAqB,GAAIC,gBAAU,EAAG,UAAA,MAAgB,EAAC;AAExF,IAAA,IAAI,CAACC,+BAAA,CAA2B,GAAA,EAAK,uBAAA,EAAyB,IAAA,CAAK,uBAAuB,CAAA,EAAG;AAC3F,MAAA;AAAA,IACF;AAKA,IAAA,MAAM,YAAA,GAAeC,oBAAe,IAAA,EAAM,MAAMC,kBAAa,EAAE,oBAAA,EAAsB,CAAC,CAAA;AAEtF,IAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA;AAEjD,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,aAAA,CAAc,QAAQ,CAAA,EAAA,EAAK;AAC7C,MAAA,MAAM,IAAA,GAAO,cAAc,CAAC,CAAA;AAC5B,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA;AAAA,MACF;AACA,MAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,IAAA;AACf,MAAA,IAAI,CAAC,CAAA,EAAG;AACN,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,OAAO,OAAA,CAAQ,SAAA,KAAc,UAAA,EAAY;AAC3C,QAAA,OAAA,CAAQ,SAAA,CAAU,GAAG,CAAC,CAAA;AAAA,MACxB,CAAA,MAAA,IAAW,OAAO,OAAA,CAAQ,OAAA,KAAY,QAAA,EAAU;AAC9C,QAAA,OAAA,CAAQ,OAAA,IAAW,CAAA,EAAG,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA;AAAA,CAAA;AAAA,MAC/B,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA,EAAG;AAEzC,QAAA,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,CAAA,EAAG,CAAC,CAAA;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,iBAAiB,QAAA,EAA0B;AACjD,IAAA,MAAM,YAAA,GAAe;AAAA,MACnB,OAAA,EAAS,IAAA;AAAA,MACT,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,IAAA;AAAA,MACN,GAAA,EAAK,IAAA;AAAA,MACL,IAAA,EAAM,IAAA;AAAA,MACN,GAAA,EAAK,IAAA;AAAA,MACL,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ,IAAA;AAAA,MACR,KAAA,EAAO,IAAA;AAAA;AAAA,MAEP,KAAA,EAAO;AAAA,KACT;AAEA,IAAA,IAAI,QAAA,CAAS,WAAA,EAAY,IAAK,YAAA,EAAc;AAC1C,MAAA,OAAO,SAAS,WAAA,EAAY;AAAA,IAC9B;AAEA,IAAA,OAAO,QAAA;AAAA,EACT;AACF;;;;"}
|
|
@@ -1,387 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
|
|
3
|
-
const dc = require('node:diagnostics_channel');
|
|
4
|
-
const api = require('@opentelemetry/api');
|
|
5
|
-
const semanticConventions = require('@opentelemetry/semantic-conventions');
|
|
6
|
-
const instrumentation = require('@opentelemetry/instrumentation');
|
|
7
|
-
const core = require('@sentry/core');
|
|
8
|
-
const setHttpServerSpanRouteAttribute = require('../../../../utils/setHttpServerSpanRouteAttribute.js');
|
|
9
|
-
|
|
10
|
-
var _a, _b;
|
|
11
|
-
const PACKAGE_VERSION = core.SDK_VERSION;
|
|
12
|
-
const PACKAGE_NAME = "@sentry/instrumentation-fastify";
|
|
13
|
-
const SUPPORTED_VERSIONS = ">=4.0.0 <6";
|
|
14
|
-
const FASTIFY_HOOKS = [
|
|
15
|
-
"onRequest",
|
|
16
|
-
"preParsing",
|
|
17
|
-
"preValidation",
|
|
18
|
-
"preHandler",
|
|
19
|
-
"preSerialization",
|
|
20
|
-
"onSend",
|
|
21
|
-
"onResponse",
|
|
22
|
-
"onError"
|
|
23
|
-
];
|
|
24
|
-
const ATTRIBUTE_NAMES = {
|
|
25
|
-
HOOK_NAME: "hook.name",
|
|
26
|
-
FASTIFY_TYPE: "fastify.type",
|
|
27
|
-
HOOK_CALLBACK_NAME: "hook.callback.name",
|
|
28
|
-
ROOT: "fastify.root"
|
|
29
|
-
};
|
|
30
|
-
const HOOK_TYPES = {
|
|
31
|
-
ROUTE: "route-hook",
|
|
32
|
-
INSTANCE: "hook",
|
|
33
|
-
HANDLER: "request-handler"
|
|
34
|
-
};
|
|
35
|
-
const ANONYMOUS_FUNCTION_NAME = "anonymous";
|
|
36
|
-
const kInstrumentation = /* @__PURE__ */ Symbol("fastify otel instance");
|
|
37
|
-
const kRequestSpan = /* @__PURE__ */ Symbol("fastify otel request spans");
|
|
38
|
-
const kRequestContext = /* @__PURE__ */ Symbol("fastify otel request context");
|
|
39
|
-
const kAddHookOriginal = /* @__PURE__ */ Symbol("fastify otel addhook original");
|
|
40
|
-
const kSetNotFoundOriginal = /* @__PURE__ */ Symbol("fastify otel setnotfound original");
|
|
41
|
-
const kRecordExceptions = /* @__PURE__ */ Symbol("fastify otel record exceptions");
|
|
42
|
-
class FastifyOtelInstrumentation extends (_b = instrumentation.InstrumentationBase, _a = kRecordExceptions, _b) {
|
|
43
|
-
constructor(config = {}) {
|
|
44
|
-
super(PACKAGE_NAME, PACKAGE_VERSION, config);
|
|
45
|
-
this._otelLogger = null;
|
|
46
|
-
this._requestHook = null;
|
|
47
|
-
this._lifecycleHook = null;
|
|
48
|
-
this._handleInitialization = void 0;
|
|
49
|
-
this[_a] = true;
|
|
50
|
-
this._otelLogger = api.diag.createComponentLogger({ namespace: PACKAGE_NAME });
|
|
51
|
-
this[kRecordExceptions] = true;
|
|
52
|
-
if (config?.recordExceptions != null) {
|
|
53
|
-
if (typeof config.recordExceptions !== "boolean") {
|
|
54
|
-
throw new TypeError("recordExceptions must be a boolean");
|
|
55
|
-
}
|
|
56
|
-
this[kRecordExceptions] = config.recordExceptions;
|
|
57
|
-
}
|
|
58
|
-
if (typeof config?.requestHook === "function") {
|
|
59
|
-
this._requestHook = config.requestHook;
|
|
60
|
-
}
|
|
61
|
-
if (typeof config?.lifecycleHook === "function") {
|
|
62
|
-
this._lifecycleHook = config.lifecycleHook;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
enable() {
|
|
66
|
-
if (this._handleInitialization === void 0 && this.getConfig().registerOnInitialization) {
|
|
67
|
-
this._handleInitialization = (message) => {
|
|
68
|
-
this.plugin()(message.fastify, void 0, () => {
|
|
69
|
-
});
|
|
70
|
-
const emptyPlugin = (_, __, done) => {
|
|
71
|
-
done();
|
|
72
|
-
};
|
|
73
|
-
emptyPlugin[/* @__PURE__ */ Symbol.for("skip-override")] = true;
|
|
74
|
-
emptyPlugin[/* @__PURE__ */ Symbol.for("fastify.display-name")] = PACKAGE_NAME;
|
|
75
|
-
message.fastify.register(emptyPlugin);
|
|
76
|
-
};
|
|
77
|
-
dc.subscribe("fastify.initialization", this._handleInitialization);
|
|
78
|
-
}
|
|
79
|
-
return super.enable();
|
|
80
|
-
}
|
|
81
|
-
disable() {
|
|
82
|
-
if (this._handleInitialization) {
|
|
83
|
-
dc.unsubscribe("fastify.initialization", this._handleInitialization);
|
|
84
|
-
this._handleInitialization = void 0;
|
|
85
|
-
}
|
|
86
|
-
return super.disable();
|
|
87
|
-
}
|
|
88
|
-
init() {
|
|
89
|
-
return [];
|
|
90
|
-
}
|
|
91
|
-
plugin() {
|
|
92
|
-
const instrumentation = this;
|
|
93
|
-
const pluginAny = FastifyInstrumentationPlugin;
|
|
94
|
-
pluginAny[/* @__PURE__ */ Symbol.for("skip-override")] = true;
|
|
95
|
-
pluginAny[/* @__PURE__ */ Symbol.for("fastify.display-name")] = PACKAGE_NAME;
|
|
96
|
-
pluginAny[/* @__PURE__ */ Symbol.for("plugin-meta")] = {
|
|
97
|
-
fastify: SUPPORTED_VERSIONS,
|
|
98
|
-
name: PACKAGE_NAME
|
|
99
|
-
};
|
|
100
|
-
return FastifyInstrumentationPlugin;
|
|
101
|
-
function FastifyInstrumentationPlugin(instance, _opts, done) {
|
|
102
|
-
instance.decorate(kInstrumentation, instrumentation);
|
|
103
|
-
instance.decorate(kAddHookOriginal, instance.addHook);
|
|
104
|
-
instance.decorate(kSetNotFoundOriginal, instance.setNotFoundHandler);
|
|
105
|
-
instance.decorateRequest("opentelemetry", function opentelemetry() {
|
|
106
|
-
const ctx = this[kRequestContext];
|
|
107
|
-
const span = this[kRequestSpan];
|
|
108
|
-
return {
|
|
109
|
-
enabled: this.routeOptions.config?.otel !== false,
|
|
110
|
-
span,
|
|
111
|
-
tracer: instrumentation.tracer,
|
|
112
|
-
context: ctx,
|
|
113
|
-
inject: (carrier, setter) => {
|
|
114
|
-
return api.propagation.inject(ctx, carrier, setter);
|
|
115
|
-
},
|
|
116
|
-
extract: (carrier, getter) => {
|
|
117
|
-
return api.propagation.extract(ctx, carrier, getter);
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
});
|
|
121
|
-
instance.decorateRequest(kRequestSpan, null);
|
|
122
|
-
instance.decorateRequest(kRequestContext, null);
|
|
123
|
-
instance.addHook("onRoute", function otelWireRoute(routeOptions) {
|
|
124
|
-
if (routeOptions.config?.otel === false) {
|
|
125
|
-
instrumentation._otelLogger.debug(
|
|
126
|
-
`Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it is disabled`
|
|
127
|
-
);
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
for (const hook of FASTIFY_HOOKS) {
|
|
131
|
-
if (routeOptions[hook] != null) {
|
|
132
|
-
const handlerLike = routeOptions[hook];
|
|
133
|
-
if (typeof handlerLike === "function") {
|
|
134
|
-
routeOptions[hook] = handlerWrapper(handlerLike, hook, {
|
|
135
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,
|
|
136
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,
|
|
137
|
-
[semanticConventions.ATTR_HTTP_ROUTE]: routeOptions.url,
|
|
138
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: handlerLike.name?.length > 0 ? handlerLike.name : ANONYMOUS_FUNCTION_NAME
|
|
139
|
-
});
|
|
140
|
-
} else if (Array.isArray(handlerLike)) {
|
|
141
|
-
const wrappedHandlers = [];
|
|
142
|
-
for (const handler of handlerLike) {
|
|
143
|
-
wrappedHandlers.push(
|
|
144
|
-
handlerWrapper(handler, hook, {
|
|
145
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,
|
|
146
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,
|
|
147
|
-
[semanticConventions.ATTR_HTTP_ROUTE]: routeOptions.url,
|
|
148
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME
|
|
149
|
-
})
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
routeOptions[hook] = wrappedHandlers;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (routeOptions.onSend != null) {
|
|
157
|
-
routeOptions.onSend = Array.isArray(routeOptions.onSend) ? [...routeOptions.onSend, finalizeResponseSpanHook] : [routeOptions.onSend, finalizeResponseSpanHook];
|
|
158
|
-
} else {
|
|
159
|
-
routeOptions.onSend = finalizeResponseSpanHook;
|
|
160
|
-
}
|
|
161
|
-
if (routeOptions.onError != null) {
|
|
162
|
-
routeOptions.onError = Array.isArray(routeOptions.onError) ? [...routeOptions.onError, recordErrorInSpanHook] : [routeOptions.onError, recordErrorInSpanHook];
|
|
163
|
-
} else {
|
|
164
|
-
routeOptions.onError = recordErrorInSpanHook;
|
|
165
|
-
}
|
|
166
|
-
routeOptions.handler = handlerWrapper(routeOptions.handler, "handler", {
|
|
167
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route-handler`,
|
|
168
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.HANDLER,
|
|
169
|
-
[semanticConventions.ATTR_HTTP_ROUTE]: routeOptions.url,
|
|
170
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: routeOptions.handler.name.length > 0 ? routeOptions.handler.name : ANONYMOUS_FUNCTION_NAME
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
instance.addHook(
|
|
174
|
-
"onRequest",
|
|
175
|
-
function startRequestSpanHook(request, _reply, hookDone) {
|
|
176
|
-
if (this[kInstrumentation].isEnabled() === false || request.routeOptions.config?.otel === false) {
|
|
177
|
-
return hookDone();
|
|
178
|
-
}
|
|
179
|
-
let ctx = api.context.active();
|
|
180
|
-
if (api.trace.getSpan(ctx) == null) {
|
|
181
|
-
ctx = api.propagation.extract(ctx, request.headers);
|
|
182
|
-
}
|
|
183
|
-
if (request.routeOptions.url != null) {
|
|
184
|
-
setHttpServerSpanRouteAttribute.setHttpServerSpanRouteAttribute(request.routeOptions.url);
|
|
185
|
-
}
|
|
186
|
-
const attributes = {
|
|
187
|
-
[ATTRIBUTE_NAMES.ROOT]: PACKAGE_NAME,
|
|
188
|
-
[semanticConventions.ATTR_HTTP_REQUEST_METHOD]: request.method,
|
|
189
|
-
[semanticConventions.ATTR_URL_PATH]: request.url
|
|
190
|
-
};
|
|
191
|
-
if (request.routeOptions.url != null) {
|
|
192
|
-
attributes[semanticConventions.ATTR_HTTP_ROUTE] = request.routeOptions.url;
|
|
193
|
-
}
|
|
194
|
-
const span = this[kInstrumentation].tracer.startSpan("request", { attributes }, ctx);
|
|
195
|
-
try {
|
|
196
|
-
this[kInstrumentation]._requestHook?.(span, request);
|
|
197
|
-
} catch (err) {
|
|
198
|
-
this[kInstrumentation]._otelLogger.error({ err }, "requestHook threw");
|
|
199
|
-
}
|
|
200
|
-
request[kRequestContext] = api.trace.setSpan(ctx, span);
|
|
201
|
-
request[kRequestSpan] = span;
|
|
202
|
-
api.context.with(request[kRequestContext], () => {
|
|
203
|
-
hookDone();
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
);
|
|
207
|
-
instance.addHook("onResponse", function finalizeNotFoundSpanHook(request, reply, hookDone) {
|
|
208
|
-
const span = request[kRequestSpan];
|
|
209
|
-
if (span != null) {
|
|
210
|
-
span.setAttributes({
|
|
211
|
-
[semanticConventions.ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode
|
|
212
|
-
});
|
|
213
|
-
span.end();
|
|
214
|
-
}
|
|
215
|
-
request[kRequestSpan] = null;
|
|
216
|
-
hookDone();
|
|
217
|
-
});
|
|
218
|
-
instance.addHook = addHookPatched;
|
|
219
|
-
instance.setNotFoundHandler = setNotFoundHandlerPatched;
|
|
220
|
-
done();
|
|
221
|
-
function finalizeResponseSpanHook(request, reply, payload, hookDone) {
|
|
222
|
-
const span = request[kRequestSpan];
|
|
223
|
-
if (span != null) {
|
|
224
|
-
if (reply.statusCode >= 500) {
|
|
225
|
-
span.setStatus({ code: api.SpanStatusCode.ERROR });
|
|
226
|
-
}
|
|
227
|
-
span.setAttributes({
|
|
228
|
-
[semanticConventions.ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode
|
|
229
|
-
});
|
|
230
|
-
span.end();
|
|
231
|
-
}
|
|
232
|
-
request[kRequestSpan] = null;
|
|
233
|
-
hookDone(null, payload);
|
|
234
|
-
}
|
|
235
|
-
function recordErrorInSpanHook(request, _reply, error, hookDone) {
|
|
236
|
-
const span = request[kRequestSpan];
|
|
237
|
-
if (span != null) {
|
|
238
|
-
span.setStatus({
|
|
239
|
-
code: api.SpanStatusCode.ERROR,
|
|
240
|
-
message: error.message
|
|
241
|
-
});
|
|
242
|
-
if (instrumentation[kRecordExceptions] !== false) {
|
|
243
|
-
span.recordException(error);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
hookDone();
|
|
247
|
-
}
|
|
248
|
-
function addHookPatched(name, hook) {
|
|
249
|
-
const addHookOriginal = this[kAddHookOriginal];
|
|
250
|
-
if (FASTIFY_HOOKS.includes(name)) {
|
|
251
|
-
return addHookOriginal.call(
|
|
252
|
-
this,
|
|
253
|
-
name,
|
|
254
|
-
handlerWrapper(hook, name, {
|
|
255
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - ${name}`,
|
|
256
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,
|
|
257
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: hook.name?.length > 0 ? hook.name : ANONYMOUS_FUNCTION_NAME
|
|
258
|
-
})
|
|
259
|
-
);
|
|
260
|
-
} else {
|
|
261
|
-
return addHookOriginal.call(this, name, hook);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
function setNotFoundHandlerPatched(hooks, handler) {
|
|
265
|
-
const setNotFoundHandlerOriginal = this[kSetNotFoundOriginal];
|
|
266
|
-
if (typeof hooks === "function") {
|
|
267
|
-
handler = handlerWrapper(hooks, "notFoundHandler", {
|
|
268
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,
|
|
269
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,
|
|
270
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: hooks.name?.length > 0 ? hooks.name : ANONYMOUS_FUNCTION_NAME
|
|
271
|
-
});
|
|
272
|
-
setNotFoundHandlerOriginal.call(this, handler);
|
|
273
|
-
} else {
|
|
274
|
-
if (hooks.preValidation != null) {
|
|
275
|
-
hooks.preValidation = handlerWrapper(hooks.preValidation, "notFoundHandler - preValidation", {
|
|
276
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preValidation`,
|
|
277
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,
|
|
278
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: hooks.preValidation.name?.length > 0 ? hooks.preValidation.name : ANONYMOUS_FUNCTION_NAME
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
if (hooks.preHandler != null) {
|
|
282
|
-
hooks.preHandler = handlerWrapper(hooks.preHandler, "notFoundHandler - preHandler", {
|
|
283
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preHandler`,
|
|
284
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,
|
|
285
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: hooks.preHandler.name?.length > 0 ? hooks.preHandler.name : ANONYMOUS_FUNCTION_NAME
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
handler = handlerWrapper(handler, "notFoundHandler", {
|
|
289
|
-
[ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,
|
|
290
|
-
[ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,
|
|
291
|
-
[ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME
|
|
292
|
-
});
|
|
293
|
-
setNotFoundHandlerOriginal.call(this, hooks, handler);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
function getRequestFromArgs(args) {
|
|
297
|
-
for (const arg of args) {
|
|
298
|
-
if (arg?.routeOptions && arg.url && arg.method) {
|
|
299
|
-
return arg;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
return null;
|
|
303
|
-
}
|
|
304
|
-
function handlerWrapper(handler, hookName, spanAttributes = {}) {
|
|
305
|
-
return function handlerWrapped(...args) {
|
|
306
|
-
const instrumentation2 = this[kInstrumentation];
|
|
307
|
-
const request = getRequestFromArgs(args);
|
|
308
|
-
if (request === null) {
|
|
309
|
-
instrumentation2._otelLogger.debug(
|
|
310
|
-
`Ignoring route instrumentation because ${hookName} was called without a Fastify request argument`
|
|
311
|
-
);
|
|
312
|
-
return handler.call(this, ...args);
|
|
313
|
-
}
|
|
314
|
-
if (instrumentation2.isEnabled() === false || request.routeOptions.config?.otel === false) {
|
|
315
|
-
instrumentation2._otelLogger.debug(
|
|
316
|
-
`Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it is disabled`
|
|
317
|
-
);
|
|
318
|
-
return handler.call(this, ...args);
|
|
319
|
-
}
|
|
320
|
-
const ctx = request[kRequestContext] ?? api.context.active();
|
|
321
|
-
const handlerName = handler.name?.length > 0 ? handler.name : this.pluginName ?? ANONYMOUS_FUNCTION_NAME;
|
|
322
|
-
const span = instrumentation2.tracer.startSpan(
|
|
323
|
-
`${hookName} - ${handlerName}`,
|
|
324
|
-
{
|
|
325
|
-
attributes: spanAttributes
|
|
326
|
-
},
|
|
327
|
-
ctx
|
|
328
|
-
);
|
|
329
|
-
if (instrumentation2._lifecycleHook != null) {
|
|
330
|
-
try {
|
|
331
|
-
instrumentation2._lifecycleHook(span, {
|
|
332
|
-
hookName,
|
|
333
|
-
request,
|
|
334
|
-
handler: handlerName
|
|
335
|
-
});
|
|
336
|
-
} catch (err) {
|
|
337
|
-
instrumentation2._otelLogger.error({ err }, "Execution of lifecycleHook failed");
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
return api.context.with(
|
|
341
|
-
api.trace.setSpan(ctx, span),
|
|
342
|
-
function() {
|
|
343
|
-
try {
|
|
344
|
-
const res = handler.call(this, ...args);
|
|
345
|
-
if (typeof res?.then === "function") {
|
|
346
|
-
return res.then(
|
|
347
|
-
(result) => {
|
|
348
|
-
span.end();
|
|
349
|
-
return result;
|
|
350
|
-
},
|
|
351
|
-
(error) => {
|
|
352
|
-
span.setStatus({
|
|
353
|
-
code: api.SpanStatusCode.ERROR,
|
|
354
|
-
message: error.message
|
|
355
|
-
});
|
|
356
|
-
if (instrumentation2[kRecordExceptions] !== false) {
|
|
357
|
-
span.recordException(error);
|
|
358
|
-
}
|
|
359
|
-
span.end();
|
|
360
|
-
return Promise.reject(error);
|
|
361
|
-
}
|
|
362
|
-
);
|
|
363
|
-
}
|
|
364
|
-
span.end();
|
|
365
|
-
return res;
|
|
366
|
-
} catch (error) {
|
|
367
|
-
span.setStatus({
|
|
368
|
-
code: api.SpanStatusCode.ERROR,
|
|
369
|
-
message: error.message
|
|
370
|
-
});
|
|
371
|
-
if (instrumentation2[kRecordExceptions] !== false) {
|
|
372
|
-
span.recordException(error);
|
|
373
|
-
}
|
|
374
|
-
span.end();
|
|
375
|
-
throw error;
|
|
376
|
-
}
|
|
377
|
-
},
|
|
378
|
-
this
|
|
379
|
-
);
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
exports.FastifyOtelInstrumentation = FastifyOtelInstrumentation;
|
|
387
|
-
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/fastify/vendored/instrumentation.ts"],"sourcesContent":["/*\n * Copyright (c) 2024-present The Fastify team <https://github.com/fastify/fastify#team>\n * SPDX-License-Identifier: MIT\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/fastify/otel/tree/bae80d6caef4287e7f01ff3c8dc753243706ea86\n * - Upstream version: @fastify/otel@0.18.1\n * - Converted from JavaScript to TypeScript with minimal type annotations\n * - Removed `ignorePaths` / `minimatch` support (not used by the Sentry integration)\n */\n/* eslint-disable */\n\nimport * as dc from 'node:diagnostics_channel';\nimport { context, trace, SpanStatusCode, propagation, diag, type Span } from '@opentelemetry/api';\nimport {\n ATTR_HTTP_ROUTE,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_URL_PATH,\n} from '@opentelemetry/semantic-conventions';\nimport { InstrumentationBase, type InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute';\n\nconst PACKAGE_VERSION = SDK_VERSION;\nconst PACKAGE_NAME = '@sentry/instrumentation-fastify';\n\nconst SUPPORTED_VERSIONS = '>=4.0.0 <6';\nconst FASTIFY_HOOKS = [\n 'onRequest',\n 'preParsing',\n 'preValidation',\n 'preHandler',\n 'preSerialization',\n 'onSend',\n 'onResponse',\n 'onError',\n];\nconst ATTRIBUTE_NAMES = {\n HOOK_NAME: 'hook.name',\n FASTIFY_TYPE: 'fastify.type',\n HOOK_CALLBACK_NAME: 'hook.callback.name',\n ROOT: 'fastify.root',\n};\nconst HOOK_TYPES = {\n ROUTE: 'route-hook',\n INSTANCE: 'hook',\n HANDLER: 'request-handler',\n};\nconst ANONYMOUS_FUNCTION_NAME = 'anonymous';\n\nconst kInstrumentation = Symbol('fastify otel instance');\nconst kRequestSpan = Symbol('fastify otel request spans');\nconst kRequestContext = Symbol('fastify otel request context');\nconst kAddHookOriginal = Symbol('fastify otel addhook original');\nconst kSetNotFoundOriginal = Symbol('fastify otel setnotfound original');\nconst kRecordExceptions = Symbol('fastify otel record exceptions');\n\nexport interface FastifyOtelInstrumentationOpts extends InstrumentationConfig {\n registerOnInitialization?: boolean;\n requestHook?: (span: Span, request: any) => void;\n lifecycleHook?: (span: Span, info: { hookName: string; request: any; handler?: string }) => void;\n recordExceptions?: boolean;\n}\n\nexport class FastifyOtelInstrumentation extends InstrumentationBase<FastifyOtelInstrumentationOpts> {\n _otelLogger: any = null;\n _requestHook: ((span: Span, request: any) => void) | null = null;\n _lifecycleHook: ((span: Span, info: any) => void) | null = null;\n _handleInitialization: ((message: any) => void) | undefined = undefined;\n\n [kRecordExceptions]: boolean = true;\n\n constructor(config: FastifyOtelInstrumentationOpts = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n this._otelLogger = diag.createComponentLogger({ namespace: PACKAGE_NAME });\n this[kRecordExceptions] = true;\n\n if (config?.recordExceptions != null) {\n if (typeof config.recordExceptions !== 'boolean') {\n throw new TypeError('recordExceptions must be a boolean');\n }\n\n this[kRecordExceptions] = config.recordExceptions;\n }\n if (typeof config?.requestHook === 'function') {\n this._requestHook = config.requestHook;\n }\n if (typeof config?.lifecycleHook === 'function') {\n this._lifecycleHook = config.lifecycleHook;\n }\n }\n\n enable(): any {\n if (this._handleInitialization === undefined && this.getConfig().registerOnInitialization) {\n this._handleInitialization = (message: any) => {\n this.plugin()(message.fastify, undefined, () => {});\n const emptyPlugin: any = (_: any, __: any, done: () => void) => {\n done();\n };\n emptyPlugin[Symbol.for('skip-override')] = true;\n emptyPlugin[Symbol.for('fastify.display-name')] = PACKAGE_NAME;\n message.fastify.register(emptyPlugin);\n };\n dc.subscribe('fastify.initialization', this._handleInitialization);\n }\n return super.enable();\n }\n\n disable(): any {\n if (this._handleInitialization) {\n dc.unsubscribe('fastify.initialization', this._handleInitialization);\n this._handleInitialization = undefined;\n }\n return super.disable();\n }\n\n init() {\n return [];\n }\n\n plugin(): any {\n const instrumentation = this;\n\n const pluginAny = FastifyInstrumentationPlugin as any;\n pluginAny[Symbol.for('skip-override')] = true;\n pluginAny[Symbol.for('fastify.display-name')] = PACKAGE_NAME;\n pluginAny[Symbol.for('plugin-meta')] = {\n fastify: SUPPORTED_VERSIONS,\n name: PACKAGE_NAME,\n };\n\n return FastifyInstrumentationPlugin;\n\n function FastifyInstrumentationPlugin(instance: any, _opts: any, done: () => void) {\n instance.decorate(kInstrumentation, instrumentation);\n instance.decorate(kAddHookOriginal, instance.addHook);\n instance.decorate(kSetNotFoundOriginal, instance.setNotFoundHandler);\n instance.decorateRequest('opentelemetry', function opentelemetry(this: any) {\n const ctx = this[kRequestContext];\n const span = this[kRequestSpan];\n\n return {\n enabled: this.routeOptions.config?.otel !== false,\n span,\n tracer: instrumentation.tracer,\n context: ctx,\n inject: (carrier: any, setter?: any) => {\n return propagation.inject(ctx, carrier, setter);\n },\n extract: (carrier: any, getter?: any) => {\n return propagation.extract(ctx, carrier, getter);\n },\n };\n });\n instance.decorateRequest(kRequestSpan, null);\n instance.decorateRequest(kRequestContext, null);\n\n instance.addHook('onRoute', function otelWireRoute(this: any, routeOptions: any) {\n if (routeOptions.config?.otel === false) {\n instrumentation._otelLogger.debug(\n `Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it is disabled`,\n );\n\n return;\n }\n\n for (const hook of FASTIFY_HOOKS) {\n if (routeOptions[hook] != null) {\n const handlerLike = routeOptions[hook];\n\n if (typeof handlerLike === 'function') {\n routeOptions[hook] = handlerWrapper(handlerLike, hook, {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n [ATTR_HTTP_ROUTE]: routeOptions.url,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n handlerLike.name?.length > 0 ? handlerLike.name : ANONYMOUS_FUNCTION_NAME,\n });\n } else if (Array.isArray(handlerLike)) {\n const wrappedHandlers: any[] = [];\n\n for (const handler of handlerLike) {\n wrappedHandlers.push(\n handlerWrapper(handler, hook, {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n [ATTR_HTTP_ROUTE]: routeOptions.url,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME,\n }),\n );\n }\n\n routeOptions[hook] = wrappedHandlers;\n }\n }\n }\n\n if (routeOptions.onSend != null) {\n routeOptions.onSend = Array.isArray(routeOptions.onSend)\n ? [...routeOptions.onSend, finalizeResponseSpanHook]\n : [routeOptions.onSend, finalizeResponseSpanHook];\n } else {\n routeOptions.onSend = finalizeResponseSpanHook;\n }\n\n if (routeOptions.onError != null) {\n routeOptions.onError = Array.isArray(routeOptions.onError)\n ? [...routeOptions.onError, recordErrorInSpanHook]\n : [routeOptions.onError, recordErrorInSpanHook];\n } else {\n routeOptions.onError = recordErrorInSpanHook;\n }\n\n routeOptions.handler = handlerWrapper(routeOptions.handler, 'handler', {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route-handler`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.HANDLER,\n [ATTR_HTTP_ROUTE]: routeOptions.url,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n routeOptions.handler.name.length > 0 ? routeOptions.handler.name : ANONYMOUS_FUNCTION_NAME,\n });\n });\n\n instance.addHook(\n 'onRequest',\n function startRequestSpanHook(this: any, request: any, _reply: any, hookDone: () => void) {\n if (this[kInstrumentation].isEnabled() === false || request.routeOptions.config?.otel === false) {\n return hookDone();\n }\n\n let ctx = context.active();\n\n if (trace.getSpan(ctx) == null) {\n ctx = propagation.extract(ctx, request.headers);\n }\n\n if (request.routeOptions.url != null) {\n setHttpServerSpanRouteAttribute(request.routeOptions.url);\n }\n\n const attributes: Record<string, string> = {\n [ATTRIBUTE_NAMES.ROOT]: PACKAGE_NAME,\n [ATTR_HTTP_REQUEST_METHOD]: request.method,\n [ATTR_URL_PATH]: request.url,\n };\n\n if (request.routeOptions.url != null) {\n attributes[ATTR_HTTP_ROUTE] = request.routeOptions.url;\n }\n\n const span = this[kInstrumentation].tracer.startSpan('request', { attributes }, ctx);\n\n try {\n this[kInstrumentation]._requestHook?.(span, request);\n } catch (err) {\n this[kInstrumentation]._otelLogger.error({ err }, 'requestHook threw');\n }\n\n request[kRequestContext] = trace.setSpan(ctx, span);\n request[kRequestSpan] = span;\n\n context.with(request[kRequestContext], () => {\n hookDone();\n });\n },\n );\n\n instance.addHook('onResponse', function finalizeNotFoundSpanHook(request: any, reply: any, hookDone: () => void) {\n const span = request[kRequestSpan];\n\n if (span != null) {\n span.setAttributes({\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode,\n });\n span.end();\n }\n\n request[kRequestSpan] = null;\n\n hookDone();\n });\n\n instance.addHook = addHookPatched;\n instance.setNotFoundHandler = setNotFoundHandlerPatched;\n\n done();\n\n function finalizeResponseSpanHook(\n request: any,\n reply: any,\n payload: any,\n hookDone: (err: null, payload: any) => void,\n ) {\n const span = request[kRequestSpan];\n\n if (span != null) {\n if (reply.statusCode >= 500) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n\n span.setAttributes({\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode,\n });\n span.end();\n }\n\n request[kRequestSpan] = null;\n\n hookDone(null, payload);\n }\n\n function recordErrorInSpanHook(request: any, _reply: any, error: any, hookDone: () => void) {\n const span = request[kRequestSpan];\n\n if (span != null) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n if (instrumentation[kRecordExceptions] !== false) {\n span.recordException(error);\n }\n }\n\n hookDone();\n }\n\n function addHookPatched(this: any, name: string, hook: (...args: any[]) => any) {\n const addHookOriginal = this[kAddHookOriginal];\n\n if (FASTIFY_HOOKS.includes(name)) {\n return addHookOriginal.call(\n this,\n name,\n handlerWrapper(hook, name, {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - ${name}`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: hook.name?.length > 0 ? hook.name : ANONYMOUS_FUNCTION_NAME,\n }),\n );\n } else {\n return addHookOriginal.call(this, name, hook);\n }\n }\n\n function setNotFoundHandlerPatched(this: any, hooks: any, handler?: any) {\n const setNotFoundHandlerOriginal = this[kSetNotFoundOriginal];\n if (typeof hooks === 'function') {\n handler = handlerWrapper(hooks, 'notFoundHandler', {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: hooks.name?.length > 0 ? hooks.name : ANONYMOUS_FUNCTION_NAME,\n });\n setNotFoundHandlerOriginal.call(this, handler);\n } else {\n if (hooks.preValidation != null) {\n hooks.preValidation = handlerWrapper(hooks.preValidation, 'notFoundHandler - preValidation', {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preValidation`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n hooks.preValidation.name?.length > 0 ? hooks.preValidation.name : ANONYMOUS_FUNCTION_NAME,\n });\n }\n\n if (hooks.preHandler != null) {\n hooks.preHandler = handlerWrapper(hooks.preHandler, 'notFoundHandler - preHandler', {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preHandler`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n hooks.preHandler.name?.length > 0 ? hooks.preHandler.name : ANONYMOUS_FUNCTION_NAME,\n });\n }\n\n handler = handlerWrapper(handler, 'notFoundHandler', {\n [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]: handler.name?.length > 0 ? handler.name : ANONYMOUS_FUNCTION_NAME,\n });\n setNotFoundHandlerOriginal.call(this, hooks, handler);\n }\n }\n\n function getRequestFromArgs(args: any[]) {\n for (const arg of args) {\n if (arg?.routeOptions && arg.url && arg.method) {\n return arg;\n }\n }\n return null;\n }\n\n function handlerWrapper(\n handler: (...args: any[]) => any,\n hookName: string,\n spanAttributes: Record<string, string> = {},\n ) {\n return function handlerWrapped(this: any, ...args: any[]) {\n const instrumentation: FastifyOtelInstrumentation = this[kInstrumentation];\n\n const request = getRequestFromArgs(args);\n if (request === null) {\n instrumentation._otelLogger.debug(\n `Ignoring route instrumentation because ${hookName} was called without a Fastify request argument`,\n );\n return handler.call(this, ...args);\n }\n\n if (instrumentation.isEnabled() === false || request.routeOptions.config?.otel === false) {\n instrumentation._otelLogger.debug(\n `Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it is disabled`,\n );\n return handler.call(this, ...args);\n }\n\n const ctx = request[kRequestContext] ?? context.active();\n const handlerName = handler.name?.length > 0 ? handler.name : (this.pluginName ?? ANONYMOUS_FUNCTION_NAME);\n\n const span = instrumentation.tracer.startSpan(\n `${hookName} - ${handlerName}`,\n {\n attributes: spanAttributes,\n },\n ctx,\n );\n\n if (instrumentation._lifecycleHook != null) {\n try {\n instrumentation._lifecycleHook(span, {\n hookName,\n request,\n handler: handlerName,\n });\n } catch (err) {\n instrumentation._otelLogger.error({ err }, 'Execution of lifecycleHook failed');\n }\n }\n\n return context.with(\n trace.setSpan(ctx, span),\n function (this: any) {\n try {\n const res = handler.call(this, ...args);\n\n if (typeof res?.then === 'function') {\n return res.then(\n (result: any) => {\n span.end();\n return result;\n },\n (error: any) => {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n if (instrumentation[kRecordExceptions] !== false) {\n span.recordException(error);\n }\n span.end();\n return Promise.reject(error);\n },\n );\n }\n\n span.end();\n return res;\n } catch (error: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n if (instrumentation[kRecordExceptions] !== false) {\n span.recordException(error);\n }\n span.end();\n throw error;\n }\n },\n this,\n );\n };\n }\n }\n }\n}\n"],"names":["SDK_VERSION","InstrumentationBase","diag","propagation","ATTR_HTTP_ROUTE","context","trace","setHttpServerSpanRouteAttribute","ATTR_HTTP_REQUEST_METHOD","ATTR_URL_PATH","ATTR_HTTP_RESPONSE_STATUS_CODE","SpanStatusCode","instrumentation"],"mappings":";;;;;;;;;AAAA,IAAA,EAAA,EAAA,EAAA;AAwBA,MAAM,eAAA,GAAkBA,gBAAA;AACxB,MAAM,YAAA,GAAe,iCAAA;AAErB,MAAM,kBAAA,GAAqB,YAAA;AAC3B,MAAM,aAAA,GAAgB;AAAA,EACpB,WAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AACA,MAAM,eAAA,GAAkB;AAAA,EACtB,SAAA,EAAW,WAAA;AAAA,EACX,YAAA,EAAc,cAAA;AAAA,EACd,kBAAA,EAAoB,oBAAA;AAAA,EACpB,IAAA,EAAM;AACR,CAAA;AACA,MAAM,UAAA,GAAa;AAAA,EACjB,KAAA,EAAO,YAAA;AAAA,EACP,QAAA,EAAU,MAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAA;AACA,MAAM,uBAAA,GAA0B,WAAA;AAEhC,MAAM,gBAAA,0BAA0B,uBAAuB,CAAA;AACvD,MAAM,YAAA,0BAAsB,4BAA4B,CAAA;AACxD,MAAM,eAAA,0BAAyB,8BAA8B,CAAA;AAC7D,MAAM,gBAAA,0BAA0B,+BAA+B,CAAA;AAC/D,MAAM,oBAAA,0BAA8B,mCAAmC,CAAA;AACvE,MAAM,iBAAA,0BAA2B,gCAAgC,CAAA;AAS1D,MAAM,0BAAA,UAAmC,EAAA,GAAAC,mCAAA,EAM7C,EAAA,GAAA,iBAAA,EAN6C,EAAA,EAAoD;AAAA,EAQlG,WAAA,CAAY,MAAA,GAAyC,EAAC,EAAG;AACvD,IAAA,KAAA,CAAM,YAAA,EAAc,iBAAiB,MAAM,CAAA;AAR7C,IAAA,IAAA,CAAA,WAAA,GAAmB,IAAA;AACnB,IAAA,IAAA,CAAA,YAAA,GAA4D,IAAA;AAC5D,IAAA,IAAA,CAAA,cAAA,GAA2D,IAAA;AAC3D,IAAA,IAAA,CAAA,qBAAA,GAA8D,MAAA;AAE9D,IAAA,IAAA,CAAC,EAAA,CAAA,GAA8B,IAAA;AAI7B,IAAA,IAAA,CAAK,cAAcC,QAAA,CAAK,qBAAA,CAAsB,EAAE,SAAA,EAAW,cAAc,CAAA;AACzE,IAAA,IAAA,CAAK,iBAAiB,CAAA,GAAI,IAAA;AAE1B,IAAA,IAAI,MAAA,EAAQ,oBAAoB,IAAA,EAAM;AACpC,MAAA,IAAI,OAAO,MAAA,CAAO,gBAAA,KAAqB,SAAA,EAAW;AAChD,QAAA,MAAM,IAAI,UAAU,oCAAoC,CAAA;AAAA,MAC1D;AAEA,MAAA,IAAA,CAAK,iBAAiB,IAAI,MAAA,CAAO,gBAAA;AAAA,IACnC;AACA,IAAA,IAAI,OAAO,MAAA,EAAQ,WAAA,KAAgB,UAAA,EAAY;AAC7C,MAAA,IAAA,CAAK,eAAe,MAAA,CAAO,WAAA;AAAA,IAC7B;AACA,IAAA,IAAI,OAAO,MAAA,EAAQ,aAAA,KAAkB,UAAA,EAAY;AAC/C,MAAA,IAAA,CAAK,iBAAiB,MAAA,CAAO,aAAA;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,MAAA,GAAc;AACZ,IAAA,IAAI,KAAK,qBAAA,KAA0B,MAAA,IAAa,IAAA,CAAK,SAAA,GAAY,wBAAA,EAA0B;AACzF,MAAA,IAAA,CAAK,qBAAA,GAAwB,CAAC,OAAA,KAAiB;AAC7C,QAAA,IAAA,CAAK,MAAA,EAAO,CAAE,OAAA,CAAQ,OAAA,EAAS,QAAW,MAAM;AAAA,QAAC,CAAC,CAAA;AAClD,QAAA,MAAM,WAAA,GAAmB,CAAC,CAAA,EAAQ,EAAA,EAAS,IAAA,KAAqB;AAC9D,UAAA,IAAA,EAAK;AAAA,QACP,CAAA;AACA,QAAA,WAAA,iBAAY,MAAA,CAAO,GAAA,CAAI,eAAe,CAAC,CAAA,GAAI,IAAA;AAC3C,QAAA,WAAA,iBAAY,MAAA,CAAO,GAAA,CAAI,sBAAsB,CAAC,CAAA,GAAI,YAAA;AAClD,QAAA,OAAA,CAAQ,OAAA,CAAQ,SAAS,WAAW,CAAA;AAAA,MACtC,CAAA;AACA,MAAA,EAAA,CAAG,SAAA,CAAU,wBAAA,EAA0B,IAAA,CAAK,qBAAqB,CAAA;AAAA,IACnE;AACA,IAAA,OAAO,MAAM,MAAA,EAAO;AAAA,EACtB;AAAA,EAEA,OAAA,GAAe;AACb,IAAA,IAAI,KAAK,qBAAA,EAAuB;AAC9B,MAAA,EAAA,CAAG,WAAA,CAAY,wBAAA,EAA0B,IAAA,CAAK,qBAAqB,CAAA;AACnE,MAAA,IAAA,CAAK,qBAAA,GAAwB,MAAA;AAAA,IAC/B;AACA,IAAA,OAAO,MAAM,OAAA,EAAQ;AAAA,EACvB;AAAA,EAEA,IAAA,GAAO;AACL,IAAA,OAAO,EAAC;AAAA,EACV;AAAA,EAEA,MAAA,GAAc;AACZ,IAAA,MAAM,eAAA,GAAkB,IAAA;AAExB,IAAA,MAAM,SAAA,GAAY,4BAAA;AAClB,IAAA,SAAA,iBAAU,MAAA,CAAO,GAAA,CAAI,eAAe,CAAC,CAAA,GAAI,IAAA;AACzC,IAAA,SAAA,iBAAU,MAAA,CAAO,GAAA,CAAI,sBAAsB,CAAC,CAAA,GAAI,YAAA;AAChD,IAAA,SAAA,iBAAU,MAAA,CAAO,GAAA,CAAI,aAAa,CAAC,CAAA,GAAI;AAAA,MACrC,OAAA,EAAS,kBAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACR;AAEA,IAAA,OAAO,4BAAA;AAEP,IAAA,SAAS,4BAAA,CAA6B,QAAA,EAAe,KAAA,EAAY,IAAA,EAAkB;AACjF,MAAA,QAAA,CAAS,QAAA,CAAS,kBAAkB,eAAe,CAAA;AACnD,MAAA,QAAA,CAAS,QAAA,CAAS,gBAAA,EAAkB,QAAA,CAAS,OAAO,CAAA;AACpD,MAAA,QAAA,CAAS,QAAA,CAAS,oBAAA,EAAsB,QAAA,CAAS,kBAAkB,CAAA;AACnE,MAAA,QAAA,CAAS,eAAA,CAAgB,eAAA,EAAiB,SAAS,aAAA,GAAyB;AAC1E,QAAA,MAAM,GAAA,GAAM,KAAK,eAAe,CAAA;AAChC,QAAA,MAAM,IAAA,GAAO,KAAK,YAAY,CAAA;AAE9B,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,IAAA,CAAK,YAAA,CAAa,MAAA,EAAQ,IAAA,KAAS,KAAA;AAAA,UAC5C,IAAA;AAAA,UACA,QAAQ,eAAA,CAAgB,MAAA;AAAA,UACxB,OAAA,EAAS,GAAA;AAAA,UACT,MAAA,EAAQ,CAAC,OAAA,EAAc,MAAA,KAAiB;AACtC,YAAA,OAAOC,eAAA,CAAY,MAAA,CAAO,GAAA,EAAK,OAAA,EAAS,MAAM,CAAA;AAAA,UAChD,CAAA;AAAA,UACA,OAAA,EAAS,CAAC,OAAA,EAAc,MAAA,KAAiB;AACvC,YAAA,OAAOA,eAAA,CAAY,OAAA,CAAQ,GAAA,EAAK,OAAA,EAAS,MAAM,CAAA;AAAA,UACjD;AAAA,SACF;AAAA,MACF,CAAC,CAAA;AACD,MAAA,QAAA,CAAS,eAAA,CAAgB,cAAc,IAAI,CAAA;AAC3C,MAAA,QAAA,CAAS,eAAA,CAAgB,iBAAiB,IAAI,CAAA;AAE9C,MAAA,QAAA,CAAS,OAAA,CAAQ,SAAA,EAAW,SAAS,aAAA,CAAyB,YAAA,EAAmB;AAC/E,QAAA,IAAI,YAAA,CAAa,MAAA,EAAQ,IAAA,KAAS,KAAA,EAAO;AACvC,UAAA,eAAA,CAAgB,WAAA,CAAY,KAAA;AAAA,YAC1B,CAAA,+BAAA,EAAkC,YAAA,CAAa,MAAM,CAAA,CAAA,EAAI,aAAa,GAAG,CAAA,uBAAA;AAAA,WAC3E;AAEA,UAAA;AAAA,QACF;AAEA,QAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAChC,UAAA,IAAI,YAAA,CAAa,IAAI,CAAA,IAAK,IAAA,EAAM;AAC9B,YAAA,MAAM,WAAA,GAAc,aAAa,IAAI,CAAA;AAErC,YAAA,IAAI,OAAO,gBAAgB,UAAA,EAAY;AACrC,cAAA,YAAA,CAAa,IAAI,CAAA,GAAI,cAAA,CAAe,WAAA,EAAa,IAAA,EAAM;AAAA,gBACrD,CAAC,gBAAgB,SAAS,GAAG,GAAG,IAAA,CAAK,UAAU,eAAe,IAAI,CAAA,CAAA;AAAA,gBAClE,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,KAAA;AAAA,gBAC3C,CAACC,mCAAe,GAAG,YAAA,CAAa,GAAA;AAAA,gBAChC,CAAC,gBAAgB,kBAAkB,GACjC,YAAY,IAAA,EAAM,MAAA,GAAS,CAAA,GAAI,WAAA,CAAY,IAAA,GAAO;AAAA,eACrD,CAAA;AAAA,YACH,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,EAAG;AACrC,cAAA,MAAM,kBAAyB,EAAC;AAEhC,cAAA,KAAA,MAAW,WAAW,WAAA,EAAa;AACjC,gBAAA,eAAA,CAAgB,IAAA;AAAA,kBACd,cAAA,CAAe,SAAS,IAAA,EAAM;AAAA,oBAC5B,CAAC,gBAAgB,SAAS,GAAG,GAAG,IAAA,CAAK,UAAU,eAAe,IAAI,CAAA,CAAA;AAAA,oBAClE,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,KAAA;AAAA,oBAC3C,CAACA,mCAAe,GAAG,YAAA,CAAa,GAAA;AAAA,oBAChC,CAAC,gBAAgB,kBAAkB,GACjC,QAAQ,IAAA,EAAM,MAAA,GAAS,CAAA,GAAI,OAAA,CAAQ,IAAA,GAAO;AAAA,mBAC7C;AAAA,iBACH;AAAA,cACF;AAEA,cAAA,YAAA,CAAa,IAAI,CAAA,GAAI,eAAA;AAAA,YACvB;AAAA,UACF;AAAA,QACF;AAEA,QAAA,IAAI,YAAA,CAAa,UAAU,IAAA,EAAM;AAC/B,UAAA,YAAA,CAAa,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,YAAA,CAAa,MAAM,CAAA,GACnD,CAAC,GAAG,YAAA,CAAa,QAAQ,wBAAwB,CAAA,GACjD,CAAC,YAAA,CAAa,QAAQ,wBAAwB,CAAA;AAAA,QACpD,CAAA,MAAO;AACL,UAAA,YAAA,CAAa,MAAA,GAAS,wBAAA;AAAA,QACxB;AAEA,QAAA,IAAI,YAAA,CAAa,WAAW,IAAA,EAAM;AAChC,UAAA,YAAA,CAAa,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,YAAA,CAAa,OAAO,CAAA,GACrD,CAAC,GAAG,YAAA,CAAa,SAAS,qBAAqB,CAAA,GAC/C,CAAC,YAAA,CAAa,SAAS,qBAAqB,CAAA;AAAA,QAClD,CAAA,MAAO;AACL,UAAA,YAAA,CAAa,OAAA,GAAU,qBAAA;AAAA,QACzB;AAEA,QAAA,YAAA,CAAa,OAAA,GAAU,cAAA,CAAe,YAAA,CAAa,OAAA,EAAS,SAAA,EAAW;AAAA,UACrE,CAAC,eAAA,CAAgB,SAAS,GAAG,CAAA,EAAG,KAAK,UAAU,CAAA,gBAAA,CAAA;AAAA,UAC/C,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,OAAA;AAAA,UAC3C,CAACA,mCAAe,GAAG,YAAA,CAAa,GAAA;AAAA,UAChC,CAAC,eAAA,CAAgB,kBAAkB,GACjC,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,MAAA,GAAS,CAAA,GAAI,YAAA,CAAa,OAAA,CAAQ,IAAA,GAAO;AAAA,SACtE,CAAA;AAAA,MACH,CAAC,CAAA;AAED,MAAA,QAAA,CAAS,OAAA;AAAA,QACP,WAAA;AAAA,QACA,SAAS,oBAAA,CAAgC,OAAA,EAAc,MAAA,EAAa,QAAA,EAAsB;AACxF,UAAA,IAAI,IAAA,CAAK,gBAAgB,CAAA,CAAE,SAAA,EAAU,KAAM,SAAS,OAAA,CAAQ,YAAA,CAAa,MAAA,EAAQ,IAAA,KAAS,KAAA,EAAO;AAC/F,YAAA,OAAO,QAAA,EAAS;AAAA,UAClB;AAEA,UAAA,IAAI,GAAA,GAAMC,YAAQ,MAAA,EAAO;AAEzB,UAAA,IAAIC,SAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,IAAK,IAAA,EAAM;AAC9B,YAAA,GAAA,GAAMH,eAAA,CAAY,OAAA,CAAQ,GAAA,EAAK,OAAA,CAAQ,OAAO,CAAA;AAAA,UAChD;AAEA,UAAA,IAAI,OAAA,CAAQ,YAAA,CAAa,GAAA,IAAO,IAAA,EAAM;AACpC,YAAAI,+DAAA,CAAgC,OAAA,CAAQ,aAAa,GAAG,CAAA;AAAA,UAC1D;AAEA,UAAA,MAAM,UAAA,GAAqC;AAAA,YACzC,CAAC,eAAA,CAAgB,IAAI,GAAG,YAAA;AAAA,YACxB,CAACC,4CAAwB,GAAG,OAAA,CAAQ,MAAA;AAAA,YACpC,CAACC,iCAAa,GAAG,OAAA,CAAQ;AAAA,WAC3B;AAEA,UAAA,IAAI,OAAA,CAAQ,YAAA,CAAa,GAAA,IAAO,IAAA,EAAM;AACpC,YAAA,UAAA,CAAWL,mCAAe,CAAA,GAAI,OAAA,CAAQ,YAAA,CAAa,GAAA;AAAA,UACrD;AAEA,UAAA,MAAM,IAAA,GAAO,IAAA,CAAK,gBAAgB,CAAA,CAAE,MAAA,CAAO,UAAU,SAAA,EAAW,EAAE,UAAA,EAAW,EAAG,GAAG,CAAA;AAEnF,UAAA,IAAI;AACF,YAAA,IAAA,CAAK,gBAAgB,CAAA,CAAE,YAAA,GAAe,IAAA,EAAM,OAAO,CAAA;AAAA,UACrD,SAAS,GAAA,EAAK;AACZ,YAAA,IAAA,CAAK,gBAAgB,CAAA,CAAE,WAAA,CAAY,MAAM,EAAE,GAAA,IAAO,mBAAmB,CAAA;AAAA,UACvE;AAEA,UAAA,OAAA,CAAQ,eAAe,CAAA,GAAIE,SAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,CAAA;AAClD,UAAA,OAAA,CAAQ,YAAY,CAAA,GAAI,IAAA;AAExB,UAAAD,WAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,eAAe,CAAA,EAAG,MAAM;AAC3C,YAAA,QAAA,EAAS;AAAA,UACX,CAAC,CAAA;AAAA,QACH;AAAA,OACF;AAEA,MAAA,QAAA,CAAS,QAAQ,YAAA,EAAc,SAAS,wBAAA,CAAyB,OAAA,EAAc,OAAY,QAAA,EAAsB;AAC/G,QAAA,MAAM,IAAA,GAAO,QAAQ,YAAY,CAAA;AAEjC,QAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,UAAA,IAAA,CAAK,aAAA,CAAc;AAAA,YACjB,CAACK,kDAA8B,GAAG,KAAA,CAAM;AAAA,WACzC,CAAA;AACD,UAAA,IAAA,CAAK,GAAA,EAAI;AAAA,QACX;AAEA,QAAA,OAAA,CAAQ,YAAY,CAAA,GAAI,IAAA;AAExB,QAAA,QAAA,EAAS;AAAA,MACX,CAAC,CAAA;AAED,MAAA,QAAA,CAAS,OAAA,GAAU,cAAA;AACnB,MAAA,QAAA,CAAS,kBAAA,GAAqB,yBAAA;AAE9B,MAAA,IAAA,EAAK;AAEL,MAAA,SAAS,wBAAA,CACP,OAAA,EACA,KAAA,EACA,OAAA,EACA,QAAA,EACA;AACA,QAAA,MAAM,IAAA,GAAO,QAAQ,YAAY,CAAA;AAEjC,QAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,UAAA,IAAI,KAAA,CAAM,cAAc,GAAA,EAAK;AAC3B,YAAA,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAMC,kBAAA,CAAe,OAAO,CAAA;AAAA,UAC/C;AAEA,UAAA,IAAA,CAAK,aAAA,CAAc;AAAA,YACjB,CAACD,kDAA8B,GAAG,KAAA,CAAM;AAAA,WACzC,CAAA;AACD,UAAA,IAAA,CAAK,GAAA,EAAI;AAAA,QACX;AAEA,QAAA,OAAA,CAAQ,YAAY,CAAA,GAAI,IAAA;AAExB,QAAA,QAAA,CAAS,MAAM,OAAO,CAAA;AAAA,MACxB;AAEA,MAAA,SAAS,qBAAA,CAAsB,OAAA,EAAc,MAAA,EAAa,KAAA,EAAY,QAAA,EAAsB;AAC1F,QAAA,MAAM,IAAA,GAAO,QAAQ,YAAY,CAAA;AAEjC,QAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,UAAA,IAAA,CAAK,SAAA,CAAU;AAAA,YACb,MAAMC,kBAAA,CAAe,KAAA;AAAA,YACrB,SAAS,KAAA,CAAM;AAAA,WAChB,CAAA;AACD,UAAA,IAAI,eAAA,CAAgB,iBAAiB,CAAA,KAAM,KAAA,EAAO;AAChD,YAAA,IAAA,CAAK,gBAAgB,KAAK,CAAA;AAAA,UAC5B;AAAA,QACF;AAEA,QAAA,QAAA,EAAS;AAAA,MACX;AAEA,MAAA,SAAS,cAAA,CAA0B,MAAc,IAAA,EAA+B;AAC9E,QAAA,MAAM,eAAA,GAAkB,KAAK,gBAAgB,CAAA;AAE7C,QAAA,IAAI,aAAA,CAAc,QAAA,CAAS,IAAI,CAAA,EAAG;AAChC,UAAA,OAAO,eAAA,CAAgB,IAAA;AAAA,YACrB,IAAA;AAAA,YACA,IAAA;AAAA,YACA,cAAA,CAAe,MAAM,IAAA,EAAM;AAAA,cACzB,CAAC,gBAAgB,SAAS,GAAG,GAAG,IAAA,CAAK,UAAU,MAAM,IAAI,CAAA,CAAA;AAAA,cACzD,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,QAAA;AAAA,cAC3C,CAAC,gBAAgB,kBAAkB,GAAG,KAAK,IAAA,EAAM,MAAA,GAAS,CAAA,GAAI,IAAA,CAAK,IAAA,GAAO;AAAA,aAC3E;AAAA,WACH;AAAA,QACF,CAAA,MAAO;AACL,UAAA,OAAO,eAAA,CAAgB,IAAA,CAAK,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,QAC9C;AAAA,MACF;AAEA,MAAA,SAAS,yBAAA,CAAqC,OAAY,OAAA,EAAe;AACvE,QAAA,MAAM,0BAAA,GAA6B,KAAK,oBAAoB,CAAA;AAC5D,QAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,UAAA,OAAA,GAAU,cAAA,CAAe,OAAO,iBAAA,EAAmB;AAAA,YACjD,CAAC,eAAA,CAAgB,SAAS,GAAG,CAAA,EAAG,KAAK,UAAU,CAAA,oBAAA,CAAA;AAAA,YAC/C,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,QAAA;AAAA,YAC3C,CAAC,gBAAgB,kBAAkB,GAAG,MAAM,IAAA,EAAM,MAAA,GAAS,CAAA,GAAI,KAAA,CAAM,IAAA,GAAO;AAAA,WAC7E,CAAA;AACD,UAAA,0BAAA,CAA2B,IAAA,CAAK,MAAM,OAAO,CAAA;AAAA,QAC/C,CAAA,MAAO;AACL,UAAA,IAAI,KAAA,CAAM,iBAAiB,IAAA,EAAM;AAC/B,YAAA,KAAA,CAAM,aAAA,GAAgB,cAAA,CAAe,KAAA,CAAM,aAAA,EAAe,iCAAA,EAAmC;AAAA,cAC3F,CAAC,eAAA,CAAgB,SAAS,GAAG,CAAA,EAAG,KAAK,UAAU,CAAA,oCAAA,CAAA;AAAA,cAC/C,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,QAAA;AAAA,cAC3C,CAAC,eAAA,CAAgB,kBAAkB,GACjC,KAAA,CAAM,aAAA,CAAc,IAAA,EAAM,MAAA,GAAS,CAAA,GAAI,KAAA,CAAM,aAAA,CAAc,IAAA,GAAO;AAAA,aACrE,CAAA;AAAA,UACH;AAEA,UAAA,IAAI,KAAA,CAAM,cAAc,IAAA,EAAM;AAC5B,YAAA,KAAA,CAAM,UAAA,GAAa,cAAA,CAAe,KAAA,CAAM,UAAA,EAAY,8BAAA,EAAgC;AAAA,cAClF,CAAC,eAAA,CAAgB,SAAS,GAAG,CAAA,EAAG,KAAK,UAAU,CAAA,iCAAA,CAAA;AAAA,cAC/C,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,QAAA;AAAA,cAC3C,CAAC,eAAA,CAAgB,kBAAkB,GACjC,KAAA,CAAM,UAAA,CAAW,IAAA,EAAM,MAAA,GAAS,CAAA,GAAI,KAAA,CAAM,UAAA,CAAW,IAAA,GAAO;AAAA,aAC/D,CAAA;AAAA,UACH;AAEA,UAAA,OAAA,GAAU,cAAA,CAAe,SAAS,iBAAA,EAAmB;AAAA,YACnD,CAAC,eAAA,CAAgB,SAAS,GAAG,CAAA,EAAG,KAAK,UAAU,CAAA,oBAAA,CAAA;AAAA,YAC/C,CAAC,eAAA,CAAgB,YAAY,GAAG,UAAA,CAAW,QAAA;AAAA,YAC3C,CAAC,gBAAgB,kBAAkB,GAAG,QAAQ,IAAA,EAAM,MAAA,GAAS,CAAA,GAAI,OAAA,CAAQ,IAAA,GAAO;AAAA,WACjF,CAAA;AACD,UAAA,0BAAA,CAA2B,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,OAAO,CAAA;AAAA,QACtD;AAAA,MACF;AAEA,MAAA,SAAS,mBAAmB,IAAA,EAAa;AACvC,QAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,UAAA,IAAI,GAAA,EAAK,YAAA,IAAgB,GAAA,CAAI,GAAA,IAAO,IAAI,MAAA,EAAQ;AAC9C,YAAA,OAAO,GAAA;AAAA,UACT;AAAA,QACF;AACA,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,SAAS,cAAA,CACP,OAAA,EACA,QAAA,EACA,cAAA,GAAyC,EAAC,EAC1C;AACA,QAAA,OAAO,SAAS,kBAA6B,IAAA,EAAa;AACxD,UAAA,MAAMC,gBAAAA,GAA8C,KAAK,gBAAgB,CAAA;AAEzE,UAAA,MAAM,OAAA,GAAU,mBAAmB,IAAI,CAAA;AACvC,UAAA,IAAI,YAAY,IAAA,EAAM;AACpB,YAAAA,iBAAgB,WAAA,CAAY,KAAA;AAAA,cAC1B,0CAA0C,QAAQ,CAAA,8CAAA;AAAA,aACpD;AACA,YAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAA,EAAM,GAAG,IAAI,CAAA;AAAA,UACnC;AAEA,UAAA,IAAIA,gBAAAA,CAAgB,WAAU,KAAM,KAAA,IAAS,QAAQ,YAAA,CAAa,MAAA,EAAQ,SAAS,KAAA,EAAO;AACxF,YAAAA,iBAAgB,WAAA,CAAY,KAAA;AAAA,cAC1B,kCAAkC,OAAA,CAAQ,YAAA,CAAa,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,aAAa,GAAG,CAAA,uBAAA;AAAA,aAC3F;AACA,YAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAA,EAAM,GAAG,IAAI,CAAA;AAAA,UACnC;AAEA,UAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,eAAe,CAAA,IAAKP,YAAQ,MAAA,EAAO;AACvD,UAAA,MAAM,WAAA,GAAc,QAAQ,IAAA,EAAM,MAAA,GAAS,IAAI,OAAA,CAAQ,IAAA,GAAQ,KAAK,UAAA,IAAc,uBAAA;AAElF,UAAA,MAAM,IAAA,GAAOO,iBAAgB,MAAA,CAAO,SAAA;AAAA,YAClC,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,WAAW,CAAA,CAAA;AAAA,YAC5B;AAAA,cACE,UAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,WACF;AAEA,UAAA,IAAIA,gBAAAA,CAAgB,kBAAkB,IAAA,EAAM;AAC1C,YAAA,IAAI;AACF,cAAAA,gBAAAA,CAAgB,eAAe,IAAA,EAAM;AAAA,gBACnC,QAAA;AAAA,gBACA,OAAA;AAAA,gBACA,OAAA,EAAS;AAAA,eACV,CAAA;AAAA,YACH,SAAS,GAAA,EAAK;AACZ,cAAAA,iBAAgB,WAAA,CAAY,KAAA,CAAM,EAAE,GAAA,IAAO,mCAAmC,CAAA;AAAA,YAChF;AAAA,UACF;AAEA,UAAA,OAAOP,WAAA,CAAQ,IAAA;AAAA,YACbC,SAAA,CAAM,OAAA,CAAQ,GAAA,EAAK,IAAI,CAAA;AAAA,YACvB,WAAqB;AACnB,cAAA,IAAI;AACF,gBAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,IAAA,CAAK,IAAA,EAAM,GAAG,IAAI,CAAA;AAEtC,gBAAA,IAAI,OAAO,GAAA,EAAK,IAAA,KAAS,UAAA,EAAY;AACnC,kBAAA,OAAO,GAAA,CAAI,IAAA;AAAA,oBACT,CAAC,MAAA,KAAgB;AACf,sBAAA,IAAA,CAAK,GAAA,EAAI;AACT,sBAAA,OAAO,MAAA;AAAA,oBACT,CAAA;AAAA,oBACA,CAAC,KAAA,KAAe;AACd,sBAAA,IAAA,CAAK,SAAA,CAAU;AAAA,wBACb,MAAMK,kBAAA,CAAe,KAAA;AAAA,wBACrB,SAAS,KAAA,CAAM;AAAA,uBAChB,CAAA;AACD,sBAAA,IAAIC,gBAAAA,CAAgB,iBAAiB,CAAA,KAAM,KAAA,EAAO;AAChD,wBAAA,IAAA,CAAK,gBAAgB,KAAK,CAAA;AAAA,sBAC5B;AACA,sBAAA,IAAA,CAAK,GAAA,EAAI;AACT,sBAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,oBAC7B;AAAA,mBACF;AAAA,gBACF;AAEA,gBAAA,IAAA,CAAK,GAAA,EAAI;AACT,gBAAA,OAAO,GAAA;AAAA,cACT,SAAS,KAAA,EAAY;AACnB,gBAAA,IAAA,CAAK,SAAA,CAAU;AAAA,kBACb,MAAMD,kBAAA,CAAe,KAAA;AAAA,kBACrB,SAAS,KAAA,CAAM;AAAA,iBAChB,CAAA;AACD,gBAAA,IAAIC,gBAAAA,CAAgB,iBAAiB,CAAA,KAAM,KAAA,EAAO;AAChD,kBAAA,IAAA,CAAK,gBAAgB,KAAK,CAAA;AAAA,gBAC5B;AACA,gBAAA,IAAA,CAAK,GAAA,EAAI;AACT,gBAAA,MAAM,KAAA;AAAA,cACR;AAAA,YACF,CAAA;AAAA,YACA;AAAA,WACF;AAAA,QACF,CAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/hapi/vendored/semconv.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-hapi\n * - Upstream version: @opentelemetry/instrumentation-hapi@0.64.0\n */\n/* eslint-disable */\n\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexport const ATTR_HTTP_METHOD = 'http.method' as const;\n"],"names":[],"mappings":";;AAqBO,MAAM,gBAAA,GAAmB;;;;"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
|
|
3
|
-
var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {
|
|
4
|
-
AttributeNames2["MYSQL_VALUES"] = "db.mysql.values";
|
|
5
|
-
return AttributeNames2;
|
|
6
|
-
})(AttributeNames || {});
|
|
7
|
-
|
|
8
|
-
exports.AttributeNames = AttributeNames;
|
|
9
|
-
//# sourceMappingURL=AttributeNames.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeNames.js","sources":["../../../../../../src/integrations/tracing/mysql/vendored/AttributeNames.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-mysql\n * - Upstream version: @opentelemetry/instrumentation-mysql@0.64.0\n */\n/* eslint-disable */\n\n// Mysql specific attributes not covered by semantic conventions\nexport enum AttributeNames {\n MYSQL_VALUES = 'db.mysql.values',\n}\n"],"names":["AttributeNames"],"mappings":";;AAWO,IAAK,cAAA,qBAAAA,eAAAA,KAAL;AACL,EAAAA,gBAAA,cAAA,CAAA,GAAe,iBAAA;AADL,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;;;;"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
|
|
3
|
-
const serializationSubsets = [
|
|
4
|
-
{
|
|
5
|
-
regex: /^ECHO/i,
|
|
6
|
-
args: 0
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
regex: /^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,
|
|
10
|
-
args: 1
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
regex: /^(HSET|HMSET|LSET|LINSERT)/i,
|
|
14
|
-
args: 2
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
regex: /^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,
|
|
18
|
-
args: -1
|
|
19
|
-
}
|
|
20
|
-
];
|
|
21
|
-
const defaultDbStatementSerializer = (cmdName, cmdArgs) => {
|
|
22
|
-
if (Array.isArray(cmdArgs) && cmdArgs.length) {
|
|
23
|
-
const nArgsToSerialize = serializationSubsets.find(({ regex }) => regex.test(cmdName))?.args ?? 0;
|
|
24
|
-
const argsToSerialize = nArgsToSerialize >= 0 ? cmdArgs.slice(0, nArgsToSerialize) : cmdArgs.slice();
|
|
25
|
-
if (cmdArgs.length > argsToSerialize.length) {
|
|
26
|
-
argsToSerialize.push(`[${cmdArgs.length - nArgsToSerialize} other arguments]`);
|
|
27
|
-
}
|
|
28
|
-
return `${cmdName} ${argsToSerialize.join(" ")}`;
|
|
29
|
-
}
|
|
30
|
-
return cmdName;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
exports.defaultDbStatementSerializer = defaultDbStatementSerializer;
|
|
34
|
-
//# sourceMappingURL=redis-common.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis-common.js","sources":["../../../../../../src/integrations/tracing/redis/vendored/redis-common.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/instrumentation-redis-v0.62.0/packages/redis-common\n * - Upstream version: @opentelemetry/redis-common@0.38.2\n * - Minor TypeScript adjustments for this repository's compiler settings\n */\n/* eslint-disable -- vendored @opentelemetry/redis-common */\n\n/**\n * List of regexes and the number of arguments that should be serialized for matching commands.\n * For example, HSET should serialize which key and field it's operating on, but not its value.\n * Setting the subset to -1 will serialize all arguments.\n * Commands without a match will have their first argument serialized.\n *\n * Refer to https://redis.io/commands/ for the full list.\n */\nconst serializationSubsets = [\n {\n regex: /^ECHO/i,\n args: 0,\n },\n {\n regex: /^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,\n args: 1,\n },\n {\n regex: /^(HSET|HMSET|LSET|LINSERT)/i,\n args: 2,\n },\n {\n regex:\n /^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,\n args: -1,\n },\n];\n\n/**\n * Given the redis command name and arguments, return a combination of the\n * command name + the allowed arguments according to `serializationSubsets`.\n */\nexport const defaultDbStatementSerializer = (\n cmdName: string,\n cmdArgs: Array<string | Buffer | number | any[]>,\n): string => {\n if (Array.isArray(cmdArgs) && cmdArgs.length) {\n const nArgsToSerialize = serializationSubsets.find(({ regex }) => regex.test(cmdName))?.args ?? 0;\n const argsToSerialize: Array<string | Buffer | number | any[]> =\n nArgsToSerialize >= 0 ? cmdArgs.slice(0, nArgsToSerialize) : cmdArgs.slice();\n if (cmdArgs.length > argsToSerialize.length) {\n argsToSerialize.push(`[${cmdArgs.length - nArgsToSerialize} other arguments]`);\n }\n return `${cmdName} ${argsToSerialize.join(' ')}`;\n }\n return cmdName;\n};\n"],"names":[],"mappings":";;AAmBA,MAAM,oBAAA,GAAuB;AAAA,EAC3B;AAAA,IACE,KAAA,EAAO,QAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA;AAAA,IACE,KAAA,EAAO,8DAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA;AAAA,IACE,KAAA,EAAO,6BAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA;AAAA,IACE,KAAA,EACE,kLAAA;AAAA,IACF,IAAA,EAAM;AAAA;AAEV,CAAA;AAMO,MAAM,4BAAA,GAA+B,CAC1C,OAAA,EACA,OAAA,KACW;AACX,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,IAAK,QAAQ,MAAA,EAAQ;AAC5C,IAAA,MAAM,gBAAA,GAAmB,oBAAA,CAAqB,IAAA,CAAK,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,IAAA,CAAK,OAAO,CAAC,CAAA,EAAG,IAAA,IAAQ,CAAA;AAChG,IAAA,MAAM,eAAA,GACJ,oBAAoB,CAAA,GAAI,OAAA,CAAQ,MAAM,CAAA,EAAG,gBAAgB,CAAA,GAAI,OAAA,CAAQ,KAAA,EAAM;AAC7E,IAAA,IAAI,OAAA,CAAQ,MAAA,GAAS,eAAA,CAAgB,MAAA,EAAQ;AAC3C,MAAA,eAAA,CAAgB,IAAA,CAAK,CAAA,CAAA,EAAI,OAAA,CAAQ,MAAA,GAAS,gBAAgB,CAAA,iBAAA,CAAmB,CAAA;AAAA,IAC/E;AACA,IAAA,OAAO,GAAG,OAAO,CAAA,CAAA,EAAI,eAAA,CAAgB,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,EAChD;AACA,EAAA,OAAO,OAAA;AACT;;;;"}
|