@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongoose.js","sources":["../../../../../../src/integrations/tracing/mongoose/vendored/mongoose.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-mongoose\n * - Upstream version: @opentelemetry/instrumentation-mongoose@0.64.0\n * - Types vendored from mongoose as simplified interfaces\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport {\n type InstrumentationConfig,\n InstrumentationBase,\n type InstrumentationModuleDefinition,\n InstrumentationNodeModuleDefinition,\n} from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n getActiveSpan,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n startInactiveSpan,\n withActiveSpan,\n} from '@sentry/core';\nimport type * as mongoose from './mongoose-types';\nimport { ATTR_DB_OPERATION, ATTR_DB_SYSTEM } from './semconv';\nimport { getAttributesFromCollection, handleCallbackResponse, handlePromiseResponse } from './utils';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-mongoose';\nconst ORIGIN = 'auto.db.otel.mongoose';\n\ntype MongooseModuleExports = typeof mongoose;\n\n// The raw imported `mongoose` module: either the CJS object itself, or an ESM\n// namespace wrapper exposing the same shape under `.default`.\ntype MongooseModule = MongooseModuleExports & {\n default?: MongooseModuleExports;\n [Symbol.toStringTag]?: string;\n};\n\nconst contextCaptureFunctionsCommon = [\n 'deleteOne',\n 'deleteMany',\n 'find',\n 'findOne',\n 'estimatedDocumentCount',\n 'countDocuments',\n 'distinct',\n 'where',\n '$where',\n 'findOneAndUpdate',\n 'findOneAndDelete',\n 'findOneAndReplace',\n];\n\nconst contextCaptureFunctions6 = ['remove', 'count', 'findOneAndRemove', ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions7 = ['count', 'findOneAndRemove', ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions8 = [...contextCaptureFunctionsCommon];\n\nfunction getContextCaptureFunctions(moduleVersion: string | undefined): string[] {\n /* istanbul ignore next */\n if (!moduleVersion) {\n return contextCaptureFunctionsCommon;\n } else if (moduleVersion.startsWith('6.') || moduleVersion.startsWith('5.')) {\n return contextCaptureFunctions6;\n } else if (moduleVersion.startsWith('7.')) {\n return contextCaptureFunctions7;\n } else {\n return contextCaptureFunctions8;\n }\n}\n\nfunction instrumentRemove(moduleVersion: string | undefined): boolean {\n return (moduleVersion && (moduleVersion.startsWith('5.') || moduleVersion.startsWith('6.'))) || false;\n}\n\n/**\n * 8.21.0 changed Document.updateOne/deleteOne so that the Query is not fully built when Query.exec() is called.\n * @param moduleVersion\n */\nfunction needsDocumentMethodPatch(moduleVersion: string | undefined): boolean {\n if (!moduleVersion || !moduleVersion.startsWith('8.')) {\n return false;\n }\n\n const minor = parseInt(moduleVersion.split('.')[1]!, 10);\n return minor >= 21;\n}\n\n// when mongoose functions are called, we store the original call context\n// and then set it as the parent for the spans created by Query/Aggregate exec()\n// calls. this bypass the unlinked spans issue on thenables await operations.\nexport const _STORED_PARENT_SPAN: unique symbol = Symbol('stored-parent-span');\n\n// Prevents double-instrumentation when doc.updateOne/deleteOne (Mongoose 8.21.0+)\n// creates a span and returns a Query that also calls exec()\nexport const _ALREADY_INSTRUMENTED: unique symbol = Symbol('already-instrumented');\n\nexport class MongooseInstrumentation extends InstrumentationBase<InstrumentationConfig> {\n constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n protected init(): InstrumentationModuleDefinition {\n const module = new InstrumentationNodeModuleDefinition(\n 'mongoose',\n ['>=5.9.7 <10'],\n this.patch.bind(this),\n this.unpatch.bind(this),\n );\n return module;\n }\n\n private patch(module: MongooseModule, moduleVersion: string | undefined) {\n const moduleExports: MongooseModuleExports =\n module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n\n this._wrap(moduleExports.Model.prototype, 'save', this.patchOnModelMethods('save'));\n // mongoose applies this code on module require:\n // Model.prototype.$save = Model.prototype.save;\n // which captures the save function before it is patched.\n // so we need to apply the same logic after instrumenting the save function.\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n\n if (instrumentRemove(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, 'remove', this.patchOnModelMethods('remove'));\n }\n\n // Mongoose 8.21.0+ changed Document.updateOne()/deleteOne() so that the Query is not fully built when Query.exec() is called.\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, 'updateOne', this._patchDocumentUpdateMethods('updateOne'));\n this._wrap(moduleExports.Model.prototype, 'deleteOne', this._patchDocumentUpdateMethods('deleteOne'));\n }\n\n this._wrap(moduleExports.Query.prototype, 'exec', this.patchQueryExec());\n this._wrap(moduleExports.Aggregate.prototype, 'exec', this.patchAggregateExec());\n\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n\n contextCaptureFunctions.forEach((funcName: string) => {\n this._wrap(moduleExports.Query.prototype, funcName as any, this.patchAndCaptureSpanContext(funcName));\n });\n this._wrap(moduleExports.Model, 'aggregate', this.patchModelAggregate());\n\n this._wrap(moduleExports.Model, 'insertMany', this.patchModelStatic('insertMany'));\n this._wrap(moduleExports.Model, 'bulkWrite', this.patchModelStatic('bulkWrite'));\n\n return moduleExports;\n }\n\n private unpatch(module: MongooseModule, moduleVersion: string | undefined): void {\n const moduleExports: MongooseModuleExports =\n module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n\n this._unwrap(moduleExports.Model.prototype, 'save');\n // revert the patch for $save which we applied by aliasing it to patched `save`\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n\n if (instrumentRemove(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, 'remove');\n }\n\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, 'updateOne');\n this._unwrap(moduleExports.Model.prototype, 'deleteOne');\n }\n\n this._unwrap(moduleExports.Query.prototype, 'exec');\n this._unwrap(moduleExports.Aggregate.prototype, 'exec');\n\n contextCaptureFunctions.forEach((funcName: string) => {\n this._unwrap(moduleExports.Query.prototype, funcName as any);\n });\n this._unwrap(moduleExports.Model, 'aggregate');\n\n this._unwrap(moduleExports.Model, 'insertMany');\n this._unwrap(moduleExports.Model, 'bulkWrite');\n }\n\n private patchAggregateExec() {\n const self = this;\n return (originalAggregate: Function) => {\n return function exec(this: any, callback?: Function) {\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this._model.collection, this._model?.modelName, 'aggregate', parentSpan);\n\n return self._handleResponse(span, originalAggregate, this, arguments, callback);\n };\n };\n }\n\n private patchQueryExec() {\n const self = this;\n return (originalExec: Function) => {\n return function exec(this: any, callback?: Function) {\n // Skip if already instrumented by document instance method patch\n if (this[_ALREADY_INSTRUMENTED]) {\n return originalExec.apply(this, arguments);\n }\n\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this.mongooseCollection, this.model.modelName, this.op, parentSpan);\n\n return self._handleResponse(span, originalExec, this, arguments, callback);\n };\n };\n }\n\n private patchOnModelMethods(op: string) {\n const self = this;\n return (originalOnModelFunction: Function) => {\n return function method(this: any, options?: any, callback?: Function) {\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n\n if (options instanceof Function) {\n // oxlint-disable-next-line no-param-reassign\n callback = options;\n }\n\n return self._handleResponse(span, originalOnModelFunction, this, arguments, callback);\n };\n };\n }\n\n // Patch document instance methods (doc.updateOne/deleteOne) for Mongoose 8.21.0+.\n private _patchDocumentUpdateMethods(op: string) {\n const self = this;\n return (originalMethod: Function) => {\n return function method(this: any, update?: any, options?: any, callback?: Function) {\n // determine actual callback since different argument patterns are allowed\n let actualCallback: Function | undefined = callback;\n if (typeof update === 'function') {\n actualCallback = update;\n } else if (typeof options === 'function') {\n actualCallback = options;\n }\n\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n\n const result = self._handleResponse(span, originalMethod, this, arguments, actualCallback);\n\n // Mark returned Query to prevent double-instrumentation when exec() is eventually called\n if (result && typeof result === 'object') {\n result[_ALREADY_INSTRUMENTED] = true;\n }\n\n return result;\n };\n };\n }\n\n private patchModelStatic(op: string) {\n const self = this;\n return (original: Function) => {\n return function patchedStatic(this: any, docsOrOps: any, options?: any, callback?: Function) {\n if (typeof options === 'function') {\n // oxlint-disable-next-line no-param-reassign\n callback = options;\n }\n\n const span = self._startSpan(this.collection, this.modelName, op);\n\n return self._handleResponse(span, original, this, arguments, callback);\n };\n };\n }\n\n // we want to capture the otel span on the object which is calling exec.\n // in the special case of aggregate, we need have no function to path\n // on the Aggregate object to capture the context on, so we patch\n // the aggregate of Model, and set the context on the Aggregate object\n private patchModelAggregate() {\n return (original: Function) => {\n return function captureSpanContext(this: any) {\n const currentSpan = getActiveSpan();\n const aggregate = original.apply(this, arguments);\n if (aggregate) aggregate[_STORED_PARENT_SPAN] = currentSpan;\n return aggregate;\n };\n };\n }\n\n private patchAndCaptureSpanContext(_funcName: string) {\n return (original: Function) => {\n return function captureSpanContext(this: any) {\n this[_STORED_PARENT_SPAN] = getActiveSpan();\n return original.apply(this, arguments);\n };\n };\n }\n\n private _startSpan(collection: mongoose.Collection, modelName: string, operation: string, parentSpan?: Span): Span {\n const attributes: SpanAttributes = {\n ...getAttributesFromCollection(collection),\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_OPERATION]: operation,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: 'mongoose', // keep for backwards compatibility\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n\n return startInactiveSpan({\n name: `mongoose.${modelName}.${operation}`,\n kind: SPAN_KIND.CLIENT,\n attributes,\n parentSpan,\n });\n }\n\n private _handleResponse(span: Span, exec: Function, originalThis: any, args: IArguments, callback?: Function) {\n // Activate the span while the underlying operation runs so that nested instrumentation\n // (e.g. the mongodb driver spans) is parented to this span. `withActiveSpan` returns the\n // callback's result untouched, so lazy mongoose Query thenables are handed back unexecuted.\n return withActiveSpan(span, () => {\n if (callback instanceof Function) {\n return handleCallbackResponse(callback, exec, originalThis, span, args);\n } else {\n const response = exec.apply(originalThis, args);\n return handlePromiseResponse(response, span);\n }\n });\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","InstrumentationNodeModuleDefinition","getActiveSpan","getAttributesFromCollection","ATTR_DB_OPERATION","ATTR_DB_SYSTEM","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","startInactiveSpan","SPAN_KIND","withActiveSpan","handleCallbackResponse","handlePromiseResponse"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mongoose.js","sources":["../../../../../../src/integrations/tracing/mongoose/vendored/mongoose.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-mongoose\n * - Upstream version: @opentelemetry/instrumentation-mongoose@0.64.0\n * - Types vendored from mongoose as simplified interfaces\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport {\n type InstrumentationConfig,\n InstrumentationBase,\n type InstrumentationModuleDefinition,\n InstrumentationNodeModuleDefinition,\n} from '@opentelemetry/instrumentation';\nimport { DB_OPERATION, DB_SYSTEM } from '@sentry/conventions/attributes';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n getActiveSpan,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n startInactiveSpan,\n withActiveSpan,\n} from '@sentry/core';\nimport type * as mongoose from './mongoose-types';\nimport { getAttributesFromCollection, handleCallbackResponse, handlePromiseResponse } from './utils';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-mongoose';\nconst ORIGIN = 'auto.db.otel.mongoose';\n\ntype MongooseModuleExports = typeof mongoose;\n\n// The raw imported `mongoose` module: either the CJS object itself, or an ESM\n// namespace wrapper exposing the same shape under `.default`.\ntype MongooseModule = MongooseModuleExports & {\n default?: MongooseModuleExports;\n [Symbol.toStringTag]?: string;\n};\n\nconst contextCaptureFunctionsCommon = [\n 'deleteOne',\n 'deleteMany',\n 'find',\n 'findOne',\n 'estimatedDocumentCount',\n 'countDocuments',\n 'distinct',\n 'where',\n '$where',\n 'findOneAndUpdate',\n 'findOneAndDelete',\n 'findOneAndReplace',\n];\n\nconst contextCaptureFunctions6 = ['remove', 'count', 'findOneAndRemove', ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions7 = ['count', 'findOneAndRemove', ...contextCaptureFunctionsCommon];\nconst contextCaptureFunctions8 = [...contextCaptureFunctionsCommon];\n\nfunction getContextCaptureFunctions(moduleVersion: string | undefined): string[] {\n /* istanbul ignore next */\n if (!moduleVersion) {\n return contextCaptureFunctionsCommon;\n } else if (moduleVersion.startsWith('6.') || moduleVersion.startsWith('5.')) {\n return contextCaptureFunctions6;\n } else if (moduleVersion.startsWith('7.')) {\n return contextCaptureFunctions7;\n } else {\n return contextCaptureFunctions8;\n }\n}\n\nfunction instrumentRemove(moduleVersion: string | undefined): boolean {\n return (moduleVersion && (moduleVersion.startsWith('5.') || moduleVersion.startsWith('6.'))) || false;\n}\n\n/**\n * 8.21.0 changed Document.updateOne/deleteOne so that the Query is not fully built when Query.exec() is called.\n * @param moduleVersion\n */\nfunction needsDocumentMethodPatch(moduleVersion: string | undefined): boolean {\n if (!moduleVersion || !moduleVersion.startsWith('8.')) {\n return false;\n }\n\n const minor = parseInt(moduleVersion.split('.')[1]!, 10);\n return minor >= 21;\n}\n\n// when mongoose functions are called, we store the original call context\n// and then set it as the parent for the spans created by Query/Aggregate exec()\n// calls. this bypass the unlinked spans issue on thenables await operations.\nexport const _STORED_PARENT_SPAN: unique symbol = Symbol('stored-parent-span');\n\n// Prevents double-instrumentation when doc.updateOne/deleteOne (Mongoose 8.21.0+)\n// creates a span and returns a Query that also calls exec()\nexport const _ALREADY_INSTRUMENTED: unique symbol = Symbol('already-instrumented');\n\nexport class MongooseInstrumentation extends InstrumentationBase<InstrumentationConfig> {\n constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n protected init(): InstrumentationModuleDefinition {\n const module = new InstrumentationNodeModuleDefinition(\n 'mongoose',\n // mongoose >= 9.7.0 publishes via diagnostics_channel and is instrumented by\n // `subscribeMongooseDiagnosticChannels` instead, so this IITM patcher must not\n // overlap it — otherwise every operation would emit two mongoose spans.\n ['>=5.9.7 <9.7.0'],\n this.patch.bind(this),\n this.unpatch.bind(this),\n );\n return module;\n }\n\n private patch(module: MongooseModule, moduleVersion: string | undefined) {\n const moduleExports: MongooseModuleExports =\n module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n\n this._wrap(moduleExports.Model.prototype, 'save', this.patchOnModelMethods('save'));\n // mongoose applies this code on module require:\n // Model.prototype.$save = Model.prototype.save;\n // which captures the save function before it is patched.\n // so we need to apply the same logic after instrumenting the save function.\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n\n if (instrumentRemove(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, 'remove', this.patchOnModelMethods('remove'));\n }\n\n // Mongoose 8.21.0+ changed Document.updateOne()/deleteOne() so that the Query is not fully built when Query.exec() is called.\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._wrap(moduleExports.Model.prototype, 'updateOne', this._patchDocumentUpdateMethods('updateOne'));\n this._wrap(moduleExports.Model.prototype, 'deleteOne', this._patchDocumentUpdateMethods('deleteOne'));\n }\n\n this._wrap(moduleExports.Query.prototype, 'exec', this.patchQueryExec());\n this._wrap(moduleExports.Aggregate.prototype, 'exec', this.patchAggregateExec());\n\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n\n contextCaptureFunctions.forEach((funcName: string) => {\n this._wrap(moduleExports.Query.prototype, funcName as any, this.patchAndCaptureSpanContext(funcName));\n });\n this._wrap(moduleExports.Model, 'aggregate', this.patchModelAggregate());\n\n this._wrap(moduleExports.Model, 'insertMany', this.patchModelStatic('insertMany'));\n this._wrap(moduleExports.Model, 'bulkWrite', this.patchModelStatic('bulkWrite'));\n\n return moduleExports;\n }\n\n private unpatch(module: MongooseModule, moduleVersion: string | undefined): void {\n const moduleExports: MongooseModuleExports =\n module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n\n const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n\n this._unwrap(moduleExports.Model.prototype, 'save');\n // revert the patch for $save which we applied by aliasing it to patched `save`\n moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n\n if (instrumentRemove(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, 'remove');\n }\n\n if (needsDocumentMethodPatch(moduleVersion)) {\n this._unwrap(moduleExports.Model.prototype, 'updateOne');\n this._unwrap(moduleExports.Model.prototype, 'deleteOne');\n }\n\n this._unwrap(moduleExports.Query.prototype, 'exec');\n this._unwrap(moduleExports.Aggregate.prototype, 'exec');\n\n contextCaptureFunctions.forEach((funcName: string) => {\n this._unwrap(moduleExports.Query.prototype, funcName as any);\n });\n this._unwrap(moduleExports.Model, 'aggregate');\n\n this._unwrap(moduleExports.Model, 'insertMany');\n this._unwrap(moduleExports.Model, 'bulkWrite');\n }\n\n private patchAggregateExec() {\n const self = this;\n return (originalAggregate: Function) => {\n return function exec(this: any, callback?: Function) {\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this._model.collection, this._model?.modelName, 'aggregate', parentSpan);\n\n return self._handleResponse(span, originalAggregate, this, arguments, callback);\n };\n };\n }\n\n private patchQueryExec() {\n const self = this;\n return (originalExec: Function) => {\n return function exec(this: any, callback?: Function) {\n // Skip if already instrumented by document instance method patch\n if (this[_ALREADY_INSTRUMENTED]) {\n return originalExec.apply(this, arguments);\n }\n\n const parentSpan = this[_STORED_PARENT_SPAN];\n const span = self._startSpan(this.mongooseCollection, this.model.modelName, this.op, parentSpan);\n\n return self._handleResponse(span, originalExec, this, arguments, callback);\n };\n };\n }\n\n private patchOnModelMethods(op: string) {\n const self = this;\n return (originalOnModelFunction: Function) => {\n return function method(this: any, options?: any, callback?: Function) {\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n\n if (options instanceof Function) {\n // oxlint-disable-next-line no-param-reassign\n callback = options;\n }\n\n return self._handleResponse(span, originalOnModelFunction, this, arguments, callback);\n };\n };\n }\n\n // Patch document instance methods (doc.updateOne/deleteOne) for Mongoose 8.21.0+.\n private _patchDocumentUpdateMethods(op: string) {\n const self = this;\n return (originalMethod: Function) => {\n return function method(this: any, update?: any, options?: any, callback?: Function) {\n // determine actual callback since different argument patterns are allowed\n let actualCallback: Function | undefined = callback;\n if (typeof update === 'function') {\n actualCallback = update;\n } else if (typeof options === 'function') {\n actualCallback = options;\n }\n\n const span = self._startSpan(this.constructor.collection, this.constructor.modelName, op);\n\n const result = self._handleResponse(span, originalMethod, this, arguments, actualCallback);\n\n // Mark returned Query to prevent double-instrumentation when exec() is eventually called\n if (result && typeof result === 'object') {\n result[_ALREADY_INSTRUMENTED] = true;\n }\n\n return result;\n };\n };\n }\n\n private patchModelStatic(op: string) {\n const self = this;\n return (original: Function) => {\n return function patchedStatic(this: any, docsOrOps: any, options?: any, callback?: Function) {\n if (typeof options === 'function') {\n // oxlint-disable-next-line no-param-reassign\n callback = options;\n }\n\n const span = self._startSpan(this.collection, this.modelName, op);\n\n return self._handleResponse(span, original, this, arguments, callback);\n };\n };\n }\n\n // we want to capture the otel span on the object which is calling exec.\n // in the special case of aggregate, we need have no function to path\n // on the Aggregate object to capture the context on, so we patch\n // the aggregate of Model, and set the context on the Aggregate object\n private patchModelAggregate() {\n return (original: Function) => {\n return function captureSpanContext(this: any) {\n const currentSpan = getActiveSpan();\n const aggregate = original.apply(this, arguments);\n if (aggregate) aggregate[_STORED_PARENT_SPAN] = currentSpan;\n return aggregate;\n };\n };\n }\n\n private patchAndCaptureSpanContext(_funcName: string) {\n return (original: Function) => {\n return function captureSpanContext(this: any) {\n this[_STORED_PARENT_SPAN] = getActiveSpan();\n return original.apply(this, arguments);\n };\n };\n }\n\n private _startSpan(collection: mongoose.Collection, modelName: string, operation: string, parentSpan?: Span): Span {\n const attributes: SpanAttributes = {\n ...getAttributesFromCollection(collection),\n // oxlint-disable-next-line typescript/no-deprecated\n [DB_OPERATION]: operation,\n // oxlint-disable-next-line typescript/no-deprecated\n [DB_SYSTEM]: 'mongoose', // keep for backwards compatibility\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n\n return startInactiveSpan({\n name: `mongoose.${modelName}.${operation}`,\n kind: SPAN_KIND.CLIENT,\n attributes,\n parentSpan,\n });\n }\n\n private _handleResponse(span: Span, exec: Function, originalThis: any, args: IArguments, callback?: Function) {\n // Activate the span while the underlying operation runs so that nested instrumentation\n // (e.g. the mongodb driver spans) is parented to this span. `withActiveSpan` returns the\n // callback's result untouched, so lazy mongoose Query thenables are handed back unexecuted.\n return withActiveSpan(span, () => {\n if (callback instanceof Function) {\n return handleCallbackResponse(callback, exec, originalThis, span, args);\n } else {\n const response = exec.apply(originalThis, args);\n return handlePromiseResponse(response, span);\n }\n });\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","InstrumentationNodeModuleDefinition","getActiveSpan","attributes","getAttributesFromCollection","DB_OPERATION","DB_SYSTEM","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","startInactiveSpan","SPAN_KIND","withActiveSpan","handleCallbackResponse","handlePromiseResponse"],"mappings":";;;;;;;AA+BA,MAAM,YAAA,GAAe,kCAAA;AACrB,MAAM,MAAA,GAAS,uBAAA;AAWf,MAAM,6BAAA,GAAgC;AAAA,EACpC,WAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,wBAAA;AAAA,EACA,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA;AAEA,MAAM,2BAA2B,CAAC,QAAA,EAAU,OAAA,EAAS,kBAAA,EAAoB,GAAG,6BAA6B,CAAA;AACzG,MAAM,wBAAA,GAA2B,CAAC,OAAA,EAAS,kBAAA,EAAoB,GAAG,6BAA6B,CAAA;AAC/F,MAAM,wBAAA,GAA2B,CAAC,GAAG,6BAA6B,CAAA;AAElE,SAAS,2BAA2B,aAAA,EAA6C;AAE/E,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,6BAAA;AAAA,EACT,CAAA,MAAA,IAAW,cAAc,UAAA,CAAW,IAAI,KAAK,aAAA,CAAc,UAAA,CAAW,IAAI,CAAA,EAAG;AAC3E,IAAA,OAAO,wBAAA;AAAA,EACT,CAAA,MAAA,IAAW,aAAA,CAAc,UAAA,CAAW,IAAI,CAAA,EAAG;AACzC,IAAA,OAAO,wBAAA;AAAA,EACT,CAAA,MAAO;AACL,IAAA,OAAO,wBAAA;AAAA,EACT;AACF;AAEA,SAAS,iBAAiB,aAAA,EAA4C;AACpE,EAAA,OAAQ,aAAA,KAAkB,cAAc,UAAA,CAAW,IAAI,KAAK,aAAA,CAAc,UAAA,CAAW,IAAI,CAAA,CAAA,IAAO,KAAA;AAClG;AAMA,SAAS,yBAAyB,aAAA,EAA4C;AAC5E,EAAA,IAAI,CAAC,aAAA,IAAiB,CAAC,aAAA,CAAc,UAAA,CAAW,IAAI,CAAA,EAAG;AACrD,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,KAAA,GAAQ,SAAS,aAAA,CAAc,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,GAAI,EAAE,CAAA;AACvD,EAAA,OAAO,KAAA,IAAS,EAAA;AAClB;AAKO,MAAM,mBAAA,0BAA4C,oBAAoB;AAItE,MAAM,qBAAA,0BAA8C,sBAAsB;AAE1E,MAAM,gCAAgCA,mCAAA,CAA2C;AAAA,EACtF,WAAA,CAAY,MAAA,GAAgC,EAAC,EAAG;AAC9C,IAAA,KAAA,CAAM,YAAA,EAAcC,kBAAa,MAAM,CAAA;AAAA,EACzC;AAAA,EAEU,IAAA,GAAwC;AAChD,IAAA,MAAM,SAAS,IAAIC,mDAAA;AAAA,MACjB,UAAA;AAAA;AAAA;AAAA;AAAA,MAIA,CAAC,gBAAgB,CAAA;AAAA,MACjB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAAA,MACpB,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI;AAAA,KACxB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEQ,KAAA,CAAM,QAAwB,aAAA,EAAmC;AACvE,IAAA,MAAM,aAAA,GACJ,OAAO,MAAA,CAAO,WAAW,MAAM,QAAA,IAAY,MAAA,CAAO,OAAA,GAAU,MAAA,CAAO,OAAA,GAAU,MAAA;AAE/E,IAAA,IAAA,CAAK,KAAA,CAAM,cAAc,KAAA,CAAM,SAAA,EAAW,QAAQ,IAAA,CAAK,mBAAA,CAAoB,MAAM,CAAC,CAAA;AAKlF,IAAA,aAAA,CAAc,KAAA,CAAM,SAAA,CAAU,KAAA,GAAQ,aAAA,CAAc,MAAM,SAAA,CAAU,IAAA;AAEpE,IAAA,IAAI,gBAAA,CAAiB,aAAa,CAAA,EAAG;AACnC,MAAA,IAAA,CAAK,KAAA,CAAM,cAAc,KAAA,CAAM,SAAA,EAAW,UAAU,IAAA,CAAK,mBAAA,CAAoB,QAAQ,CAAC,CAAA;AAAA,IACxF;AAGA,IAAA,IAAI,wBAAA,CAAyB,aAAa,CAAA,EAAG;AAC3C,MAAA,IAAA,CAAK,KAAA,CAAM,cAAc,KAAA,CAAM,SAAA,EAAW,aAAa,IAAA,CAAK,2BAAA,CAA4B,WAAW,CAAC,CAAA;AACpG,MAAA,IAAA,CAAK,KAAA,CAAM,cAAc,KAAA,CAAM,SAAA,EAAW,aAAa,IAAA,CAAK,2BAAA,CAA4B,WAAW,CAAC,CAAA;AAAA,IACtG;AAEA,IAAA,IAAA,CAAK,MAAM,aAAA,CAAc,KAAA,CAAM,WAAW,MAAA,EAAQ,IAAA,CAAK,gBAAgB,CAAA;AACvE,IAAA,IAAA,CAAK,MAAM,aAAA,CAAc,SAAA,CAAU,WAAW,MAAA,EAAQ,IAAA,CAAK,oBAAoB,CAAA;AAE/E,IAAA,MAAM,uBAAA,GAA0B,2BAA2B,aAAa,CAAA;AAExE,IAAA,uBAAA,CAAwB,OAAA,CAAQ,CAAC,QAAA,KAAqB;AACpD,MAAA,IAAA,CAAK,KAAA,CAAM,cAAc,KAAA,CAAM,SAAA,EAAW,UAAiB,IAAA,CAAK,0BAAA,CAA2B,QAAQ,CAAC,CAAA;AAAA,IACtG,CAAC,CAAA;AACD,IAAA,IAAA,CAAK,MAAM,aAAA,CAAc,KAAA,EAAO,WAAA,EAAa,IAAA,CAAK,qBAAqB,CAAA;AAEvE,IAAA,IAAA,CAAK,MAAM,aAAA,CAAc,KAAA,EAAO,cAAc,IAAA,CAAK,gBAAA,CAAiB,YAAY,CAAC,CAAA;AACjF,IAAA,IAAA,CAAK,MAAM,aAAA,CAAc,KAAA,EAAO,aAAa,IAAA,CAAK,gBAAA,CAAiB,WAAW,CAAC,CAAA;AAE/E,IAAA,OAAO,aAAA;AAAA,EACT;AAAA,EAEQ,OAAA,CAAQ,QAAwB,aAAA,EAAyC;AAC/E,IAAA,MAAM,aAAA,GACJ,OAAO,MAAA,CAAO,WAAW,MAAM,QAAA,IAAY,MAAA,CAAO,OAAA,GAAU,MAAA,CAAO,OAAA,GAAU,MAAA;AAE/E,IAAA,MAAM,uBAAA,GAA0B,2BAA2B,aAAa,CAAA;AAExE,IAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,CAAM,SAAA,EAAW,MAAM,CAAA;AAElD,IAAA,aAAA,CAAc,KAAA,CAAM,SAAA,CAAU,KAAA,GAAQ,aAAA,CAAc,MAAM,SAAA,CAAU,IAAA;AAEpE,IAAA,IAAI,gBAAA,CAAiB,aAAa,CAAA,EAAG;AACnC,MAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,CAAM,SAAA,EAAW,QAAQ,CAAA;AAAA,IACtD;AAEA,IAAA,IAAI,wBAAA,CAAyB,aAAa,CAAA,EAAG;AAC3C,MAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,CAAM,SAAA,EAAW,WAAW,CAAA;AACvD,MAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,CAAM,SAAA,EAAW,WAAW,CAAA;AAAA,IACzD;AAEA,IAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,CAAM,SAAA,EAAW,MAAM,CAAA;AAClD,IAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,SAAA,CAAU,SAAA,EAAW,MAAM,CAAA;AAEtD,IAAA,uBAAA,CAAwB,OAAA,CAAQ,CAAC,QAAA,KAAqB;AACpD,MAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,CAAM,SAAA,EAAW,QAAe,CAAA;AAAA,IAC7D,CAAC,CAAA;AACD,IAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,EAAO,WAAW,CAAA;AAE7C,IAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,EAAO,YAAY,CAAA;AAC9C,IAAA,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,KAAA,EAAO,WAAW,CAAA;AAAA,EAC/C;AAAA,EAEQ,kBAAA,GAAqB;AAC3B,IAAA,MAAM,IAAA,GAAO,IAAA;AACb,IAAA,OAAO,CAAC,iBAAA,KAAgC;AACtC,MAAA,OAAO,SAAS,KAAgB,QAAA,EAAqB;AACnD,QAAA,MAAM,UAAA,GAAa,KAAK,mBAAmB,CAAA;AAC3C,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,MAAA,CAAO,YAAY,IAAA,CAAK,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAa,UAAU,CAAA;AAEpG,QAAA,OAAO,KAAK,eAAA,CAAgB,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,WAAW,QAAQ,CAAA;AAAA,MAChF,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AAAA,EAEQ,cAAA,GAAiB;AACvB,IAAA,MAAM,IAAA,GAAO,IAAA;AACb,IAAA,OAAO,CAAC,YAAA,KAA2B;AACjC,MAAA,OAAO,SAAS,KAAgB,QAAA,EAAqB;AAEnD,QAAA,IAAI,IAAA,CAAK,qBAAqB,CAAA,EAAG;AAC/B,UAAA,OAAO,YAAA,CAAa,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,QAC3C;AAEA,QAAA,MAAM,UAAA,GAAa,KAAK,mBAAmB,CAAA;AAC3C,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,kBAAA,EAAoB,KAAK,KAAA,CAAM,SAAA,EAAW,IAAA,CAAK,EAAA,EAAI,UAAU,CAAA;AAE/F,QAAA,OAAO,KAAK,eAAA,CAAgB,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,WAAW,QAAQ,CAAA;AAAA,MAC3E,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AAAA,EAEQ,oBAAoB,EAAA,EAAY;AACtC,IAAA,MAAM,IAAA,GAAO,IAAA;AACb,IAAA,OAAO,CAAC,uBAAA,KAAsC;AAC5C,MAAA,OAAO,SAAS,MAAA,CAAkB,OAAA,EAAe,QAAA,EAAqB;AACpE,QAAA,MAAM,IAAA,GAAO,KAAK,UAAA,CAAW,IAAA,CAAK,YAAY,UAAA,EAAY,IAAA,CAAK,WAAA,CAAY,SAAA,EAAW,EAAE,CAAA;AAExF,QAAA,IAAI,mBAAmB,QAAA,EAAU;AAE/B,UAAA,QAAA,GAAW,OAAA;AAAA,QACb;AAEA,QAAA,OAAO,KAAK,eAAA,CAAgB,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,WAAW,QAAQ,CAAA;AAAA,MACtF,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AAAA;AAAA,EAGQ,4BAA4B,EAAA,EAAY;AAC9C,IAAA,MAAM,IAAA,GAAO,IAAA;AACb,IAAA,OAAO,CAAC,cAAA,KAA6B;AACnC,MAAA,OAAO,SAAS,MAAA,CAAkB,MAAA,EAAc,OAAA,EAAe,QAAA,EAAqB;AAElF,QAAA,IAAI,cAAA,GAAuC,QAAA;AAC3C,QAAA,IAAI,OAAO,WAAW,UAAA,EAAY;AAChC,UAAA,cAAA,GAAiB,MAAA;AAAA,QACnB,CAAA,MAAA,IAAW,OAAO,OAAA,KAAY,UAAA,EAAY;AACxC,UAAA,cAAA,GAAiB,OAAA;AAAA,QACnB;AAEA,QAAA,MAAM,IAAA,GAAO,KAAK,UAAA,CAAW,IAAA,CAAK,YAAY,UAAA,EAAY,IAAA,CAAK,WAAA,CAAY,SAAA,EAAW,EAAE,CAAA;AAExF,QAAA,MAAM,SAAS,IAAA,CAAK,eAAA,CAAgB,MAAM,cAAA,EAAgB,IAAA,EAAM,WAAW,cAAc,CAAA;AAGzF,QAAA,IAAI,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,EAAU;AACxC,UAAA,MAAA,CAAO,qBAAqB,CAAA,GAAI,IAAA;AAAA,QAClC;AAEA,QAAA,OAAO,MAAA;AAAA,MACT,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AAAA,EAEQ,iBAAiB,EAAA,EAAY;AACnC,IAAA,MAAM,IAAA,GAAO,IAAA;AACb,IAAA,OAAO,CAAC,QAAA,KAAuB;AAC7B,MAAA,OAAO,SAAS,aAAA,CAAyB,SAAA,EAAgB,OAAA,EAAe,QAAA,EAAqB;AAC3F,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AAEjC,UAAA,QAAA,GAAW,OAAA;AAAA,QACb;AAEA,QAAA,MAAM,OAAO,IAAA,CAAK,UAAA,CAAW,KAAK,UAAA,EAAY,IAAA,CAAK,WAAW,EAAE,CAAA;AAEhE,QAAA,OAAO,KAAK,eAAA,CAAgB,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,WAAW,QAAQ,CAAA;AAAA,MACvE,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,mBAAA,GAAsB;AAC5B,IAAA,OAAO,CAAC,QAAA,KAAuB;AAC7B,MAAA,OAAO,SAAS,kBAAA,GAA8B;AAC5C,QAAA,MAAM,cAAcC,kBAAA,EAAc;AAClC,QAAA,MAAM,SAAA,GAAY,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAChD,QAAA,IAAI,SAAA,EAAW,SAAA,CAAU,mBAAmB,CAAA,GAAI,WAAA;AAChD,QAAA,OAAO,SAAA;AAAA,MACT,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AAAA,EAEQ,2BAA2B,SAAA,EAAmB;AACpD,IAAA,OAAO,CAAC,QAAA,KAAuB;AAC7B,MAAA,OAAO,SAAS,kBAAA,GAA8B;AAC5C,QAAA,IAAA,CAAK,mBAAmB,IAAIA,kBAAA,EAAc;AAC1C,QAAA,OAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MACvC,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AAAA,EAEQ,UAAA,CAAW,UAAA,EAAiC,SAAA,EAAmB,SAAA,EAAmB,UAAA,EAAyB;AACjH,IAAA,MAAMC,YAAA,GAA6B;AAAA,MACjC,GAAGC,kCAA4B,UAAU,CAAA;AAAA;AAAA,MAEzC,CAACC,uBAAY,GAAG,SAAA;AAAA;AAAA,MAEhB,CAACC,oBAAS,GAAG,UAAA;AAAA;AAAA,MACb,CAACC,qCAAgC,GAAG;AAAA,KACtC;AAEA,IAAA,OAAOC,sBAAA,CAAkB;AAAA,MACvB,IAAA,EAAM,CAAA,SAAA,EAAY,SAAS,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAA,MACxC,MAAMC,cAAA,CAAU,MAAA;AAAA,kBAChBN,YAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEQ,eAAA,CAAgB,IAAA,EAAY,IAAA,EAAgB,YAAA,EAAmB,MAAkB,QAAA,EAAqB;AAI5G,IAAA,OAAOO,mBAAA,CAAe,MAAM,MAAM;AAChC,MAAA,IAAI,oBAAoB,QAAA,EAAU;AAChC,QAAA,OAAOC,4BAAA,CAAuB,QAAA,EAAU,IAAA,EAAM,YAAA,EAAc,MAAM,IAAI,CAAA;AAAA,MACxE,CAAA,MAAO;AACL,QAAA,MAAM,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,YAAA,EAAc,IAAI,CAAA;AAC9C,QAAA,OAAOC,2BAAA,CAAsB,UAAU,IAAI,CAAA;AAAA,MAC7C;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF;;;;;;"}
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
3
|
const ATTR_DB_MONGODB_COLLECTION = "db.mongodb.collection";
|
|
4
|
-
const ATTR_DB_NAME = "db.name";
|
|
5
|
-
const ATTR_DB_OPERATION = "db.operation";
|
|
6
|
-
const ATTR_DB_SYSTEM = "db.system";
|
|
7
|
-
const ATTR_DB_USER = "db.user";
|
|
8
|
-
const ATTR_NET_PEER_NAME = "net.peer.name";
|
|
9
|
-
const ATTR_NET_PEER_PORT = "net.peer.port";
|
|
10
4
|
|
|
11
5
|
exports.ATTR_DB_MONGODB_COLLECTION = ATTR_DB_MONGODB_COLLECTION;
|
|
12
|
-
exports.ATTR_DB_NAME = ATTR_DB_NAME;
|
|
13
|
-
exports.ATTR_DB_OPERATION = ATTR_DB_OPERATION;
|
|
14
|
-
exports.ATTR_DB_SYSTEM = ATTR_DB_SYSTEM;
|
|
15
|
-
exports.ATTR_DB_USER = ATTR_DB_USER;
|
|
16
|
-
exports.ATTR_NET_PEER_NAME = ATTR_NET_PEER_NAME;
|
|
17
|
-
exports.ATTR_NET_PEER_PORT = ATTR_NET_PEER_PORT;
|
|
18
6
|
//# sourceMappingURL=semconv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/mongoose/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-mongoose\n * - Upstream version: @opentelemetry/instrumentation-mongoose@0.64.0\n */\n\n/**\n * Deprecated, use `db.collection.name` instead.\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 `db.collection.name`.\n */\nexport const ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection' as const;\n
|
|
1
|
+
{"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/mongoose/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-mongoose\n * - Upstream version: @opentelemetry/instrumentation-mongoose@0.64.0\n */\n\n/**\n * Deprecated, use `db.collection.name` instead.\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 `db.collection.name`.\n */\nexport const ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection' as const;\n"],"names":[],"mappings":";;AAgBO,MAAM,0BAAA,GAA6B;;;;"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
|
+
const attributes = require('@sentry/conventions/attributes');
|
|
3
4
|
const core = require('@sentry/core');
|
|
4
5
|
const semconv = require('./semconv.js');
|
|
5
6
|
|
|
6
7
|
function getAttributesFromCollection(collection) {
|
|
7
8
|
return {
|
|
8
|
-
//
|
|
9
|
+
// oxlint-disable-next-line typescript/no-deprecated
|
|
9
10
|
[semconv.ATTR_DB_MONGODB_COLLECTION]: collection.name,
|
|
10
|
-
//
|
|
11
|
-
[
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
[semconv.ATTR_NET_PEER_PORT]: collection.conn.port
|
|
11
|
+
// oxlint-disable-next-line typescript/no-deprecated
|
|
12
|
+
[attributes.DB_NAME]: collection.conn.name,
|
|
13
|
+
[attributes.DB_USER]: collection.conn.user,
|
|
14
|
+
// oxlint-disable-next-line typescript/no-deprecated
|
|
15
|
+
[attributes.NET_PEER_NAME]: collection.conn.host,
|
|
16
|
+
// oxlint-disable-next-line typescript/no-deprecated
|
|
17
|
+
[attributes.NET_PEER_PORT]: collection.conn.port
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
function setErrorStatus(span, error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/mongoose/vendored/utils.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-mongoose\n * - Upstream version: @opentelemetry/instrumentation-mongoose@0.64.0\n * - Types vendored from mongoose as simplified interfaces\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport { SPAN_STATUS_ERROR } from '@sentry/core';\nimport type { Collection, MongooseError } from './mongoose-types';\nimport {
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/mongoose/vendored/utils.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-mongoose\n * - Upstream version: @opentelemetry/instrumentation-mongoose@0.64.0\n * - Types vendored from mongoose as simplified interfaces\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport { DB_NAME, DB_USER, NET_PEER_NAME, NET_PEER_PORT } from '@sentry/conventions/attributes';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport { SPAN_STATUS_ERROR } from '@sentry/core';\nimport type { Collection, MongooseError } from './mongoose-types';\nimport { ATTR_DB_MONGODB_COLLECTION } from './semconv';\n\nexport function getAttributesFromCollection(collection: Collection): SpanAttributes {\n return {\n // oxlint-disable-next-line typescript/no-deprecated\n [ATTR_DB_MONGODB_COLLECTION]: collection.name,\n // oxlint-disable-next-line typescript/no-deprecated\n [DB_NAME]: collection.conn.name,\n [DB_USER]: collection.conn.user,\n // oxlint-disable-next-line typescript/no-deprecated\n [NET_PEER_NAME]: collection.conn.host,\n // oxlint-disable-next-line typescript/no-deprecated\n [NET_PEER_PORT]: collection.conn.port,\n };\n}\n\nfunction setErrorStatus(span: Span, error: MongooseError): void {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: `${error.message} ${error.code ? `\\nMongoose Error Code: ${error.code}` : ''}`,\n });\n}\n\nexport function handlePromiseResponse(execResponse: any, span: Span): any {\n if (!(execResponse instanceof Promise)) {\n span.end();\n return execResponse;\n }\n\n return execResponse\n .catch((err: any) => {\n setErrorStatus(span, err);\n throw err;\n })\n .finally(() => span.end());\n}\n\nexport function handleCallbackResponse(\n callback: Function,\n exec: Function,\n originalThis: any,\n span: Span,\n args: IArguments,\n) {\n let callbackArgumentIndex = 0;\n if (args.length === 2) {\n callbackArgumentIndex = 1;\n } else if (args.length === 3) {\n callbackArgumentIndex = 2;\n }\n\n args[callbackArgumentIndex] = (err: Error, response: any): any => {\n if (err) {\n setErrorStatus(span, err);\n }\n\n span.end();\n return callback(err, response);\n };\n\n return exec.apply(originalThis, args);\n}\n"],"names":["ATTR_DB_MONGODB_COLLECTION","DB_NAME","DB_USER","NET_PEER_NAME","NET_PEER_PORT","SPAN_STATUS_ERROR"],"mappings":";;;;;;AAiBO,SAAS,4BAA4B,UAAA,EAAwC;AAClF,EAAA,OAAO;AAAA;AAAA,IAEL,CAACA,kCAA0B,GAAG,UAAA,CAAW,IAAA;AAAA;AAAA,IAEzC,CAACC,kBAAO,GAAG,UAAA,CAAW,IAAA,CAAK,IAAA;AAAA,IAC3B,CAACC,kBAAO,GAAG,UAAA,CAAW,IAAA,CAAK,IAAA;AAAA;AAAA,IAE3B,CAACC,wBAAa,GAAG,UAAA,CAAW,IAAA,CAAK,IAAA;AAAA;AAAA,IAEjC,CAACC,wBAAa,GAAG,UAAA,CAAW,IAAA,CAAK;AAAA,GACnC;AACF;AAEA,SAAS,cAAA,CAAe,MAAY,KAAA,EAA4B;AAC9D,EAAA,IAAA,CAAK,SAAA,CAAU;AAAA,IACb,IAAA,EAAMC,sBAAA;AAAA,IACN,SAAS,CAAA,EAAG,KAAA,CAAM,OAAO,CAAA,CAAA,EAAI,MAAM,IAAA,GAAO;AAAA,qBAAA,EAA0B,KAAA,CAAM,IAAI,CAAA,CAAA,GAAK,EAAE,CAAA;AAAA,GACtF,CAAA;AACH;AAEO,SAAS,qBAAA,CAAsB,cAAmB,IAAA,EAAiB;AACxE,EAAA,IAAI,EAAE,wBAAwB,OAAA,CAAA,EAAU;AACtC,IAAA,IAAA,CAAK,GAAA,EAAI;AACT,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,OAAO,YAAA,CACJ,KAAA,CAAM,CAAC,GAAA,KAAa;AACnB,IAAA,cAAA,CAAe,MAAM,GAAG,CAAA;AACxB,IAAA,MAAM,GAAA;AAAA,EACR,CAAC,CAAA,CACA,OAAA,CAAQ,MAAM,IAAA,CAAK,KAAK,CAAA;AAC7B;AAEO,SAAS,sBAAA,CACd,QAAA,EACA,IAAA,EACA,YAAA,EACA,MACA,IAAA,EACA;AACA,EAAA,IAAI,qBAAA,GAAwB,CAAA;AAC5B,EAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AACrB,IAAA,qBAAA,GAAwB,CAAA;AAAA,EAC1B,CAAA,MAAA,IAAW,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG;AAC5B,IAAA,qBAAA,GAAwB,CAAA;AAAA,EAC1B;AAEA,EAAA,IAAA,CAAK,qBAAqB,CAAA,GAAI,CAAC,GAAA,EAAY,QAAA,KAAuB;AAChE,IAAA,IAAI,GAAA,EAAK;AACP,MAAA,cAAA,CAAe,MAAM,GAAG,CAAA;AAAA,IAC1B;AAEA,IAAA,IAAA,CAAK,GAAA,EAAI;AACT,IAAA,OAAO,QAAA,CAAS,KAAK,QAAQ,CAAA;AAAA,EAC/B,CAAA;AAEA,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,YAAA,EAAc,IAAI,CAAA;AACtC;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/mysql/index.ts"],"sourcesContent":["import { MySQLInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql';\n\nexport const instrumentMysql = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQLInstrumentation({}));\n\nconst _mysqlIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql](https://www.npmjs.com/package/mysql) library.\n *\n * For more information, see the [`mysqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nexport const mysqlIntegration = defineIntegration(_mysqlIntegration);\n"],"names":["generateInstrumentOnce","MySQLInstrumentation","defineIntegration"],"mappings":";;;;;;AAKA,MAAM,gBAAA,GAAmB,OAAA;AAElB,MAAM,eAAA,GAAkBA,gCAAuB,gBAAA,EAAkB,MAAM,IAAIC,oCAAA,CAAqB,EAAE,CAAC;AAE1G,MAAM,qBAAqB,MAAM;AAC/B,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,eAAA,EAAgB;AAAA,IAClB;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,gBAAA,GAAmBC,uBAAkB,iBAAiB;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/mysql/index.ts"],"sourcesContent":["import { MySQLInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql' as const;\n\nexport const instrumentMysql = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQLInstrumentation({}));\n\nconst _mysqlIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentMysql();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql](https://www.npmjs.com/package/mysql) library.\n *\n * For more information, see the [`mysqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nexport const mysqlIntegration = defineIntegration(_mysqlIntegration);\n"],"names":["generateInstrumentOnce","MySQLInstrumentation","defineIntegration"],"mappings":";;;;;;AAKA,MAAM,gBAAA,GAAmB,OAAA;AAElB,MAAM,eAAA,GAAkBA,gCAAuB,gBAAA,EAAkB,MAAM,IAAIC,oCAAA,CAAqB,EAAE,CAAC;AAE1G,MAAM,qBAAqB,MAAM;AAC/B,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,eAAA,EAAgB;AAAA,IAClB;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,gBAAA,GAAmBC,uBAAkB,iBAAiB;;;;;"}
|
|
@@ -1,37 +1,16 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
|
-
const api = require('@opentelemetry/api');
|
|
4
3
|
const instrumentation = require('@opentelemetry/instrumentation');
|
|
5
|
-
const
|
|
4
|
+
const core = require('@sentry/core');
|
|
5
|
+
const attributes = require('@sentry/conventions/attributes');
|
|
6
6
|
const semconv = require('./semconv.js');
|
|
7
|
-
const AttributeNames = require('./AttributeNames.js');
|
|
8
7
|
const utils = require('./utils.js');
|
|
9
|
-
const core = require('@sentry/core');
|
|
10
8
|
|
|
11
9
|
const PACKAGE_NAME = "@sentry/instrumentation-mysql";
|
|
10
|
+
const ORIGIN = "auto.db.otel.mysql";
|
|
12
11
|
class MySQLInstrumentation extends instrumentation.InstrumentationBase {
|
|
13
12
|
constructor(config = {}) {
|
|
14
13
|
super(PACKAGE_NAME, core.SDK_VERSION, config);
|
|
15
|
-
this._setSemconvStabilityFromEnv();
|
|
16
|
-
}
|
|
17
|
-
// Used for testing.
|
|
18
|
-
_setSemconvStabilityFromEnv() {
|
|
19
|
-
this._netSemconvStability = instrumentation.semconvStabilityFromStr("http", process.env.OTEL_SEMCONV_STABILITY_OPT_IN);
|
|
20
|
-
this._dbSemconvStability = instrumentation.semconvStabilityFromStr("database", process.env.OTEL_SEMCONV_STABILITY_OPT_IN);
|
|
21
|
-
}
|
|
22
|
-
_updateMetricInstruments() {
|
|
23
|
-
this._connectionsUsageOld = this.meter.createUpDownCounter(semconv.METRIC_DB_CLIENT_CONNECTIONS_USAGE, {
|
|
24
|
-
description: "The number of connections that are currently in state described by the state attribute.",
|
|
25
|
-
unit: "{connection}"
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Convenience function for updating the `db.client.connections.usage` metric.
|
|
30
|
-
* The name "count" comes from the eventually replacement for this metric per
|
|
31
|
-
* https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count
|
|
32
|
-
*/
|
|
33
|
-
_connCountAdd(n, poolNameOld, state) {
|
|
34
|
-
this._connectionsUsageOld?.add(n, { state, name: poolNameOld });
|
|
35
14
|
}
|
|
36
15
|
init() {
|
|
37
16
|
return [
|
|
@@ -81,26 +60,10 @@ class MySQLInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
81
60
|
const pool = originalCreatePool(...arguments);
|
|
82
61
|
thisPlugin._wrap(pool, "query", thisPlugin._patchQuery(pool));
|
|
83
62
|
thisPlugin._wrap(pool, "getConnection", thisPlugin._patchGetConnection(pool));
|
|
84
|
-
thisPlugin._wrap(pool, "end", thisPlugin._patchPoolEnd(pool));
|
|
85
|
-
thisPlugin._setPoolCallbacks(pool, "");
|
|
86
63
|
return pool;
|
|
87
64
|
};
|
|
88
65
|
};
|
|
89
66
|
}
|
|
90
|
-
_patchPoolEnd(pool) {
|
|
91
|
-
return (originalPoolEnd) => {
|
|
92
|
-
const thisPlugin = this;
|
|
93
|
-
return function end(callback) {
|
|
94
|
-
const nAll = pool._allConnections.length;
|
|
95
|
-
const nFree = pool._freeConnections.length;
|
|
96
|
-
const nUsed = nAll - nFree;
|
|
97
|
-
const poolNameOld = utils.getPoolNameOld(pool);
|
|
98
|
-
thisPlugin._connCountAdd(-nUsed, poolNameOld, "used");
|
|
99
|
-
thisPlugin._connCountAdd(-nFree, poolNameOld, "idle");
|
|
100
|
-
originalPoolEnd.apply(pool, arguments);
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
67
|
// global export function
|
|
105
68
|
_patchCreatePoolCluster() {
|
|
106
69
|
return (originalCreatePoolCluster) => {
|
|
@@ -108,29 +71,10 @@ class MySQLInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
108
71
|
return function createPool(_config) {
|
|
109
72
|
const cluster = originalCreatePoolCluster(...arguments);
|
|
110
73
|
thisPlugin._wrap(cluster, "getConnection", thisPlugin._patchGetConnection(cluster));
|
|
111
|
-
thisPlugin._wrap(cluster, "add", thisPlugin._patchAdd(cluster));
|
|
112
74
|
return cluster;
|
|
113
75
|
};
|
|
114
76
|
};
|
|
115
77
|
}
|
|
116
|
-
_patchAdd(cluster) {
|
|
117
|
-
return (originalAdd) => {
|
|
118
|
-
const thisPlugin = this;
|
|
119
|
-
return function add(id, config) {
|
|
120
|
-
if (!thisPlugin["_enabled"]) {
|
|
121
|
-
thisPlugin._unwrap(cluster, "add");
|
|
122
|
-
return originalAdd.apply(cluster, arguments);
|
|
123
|
-
}
|
|
124
|
-
originalAdd.apply(cluster, arguments);
|
|
125
|
-
const nodes = cluster["_nodes"];
|
|
126
|
-
if (nodes) {
|
|
127
|
-
const nodeId = typeof id === "object" ? "CLUSTER::" + cluster._lastId : String(id);
|
|
128
|
-
const pool = nodes[nodeId].pool;
|
|
129
|
-
thisPlugin._setPoolCallbacks(pool, id);
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
78
|
// method on cluster or pool
|
|
135
79
|
_patchGetConnection(pool) {
|
|
136
80
|
return (originalGetConnection) => {
|
|
@@ -158,7 +102,7 @@ class MySQLInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
158
102
|
}
|
|
159
103
|
_getConnectionCallbackPatchFn(cb) {
|
|
160
104
|
const thisPlugin = this;
|
|
161
|
-
const
|
|
105
|
+
const scope = core.getCurrentScope();
|
|
162
106
|
return function(err, connection) {
|
|
163
107
|
if (connection) {
|
|
164
108
|
if (!instrumentation.isWrapped(connection.query)) {
|
|
@@ -166,7 +110,7 @@ class MySQLInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
166
110
|
}
|
|
167
111
|
}
|
|
168
112
|
if (typeof cb === "function") {
|
|
169
|
-
|
|
113
|
+
core.withScope(scope, () => cb.call(this, err, connection));
|
|
170
114
|
}
|
|
171
115
|
};
|
|
172
116
|
}
|
|
@@ -178,100 +122,63 @@ class MySQLInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
178
122
|
thisPlugin._unwrap(connection, "query");
|
|
179
123
|
return originalQuery.apply(connection, arguments);
|
|
180
124
|
}
|
|
181
|
-
const attributes = {};
|
|
182
125
|
const { host, port, database, user } = utils.getConfig(connection.config);
|
|
183
|
-
const portNumber = parseInt(port, 10);
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
attributes
|
|
187
|
-
|
|
188
|
-
attributes
|
|
189
|
-
attributes
|
|
190
|
-
attributes
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
attributes[
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
attributes[semconv.ATTR_NET_PEER_PORT] = portNumber;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
if (thisPlugin._netSemconvStability & instrumentation.SemconvStability.STABLE) {
|
|
204
|
-
attributes[semanticConventions.ATTR_SERVER_ADDRESS] = host;
|
|
205
|
-
if (!isNaN(portNumber)) {
|
|
206
|
-
attributes[semanticConventions.ATTR_SERVER_PORT] = portNumber;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
const span = thisPlugin.tracer.startSpan(utils.getSpanName(query), {
|
|
210
|
-
kind: api.SpanKind.CLIENT,
|
|
211
|
-
attributes
|
|
126
|
+
const portNumber = parseInt(String(port), 10);
|
|
127
|
+
const attributes$1 = {
|
|
128
|
+
[core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
|
|
129
|
+
[attributes.DB_SYSTEM]: semconv.DB_SYSTEM_VALUE_MYSQL,
|
|
130
|
+
[semconv.ATTR_DB_CONNECTION_STRING]: utils.getJDBCString(host, port, database),
|
|
131
|
+
[attributes.DB_NAME]: database,
|
|
132
|
+
[attributes.DB_USER]: user,
|
|
133
|
+
[attributes.DB_STATEMENT]: utils.getDbQueryText(query),
|
|
134
|
+
[attributes.NET_PEER_NAME]: host
|
|
135
|
+
};
|
|
136
|
+
if (!isNaN(portNumber)) {
|
|
137
|
+
attributes$1[attributes.NET_PEER_PORT] = portNumber;
|
|
138
|
+
}
|
|
139
|
+
const span = core.startInactiveSpan({
|
|
140
|
+
name: utils.getSpanName(query),
|
|
141
|
+
kind: core.SPAN_KIND.CLIENT,
|
|
142
|
+
attributes: attributes$1
|
|
212
143
|
});
|
|
213
|
-
if (thisPlugin.getConfig().enhancedDatabaseReporting) {
|
|
214
|
-
let values;
|
|
215
|
-
if (Array.isArray(_valuesOrCallback)) {
|
|
216
|
-
values = _valuesOrCallback;
|
|
217
|
-
} else if (arguments[2]) {
|
|
218
|
-
values = [_valuesOrCallback];
|
|
219
|
-
}
|
|
220
|
-
span.setAttribute(AttributeNames.AttributeNames.MYSQL_VALUES, utils.getDbValues(query, values));
|
|
221
|
-
}
|
|
222
144
|
const cbIndex = Array.from(arguments).findIndex((arg) => typeof arg === "function");
|
|
223
|
-
const
|
|
145
|
+
const scope = core.getCurrentScope();
|
|
224
146
|
if (cbIndex === -1) {
|
|
225
|
-
const streamableQuery =
|
|
147
|
+
const streamableQuery = core.withActiveSpan(span, () => {
|
|
226
148
|
return originalQuery.apply(connection, arguments);
|
|
227
149
|
});
|
|
228
|
-
|
|
229
|
-
return streamableQuery.on(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
code: api.SpanStatusCode.ERROR,
|
|
150
|
+
core.bindScopeToEmitter(streamableQuery, scope);
|
|
151
|
+
return streamableQuery.on("error", (err) => {
|
|
152
|
+
span.setStatus({
|
|
153
|
+
code: core.SPAN_STATUS_ERROR,
|
|
233
154
|
message: err.message
|
|
234
|
-
})
|
|
235
|
-
).on("end", () => {
|
|
155
|
+
});
|
|
156
|
+
}).on("end", () => {
|
|
236
157
|
span.end();
|
|
237
158
|
});
|
|
238
159
|
} else {
|
|
239
|
-
thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span,
|
|
240
|
-
return
|
|
160
|
+
thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span, scope));
|
|
161
|
+
return core.withActiveSpan(span, () => {
|
|
241
162
|
return originalQuery.apply(connection, arguments);
|
|
242
163
|
});
|
|
243
164
|
}
|
|
244
165
|
};
|
|
245
166
|
};
|
|
246
167
|
}
|
|
247
|
-
_patchCallbackQuery(span,
|
|
168
|
+
_patchCallbackQuery(span, scope) {
|
|
248
169
|
return (originalCallback) => {
|
|
249
|
-
return function(err,
|
|
170
|
+
return function(err, _results, _fields) {
|
|
250
171
|
if (err) {
|
|
251
172
|
span.setStatus({
|
|
252
|
-
code:
|
|
173
|
+
code: core.SPAN_STATUS_ERROR,
|
|
253
174
|
message: err.message
|
|
254
175
|
});
|
|
255
176
|
}
|
|
256
177
|
span.end();
|
|
257
|
-
return
|
|
178
|
+
return core.withScope(scope, () => originalCallback(...arguments));
|
|
258
179
|
};
|
|
259
180
|
};
|
|
260
181
|
}
|
|
261
|
-
_setPoolCallbacks(pool, id) {
|
|
262
|
-
const poolNameOld = id || utils.getPoolNameOld(pool);
|
|
263
|
-
pool.on("connection", (_connection) => {
|
|
264
|
-
this._connCountAdd(1, poolNameOld, "idle");
|
|
265
|
-
});
|
|
266
|
-
pool.on("acquire", (_connection) => {
|
|
267
|
-
this._connCountAdd(-1, poolNameOld, "idle");
|
|
268
|
-
this._connCountAdd(1, poolNameOld, "used");
|
|
269
|
-
});
|
|
270
|
-
pool.on("release", (_connection) => {
|
|
271
|
-
this._connCountAdd(1, poolNameOld, "idle");
|
|
272
|
-
this._connCountAdd(-1, poolNameOld, "used");
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
182
|
}
|
|
276
183
|
|
|
277
184
|
exports.MySQLInstrumentation = MySQLInstrumentation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/mysql/vendored/instrumentation.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 * - Types from the `mysql` package inlined as simplified interfaces\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n */\n/* eslint-disable */\n\nimport { context, Context, trace, Span, SpanKind, SpanStatusCode, type Attributes } from '@opentelemetry/api';\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition,\n isWrapped,\n SemconvStability,\n semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport {\n ATTR_DB_NAMESPACE,\n ATTR_DB_QUERY_TEXT,\n ATTR_DB_SYSTEM_NAME,\n ATTR_SERVER_ADDRESS,\n ATTR_SERVER_PORT,\n DB_SYSTEM_NAME_VALUE_MYSQL,\n} from '@opentelemetry/semantic-conventions';\nimport {\n ATTR_DB_CONNECTION_STRING,\n ATTR_DB_NAME,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_DB_USER,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n DB_SYSTEM_VALUE_MYSQL,\n METRIC_DB_CLIENT_CONNECTIONS_USAGE,\n} from './semconv';\nimport type * as mysqlTypes from './mysql-types';\nimport { AttributeNames } from './AttributeNames';\nimport { MySQLInstrumentationConfig } from './types';\nimport { getConfig, getDbQueryText, getDbValues, getJDBCString, getSpanName, getPoolNameOld } from './utils';\nimport { SDK_VERSION } from '@sentry/core';\nimport { UpDownCounter } from '@opentelemetry/api';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-mysql';\n\ntype getConnectionCallbackType = (err: mysqlTypes.MysqlError, connection: mysqlTypes.PoolConnection) => void;\n\nexport class MySQLInstrumentation extends InstrumentationBase<MySQLInstrumentationConfig> {\n private _netSemconvStability!: SemconvStability;\n private _dbSemconvStability!: SemconvStability;\n declare private _connectionsUsageOld: UpDownCounter;\n\n constructor(config: MySQLInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n this._setSemconvStabilityFromEnv();\n }\n\n // Used for testing.\n private _setSemconvStabilityFromEnv() {\n this._netSemconvStability = semconvStabilityFromStr('http', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n this._dbSemconvStability = semconvStabilityFromStr('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n\n protected override _updateMetricInstruments() {\n this._connectionsUsageOld = this.meter.createUpDownCounter(METRIC_DB_CLIENT_CONNECTIONS_USAGE, {\n description: 'The number of connections that are currently in state described by the state attribute.',\n unit: '{connection}',\n });\n }\n\n /**\n * Convenience function for updating the `db.client.connections.usage` metric.\n * The name \"count\" comes from the eventually replacement for this metric per\n * https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count\n */\n private _connCountAdd(n: number, poolNameOld: string, state: string) {\n this._connectionsUsageOld?.add(n, { state, name: poolNameOld });\n }\n\n protected init() {\n return [\n new InstrumentationNodeModuleDefinition(\n 'mysql',\n ['>=2.0.0 <3'],\n (moduleExports: typeof mysqlTypes) => {\n if (isWrapped(moduleExports.createConnection)) {\n this._unwrap(moduleExports, 'createConnection');\n }\n this._wrap(moduleExports, 'createConnection', this._patchCreateConnection() as any);\n\n if (isWrapped(moduleExports.createPool)) {\n this._unwrap(moduleExports, 'createPool');\n }\n this._wrap(moduleExports, 'createPool', this._patchCreatePool() as any);\n\n if (isWrapped(moduleExports.createPoolCluster)) {\n this._unwrap(moduleExports, 'createPoolCluster');\n }\n this._wrap(moduleExports, 'createPoolCluster', this._patchCreatePoolCluster() as any);\n\n return moduleExports;\n },\n (moduleExports: typeof mysqlTypes) => {\n if (moduleExports === undefined) return;\n this._unwrap(moduleExports, 'createConnection');\n this._unwrap(moduleExports, 'createPool');\n this._unwrap(moduleExports, 'createPoolCluster');\n },\n ),\n ];\n }\n\n // global export function\n private _patchCreateConnection() {\n return (originalCreateConnection: Function) => {\n const thisPlugin = this;\n\n return function createConnection(_connectionUri: string | mysqlTypes.ConnectionConfig) {\n const originalResult = originalCreateConnection(...arguments);\n\n // This is unwrapped on next call after unpatch\n thisPlugin._wrap(originalResult, 'query', thisPlugin._patchQuery(originalResult) as any);\n\n return originalResult;\n };\n };\n }\n\n // global export function\n private _patchCreatePool() {\n return (originalCreatePool: Function) => {\n const thisPlugin = this;\n return function createPool(_config: string | mysqlTypes.PoolConfig) {\n const pool = originalCreatePool(...arguments);\n\n thisPlugin._wrap(pool, 'query', thisPlugin._patchQuery(pool));\n thisPlugin._wrap(pool, 'getConnection', thisPlugin._patchGetConnection(pool));\n thisPlugin._wrap(pool, 'end', thisPlugin._patchPoolEnd(pool));\n thisPlugin._setPoolCallbacks(pool, '');\n\n return pool;\n };\n };\n }\n\n private _patchPoolEnd(pool: any) {\n return (originalPoolEnd: Function) => {\n const thisPlugin = this;\n return function end(callback?: unknown) {\n const nAll = (pool as any)._allConnections.length;\n const nFree = (pool as any)._freeConnections.length;\n const nUsed = nAll - nFree;\n const poolNameOld = getPoolNameOld(pool);\n thisPlugin._connCountAdd(-nUsed, poolNameOld, 'used');\n thisPlugin._connCountAdd(-nFree, poolNameOld, 'idle');\n originalPoolEnd.apply(pool, arguments);\n };\n };\n }\n\n // global export function\n private _patchCreatePoolCluster() {\n return (originalCreatePoolCluster: Function) => {\n const thisPlugin = this;\n return function createPool(_config: string | mysqlTypes.PoolConfig) {\n const cluster = originalCreatePoolCluster(...arguments);\n\n // This is unwrapped on next call after unpatch\n thisPlugin._wrap(cluster, 'getConnection', thisPlugin._patchGetConnection(cluster));\n thisPlugin._wrap(cluster, 'add', thisPlugin._patchAdd(cluster));\n\n return cluster;\n };\n };\n }\n private _patchAdd(cluster: mysqlTypes.PoolCluster) {\n return (originalAdd: Function) => {\n const thisPlugin = this;\n return function add(id: string, config: unknown) {\n // Unwrap if unpatch has been called\n if (!thisPlugin['_enabled']) {\n thisPlugin._unwrap(cluster, 'add');\n return originalAdd.apply(cluster, arguments);\n }\n originalAdd.apply(cluster, arguments);\n const nodes = cluster['_nodes' as keyof mysqlTypes.PoolCluster] as any;\n if (nodes) {\n const nodeId = typeof id === 'object' ? 'CLUSTER::' + (cluster as any)._lastId : String(id);\n\n const pool = nodes[nodeId].pool;\n thisPlugin._setPoolCallbacks(pool, id);\n }\n };\n };\n }\n\n // method on cluster or pool\n private _patchGetConnection(pool: mysqlTypes.Pool | mysqlTypes.PoolCluster) {\n return (originalGetConnection: Function) => {\n const thisPlugin = this;\n\n return function getConnection(arg1?: unknown, arg2?: unknown, arg3?: unknown) {\n // Unwrap if unpatch has been called\n if (!thisPlugin['_enabled']) {\n thisPlugin._unwrap(pool, 'getConnection');\n return originalGetConnection.apply(pool, arguments);\n }\n\n if (arguments.length === 1 && typeof arg1 === 'function') {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg1 as getConnectionCallbackType);\n return originalGetConnection.call(pool, patchFn);\n }\n if (arguments.length === 2 && typeof arg2 === 'function') {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg2 as getConnectionCallbackType);\n return originalGetConnection.call(pool, arg1, patchFn);\n }\n if (arguments.length === 3 && typeof arg3 === 'function') {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg3 as getConnectionCallbackType);\n return originalGetConnection.call(pool, arg1, arg2, patchFn);\n }\n\n return originalGetConnection.apply(pool, arguments);\n };\n };\n }\n\n private _getConnectionCallbackPatchFn(cb: getConnectionCallbackType) {\n const thisPlugin = this;\n const activeContext = context.active();\n return function (this: any, err: mysqlTypes.MysqlError, connection: mysqlTypes.PoolConnection) {\n if (connection) {\n // this is the callback passed into a query\n // no need to unwrap\n if (!isWrapped(connection.query)) {\n thisPlugin._wrap(connection, 'query', thisPlugin._patchQuery(connection));\n }\n }\n if (typeof cb === 'function') {\n context.with(activeContext, cb, this, err, connection);\n }\n };\n }\n\n private _patchQuery(connection: mysqlTypes.Connection | mysqlTypes.Pool) {\n return (originalQuery: Function): mysqlTypes.QueryFunction => {\n const thisPlugin = this;\n\n return function query(\n query: string | mysqlTypes.Query | mysqlTypes.QueryOptions,\n _valuesOrCallback?: unknown[] | mysqlTypes.queryCallback,\n _callback?: mysqlTypes.queryCallback,\n ) {\n if (!thisPlugin['_enabled']) {\n thisPlugin._unwrap(connection, 'query');\n return originalQuery.apply(connection, arguments);\n }\n\n const attributes: Attributes = {};\n const { host, port, database, user } = getConfig(connection.config);\n const portNumber = parseInt(port, 10);\n const dbQueryText = getDbQueryText(query);\n if (thisPlugin._dbSemconvStability & SemconvStability.OLD) {\n attributes[ATTR_DB_SYSTEM] = DB_SYSTEM_VALUE_MYSQL;\n attributes[ATTR_DB_CONNECTION_STRING] = getJDBCString(host, port, database);\n attributes[ATTR_DB_NAME] = database;\n attributes[ATTR_DB_USER] = user;\n attributes[ATTR_DB_STATEMENT] = dbQueryText;\n }\n if (thisPlugin._dbSemconvStability & SemconvStability.STABLE) {\n attributes[ATTR_DB_SYSTEM_NAME] = DB_SYSTEM_NAME_VALUE_MYSQL;\n attributes[ATTR_DB_NAMESPACE] = database;\n attributes[ATTR_DB_QUERY_TEXT] = dbQueryText;\n }\n if (thisPlugin._netSemconvStability & SemconvStability.OLD) {\n attributes[ATTR_NET_PEER_NAME] = host;\n if (!isNaN(portNumber)) {\n attributes[ATTR_NET_PEER_PORT] = portNumber;\n }\n }\n if (thisPlugin._netSemconvStability & SemconvStability.STABLE) {\n attributes[ATTR_SERVER_ADDRESS] = host;\n if (!isNaN(portNumber)) {\n attributes[ATTR_SERVER_PORT] = portNumber;\n }\n }\n const span = thisPlugin.tracer.startSpan(getSpanName(query), {\n kind: SpanKind.CLIENT,\n attributes,\n });\n\n if (thisPlugin.getConfig().enhancedDatabaseReporting) {\n let values;\n\n if (Array.isArray(_valuesOrCallback)) {\n values = _valuesOrCallback;\n } else if (arguments[2]) {\n values = [_valuesOrCallback];\n }\n\n span.setAttribute(AttributeNames.MYSQL_VALUES, getDbValues(query, values));\n }\n\n const cbIndex = Array.from(arguments).findIndex(arg => typeof arg === 'function');\n\n const parentContext = context.active();\n\n if (cbIndex === -1) {\n const streamableQuery: mysqlTypes.Query = context.with(trace.setSpan(context.active(), span), () => {\n return originalQuery.apply(connection, arguments);\n });\n context.bind(parentContext, streamableQuery);\n\n return streamableQuery\n .on('error', err =>\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message,\n }),\n )\n .on('end', () => {\n span.end();\n });\n } else {\n thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span, parentContext));\n\n return context.with(trace.setSpan(context.active(), span), () => {\n return originalQuery.apply(connection, arguments);\n });\n }\n };\n };\n }\n\n private _patchCallbackQuery(span: Span, parentContext: Context) {\n return (originalCallback: Function) => {\n return function (err: mysqlTypes.MysqlError | null, results?: any, fields?: mysqlTypes.FieldInfo[]) {\n if (err) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message,\n });\n }\n span.end();\n return context.with(parentContext, () => originalCallback(...arguments));\n };\n };\n }\n\n private _setPoolCallbacks(pool: mysqlTypes.Pool, id: string) {\n const poolNameOld = id || getPoolNameOld(pool);\n\n pool.on('connection', _connection => {\n this._connCountAdd(1, poolNameOld, 'idle');\n });\n\n pool.on('acquire', _connection => {\n this._connCountAdd(-1, poolNameOld, 'idle');\n this._connCountAdd(1, poolNameOld, 'used');\n });\n\n pool.on('release', _connection => {\n this._connCountAdd(1, poolNameOld, 'idle');\n this._connCountAdd(-1, poolNameOld, 'used');\n });\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","semconvStabilityFromStr","METRIC_DB_CLIENT_CONNECTIONS_USAGE","InstrumentationNodeModuleDefinition","isWrapped","getPoolNameOld","context","getConfig","getDbQueryText","SemconvStability","ATTR_DB_SYSTEM","DB_SYSTEM_VALUE_MYSQL","ATTR_DB_CONNECTION_STRING","getJDBCString","ATTR_DB_NAME","ATTR_DB_USER","ATTR_DB_STATEMENT","ATTR_DB_SYSTEM_NAME","DB_SYSTEM_NAME_VALUE_MYSQL","ATTR_DB_NAMESPACE","ATTR_DB_QUERY_TEXT","ATTR_NET_PEER_NAME","ATTR_NET_PEER_PORT","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","getSpanName","SpanKind","AttributeNames","getDbValues","trace","SpanStatusCode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/mysql/vendored/instrumentation.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 * - Types from the `mysql` package inlined as simplified interfaces\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs, and the connection-pool\n * metrics / `enhancedDatabaseReporting` option were removed (unused by the Sentry SDK)\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Scope, SpanAttributes } from '@sentry/core';\nimport {\n bindScopeToEmitter,\n getCurrentScope,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n withActiveSpan,\n withScope,\n} from '@sentry/core';\nimport {\n DB_NAME,\n DB_STATEMENT,\n DB_SYSTEM,\n DB_USER,\n NET_PEER_NAME,\n NET_PEER_PORT,\n} from '@sentry/conventions/attributes';\nimport type * as mysqlTypes from './mysql-types';\nimport { ATTR_DB_CONNECTION_STRING, DB_SYSTEM_VALUE_MYSQL } from './semconv';\nimport { getConfig, getDbQueryText, getJDBCString, getSpanName } from './utils';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-mysql';\nconst ORIGIN = 'auto.db.otel.mysql';\n\ntype getConnectionCallbackType = (err: mysqlTypes.MysqlError, connection: mysqlTypes.PoolConnection) => void;\n\nexport class MySQLInstrumentation extends InstrumentationBase<InstrumentationConfig> {\n public constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n protected init() {\n return [\n new InstrumentationNodeModuleDefinition(\n 'mysql',\n ['>=2.0.0 <3'],\n (moduleExports: typeof mysqlTypes) => {\n if (isWrapped(moduleExports.createConnection)) {\n this._unwrap(moduleExports, 'createConnection');\n }\n // oxlint-disable-next-line typescript/no-explicit-any\n this._wrap(moduleExports, 'createConnection', this._patchCreateConnection() as any);\n\n if (isWrapped(moduleExports.createPool)) {\n this._unwrap(moduleExports, 'createPool');\n }\n // oxlint-disable-next-line typescript/no-explicit-any\n this._wrap(moduleExports, 'createPool', this._patchCreatePool() as any);\n\n if (isWrapped(moduleExports.createPoolCluster)) {\n this._unwrap(moduleExports, 'createPoolCluster');\n }\n // oxlint-disable-next-line typescript/no-explicit-any\n this._wrap(moduleExports, 'createPoolCluster', this._patchCreatePoolCluster() as any);\n\n return moduleExports;\n },\n (moduleExports: typeof mysqlTypes) => {\n if (moduleExports === undefined) return;\n this._unwrap(moduleExports, 'createConnection');\n this._unwrap(moduleExports, 'createPool');\n this._unwrap(moduleExports, 'createPoolCluster');\n },\n ),\n ];\n }\n\n // global export function\n private _patchCreateConnection() {\n return (originalCreateConnection: Function) => {\n // oxlint-disable-next-line typescript/no-this-alias\n const thisPlugin = this;\n\n return function createConnection(_connectionUri: string | mysqlTypes.ConnectionConfig) {\n const originalResult = originalCreateConnection(...arguments);\n\n // This is unwrapped on next call after unpatch\n // oxlint-disable-next-line typescript/no-explicit-any\n thisPlugin._wrap(originalResult, 'query', thisPlugin._patchQuery(originalResult) as any);\n\n return originalResult;\n };\n };\n }\n\n // global export function\n private _patchCreatePool() {\n return (originalCreatePool: Function) => {\n // oxlint-disable-next-line typescript/no-this-alias\n const thisPlugin = this;\n return function createPool(_config: string | mysqlTypes.PoolConfig) {\n const pool = originalCreatePool(...arguments);\n\n thisPlugin._wrap(pool, 'query', thisPlugin._patchQuery(pool));\n thisPlugin._wrap(pool, 'getConnection', thisPlugin._patchGetConnection(pool));\n\n return pool;\n };\n };\n }\n\n // global export function\n private _patchCreatePoolCluster() {\n return (originalCreatePoolCluster: Function) => {\n // oxlint-disable-next-line typescript/no-this-alias\n const thisPlugin = this;\n return function createPool(_config: string | mysqlTypes.PoolConfig) {\n const cluster = originalCreatePoolCluster(...arguments);\n\n // This is unwrapped on next call after unpatch\n thisPlugin._wrap(cluster, 'getConnection', thisPlugin._patchGetConnection(cluster));\n\n return cluster;\n };\n };\n }\n\n // method on cluster or pool\n private _patchGetConnection(pool: mysqlTypes.Pool | mysqlTypes.PoolCluster) {\n return (originalGetConnection: Function) => {\n // oxlint-disable-next-line typescript/no-this-alias\n const thisPlugin = this;\n\n return function getConnection(arg1?: unknown, arg2?: unknown, arg3?: unknown) {\n // Unwrap if unpatch has been called\n if (!thisPlugin['_enabled']) {\n thisPlugin._unwrap(pool, 'getConnection');\n return originalGetConnection.apply(pool, arguments);\n }\n\n if (arguments.length === 1 && typeof arg1 === 'function') {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg1 as getConnectionCallbackType);\n return originalGetConnection.call(pool, patchFn);\n }\n if (arguments.length === 2 && typeof arg2 === 'function') {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg2 as getConnectionCallbackType);\n return originalGetConnection.call(pool, arg1, patchFn);\n }\n if (arguments.length === 3 && typeof arg3 === 'function') {\n const patchFn = thisPlugin._getConnectionCallbackPatchFn(arg3 as getConnectionCallbackType);\n return originalGetConnection.call(pool, arg1, arg2, patchFn);\n }\n\n return originalGetConnection.apply(pool, arguments);\n };\n };\n }\n\n private _getConnectionCallbackPatchFn(cb: getConnectionCallbackType) {\n // oxlint-disable-next-line typescript/no-this-alias\n const thisPlugin = this;\n const scope = getCurrentScope();\n return function (this: unknown, err: mysqlTypes.MysqlError, connection: mysqlTypes.PoolConnection) {\n if (connection) {\n // this is the callback passed into a query\n // no need to unwrap\n if (!isWrapped(connection.query)) {\n // oxlint-disable-next-line typescript/no-explicit-any\n thisPlugin._wrap(connection, 'query', thisPlugin._patchQuery(connection) as any);\n }\n }\n if (typeof cb === 'function') {\n withScope(scope, () => cb.call(this, err, connection));\n }\n };\n }\n\n private _patchQuery(connection: mysqlTypes.Connection | mysqlTypes.Pool) {\n return (originalQuery: Function) => {\n // oxlint-disable-next-line typescript/no-this-alias\n const thisPlugin = this;\n\n return function query(\n query: string | mysqlTypes.Query | mysqlTypes.QueryOptions,\n _valuesOrCallback?: unknown[] | mysqlTypes.queryCallback,\n _callback?: mysqlTypes.queryCallback,\n ) {\n if (!thisPlugin['_enabled']) {\n thisPlugin._unwrap(connection, 'query');\n return originalQuery.apply(connection, arguments);\n }\n\n const { host, port, database, user } = getConfig(connection.config);\n const portNumber = parseInt(String(port), 10);\n /* eslint-disable @sentry/no-deprecated-attributes */\n const attributes: SpanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [DB_SYSTEM]: DB_SYSTEM_VALUE_MYSQL,\n [ATTR_DB_CONNECTION_STRING]: getJDBCString(host, port, database),\n [DB_NAME]: database,\n [DB_USER]: user,\n [DB_STATEMENT]: getDbQueryText(query),\n [NET_PEER_NAME]: host,\n };\n\n if (!isNaN(portNumber)) {\n attributes[NET_PEER_PORT] = portNumber;\n }\n /* eslint-enable @sentry/no-deprecated-attributes */\n\n const span = startInactiveSpan({\n name: getSpanName(query),\n kind: SPAN_KIND.CLIENT,\n attributes,\n });\n\n const cbIndex = Array.from(arguments).findIndex(arg => typeof arg === 'function');\n\n const scope = getCurrentScope();\n if (cbIndex === -1) {\n const streamableQuery: mysqlTypes.Query = withActiveSpan(span, () => {\n return originalQuery.apply(connection, arguments);\n });\n bindScopeToEmitter(streamableQuery, scope);\n\n return streamableQuery\n .on('error', (err: unknown) => {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: (err as mysqlTypes.MysqlError).message,\n });\n })\n .on('end', () => {\n span.end();\n });\n } else {\n thisPlugin._wrap(arguments, cbIndex, thisPlugin._patchCallbackQuery(span, scope));\n\n return withActiveSpan(span, () => {\n return originalQuery.apply(connection, arguments);\n });\n }\n };\n };\n }\n\n private _patchCallbackQuery(span: Span, scope: Scope) {\n return (originalCallback: Function) => {\n return function (err: mysqlTypes.MysqlError | null, _results?: unknown, _fields?: mysqlTypes.FieldInfo[]) {\n if (err) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message,\n });\n }\n span.end();\n return withScope(scope, () => originalCallback(...arguments));\n };\n };\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","InstrumentationNodeModuleDefinition","isWrapped","getCurrentScope","withScope","getConfig","attributes","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","DB_SYSTEM","DB_SYSTEM_VALUE_MYSQL","ATTR_DB_CONNECTION_STRING","getJDBCString","DB_NAME","DB_USER","DB_STATEMENT","getDbQueryText","NET_PEER_NAME","NET_PEER_PORT","startInactiveSpan","getSpanName","SPAN_KIND","withActiveSpan","bindScopeToEmitter","SPAN_STATUS_ERROR"],"mappings":"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"}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
3
|
const ATTR_DB_CONNECTION_STRING = "db.connection_string";
|
|
4
|
-
const ATTR_DB_NAME = "db.name";
|
|
5
|
-
const ATTR_DB_STATEMENT = "db.statement";
|
|
6
|
-
const ATTR_DB_SYSTEM = "db.system";
|
|
7
|
-
const ATTR_DB_USER = "db.user";
|
|
8
|
-
const ATTR_NET_PEER_NAME = "net.peer.name";
|
|
9
|
-
const ATTR_NET_PEER_PORT = "net.peer.port";
|
|
10
4
|
const DB_SYSTEM_VALUE_MYSQL = "mysql";
|
|
11
|
-
const METRIC_DB_CLIENT_CONNECTIONS_USAGE = "db.client.connections.usage";
|
|
12
5
|
|
|
13
6
|
exports.ATTR_DB_CONNECTION_STRING = ATTR_DB_CONNECTION_STRING;
|
|
14
|
-
exports.ATTR_DB_NAME = ATTR_DB_NAME;
|
|
15
|
-
exports.ATTR_DB_STATEMENT = ATTR_DB_STATEMENT;
|
|
16
|
-
exports.ATTR_DB_SYSTEM = ATTR_DB_SYSTEM;
|
|
17
|
-
exports.ATTR_DB_USER = ATTR_DB_USER;
|
|
18
|
-
exports.ATTR_NET_PEER_NAME = ATTR_NET_PEER_NAME;
|
|
19
|
-
exports.ATTR_NET_PEER_PORT = ATTR_NET_PEER_PORT;
|
|
20
7
|
exports.DB_SYSTEM_VALUE_MYSQL = DB_SYSTEM_VALUE_MYSQL;
|
|
21
|
-
exports.METRIC_DB_CLIENT_CONNECTIONS_USAGE = METRIC_DB_CLIENT_CONNECTIONS_USAGE;
|
|
22
8
|
//# sourceMappingURL=semconv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/mysql/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-mysql\n * - Upstream version: @opentelemetry/instrumentation-mysql@0.64.0\n */\n
|
|
1
|
+
{"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/mysql/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-mysql\n * - Upstream version: @opentelemetry/instrumentation-mysql@0.64.0\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\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 `server.address` and `server.port`.\n */\nexport const ATTR_DB_CONNECTION_STRING = 'db.connection_string' as const;\n\n/**\n * Enum value \"mysql\" for attribute `db.system`.\n *\n * MySQL\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_VALUE_MYSQL = 'mysql' as const;\n"],"names":[],"mappings":";;AAwBO,MAAM,yBAAA,GAA4B;AASlC,MAAM,qBAAA,GAAwB;;;;;"}
|