@sentry/node 10.58.0 → 10.60.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 +3 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/integrations/fs/index.js +3 -84
- package/build/cjs/integrations/fs/index.js.map +1 -1
- package/build/cjs/integrations/fs/vendored/constants.js.map +1 -1
- package/build/cjs/integrations/fs/vendored/instrumentation.js +145 -175
- package/build/cjs/integrations/fs/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/fs/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/node-fetch/index.js +7 -8
- package/build/cjs/integrations/node-fetch/index.js.map +1 -1
- package/build/cjs/integrations/node-fetch/vendored/semconv.js +28 -0
- package/build/cjs/integrations/node-fetch/vendored/semconv.js.map +1 -0
- package/build/cjs/integrations/node-fetch/vendored/undici.js +91 -127
- package/build/cjs/integrations/node-fetch/vendored/undici.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib/vendored/semconv-obsolete.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib/vendored/types.js.map +1 -1
- package/build/cjs/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/connect/index.js +0 -21
- package/build/cjs/integrations/tracing/connect/index.js.map +1 -1
- package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js +0 -6
- package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -1
- package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js +33 -42
- package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/connect/vendored/internal-types.js.map +1 -1
- package/build/cjs/integrations/tracing/connect/vendored/utils.js +3 -2
- package/build/cjs/integrations/tracing/connect/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js +1 -1
- package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/genericPool/index.js +1 -15
- package/build/cjs/integrations/tracing/genericPool/index.js.map +1 -1
- package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js +30 -18
- package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/index.js +1 -51
- package/build/cjs/integrations/tracing/graphql/index.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/vendored/enum.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js +0 -2
- package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js +67 -57
- package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/vendored/internal-types.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/vendored/symbols.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/vendored/utils.js +28 -62
- package/build/cjs/integrations/tracing/graphql/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/index.js +0 -17
- package/build/cjs/integrations/tracing/hapi/index.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js +28 -45
- package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/vendored/internal-types.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/hapi/vendored/utils.js +4 -9
- package/build/cjs/integrations/tracing/hapi/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/index.js +1 -0
- package/build/cjs/integrations/tracing/index.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/index.js +1 -11
- package/build/cjs/integrations/tracing/kafka/index.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js +45 -247
- package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/semconv.js +4 -8
- package/build/cjs/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/utils.js +113 -0
- package/build/cjs/integrations/tracing/kafka/vendored/utils.js.map +1 -0
- package/build/cjs/integrations/tracing/knex/index.js +2 -17
- package/build/cjs/integrations/tracing/knex/index.js.map +1 -1
- package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js +65 -93
- package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/knex/vendored/semconv.js +2 -0
- package/build/cjs/integrations/tracing/knex/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/knex/vendored/utils.js +2 -15
- package/build/cjs/integrations/tracing/knex/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/index.js +1 -24
- package/build/cjs/integrations/tracing/koa/index.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js +29 -41
- package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/internal-types.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/types.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/index.js +1 -42
- package/build/cjs/integrations/tracing/mongo/index.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js +12 -562
- package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/internal-types.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/patches.js +151 -0
- package/build/cjs/integrations/tracing/mongo/vendored/patches.js.map +1 -0
- package/build/cjs/integrations/tracing/mongo/vendored/semconv.js +0 -4
- package/build/cjs/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/utils.js +153 -0
- package/build/cjs/integrations/tracing/mongo/vendored/utils.js.map +1 -0
- package/build/cjs/integrations/tracing/mongoose/index.js +1 -8
- package/build/cjs/integrations/tracing/mongoose/index.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js +56 -203
- package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js +0 -4
- package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/utils.js +19 -49
- package/build/cjs/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/vendored/AttributeNames.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/index.js +1 -8
- package/build/cjs/integrations/tracing/mysql2/index.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js +21 -59
- package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/mysql2/vendored/utils.js +14 -33
- package/build/cjs/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/postgres/index.js +0 -4
- package/build/cjs/integrations/tracing/postgres/index.js.map +1 -1
- package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js +0 -1
- package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -1
- package/build/cjs/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -1
- package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js +51 -261
- package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.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 +43 -167
- package/build/cjs/integrations/tracing/postgres/vendored/utils.js.map +1 -1
- 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.map +1 -1
- package/build/cjs/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/index.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js +89 -160
- package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/vendored/redis-common.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js +92 -231
- package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/redis/vendored/semconv.js +0 -2
- package/build/cjs/integrations/tracing/redis/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious/index.js +1 -25
- package/build/cjs/integrations/tracing/tedious/index.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js +25 -76
- package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
- package/build/cjs/integrations/tracing/tedious/vendored/utils.js.map +1 -1
- package/build/cjs/sdk/diagnosticsChannelInjection.js +21 -0
- package/build/cjs/sdk/diagnosticsChannelInjection.js.map +1 -0
- package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js +19 -0
- package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
- package/build/cjs/sdk/index.js +17 -1
- package/build/cjs/sdk/index.js.map +1 -1
- package/build/cjs/sdk/initOtel.js +2 -1
- package/build/cjs/sdk/initOtel.js.map +1 -1
- package/build/esm/index.js +2 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/integrations/fs/index.js +4 -85
- package/build/esm/integrations/fs/index.js.map +1 -1
- package/build/esm/integrations/fs/vendored/constants.js.map +1 -1
- package/build/esm/integrations/fs/vendored/instrumentation.js +147 -177
- package/build/esm/integrations/fs/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/fs/vendored/utils.js.map +1 -1
- package/build/esm/integrations/node-fetch/index.js +8 -9
- package/build/esm/integrations/node-fetch/index.js.map +1 -1
- package/build/esm/integrations/node-fetch/vendored/semconv.js +15 -0
- package/build/esm/integrations/node-fetch/vendored/semconv.js.map +1 -0
- package/build/esm/integrations/node-fetch/vendored/undici.js +80 -116
- package/build/esm/integrations/node-fetch/vendored/undici.js.map +1 -1
- package/build/esm/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
- package/build/esm/integrations/tracing/amqplib/vendored/semconv-obsolete.js.map +1 -1
- package/build/esm/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/amqplib/vendored/types.js.map +1 -1
- package/build/esm/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/connect/index.js +1 -22
- package/build/esm/integrations/tracing/connect/index.js.map +1 -1
- package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js +1 -6
- package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -1
- package/build/esm/integrations/tracing/connect/vendored/instrumentation.js +36 -44
- package/build/esm/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/connect/vendored/internal-types.js.map +1 -1
- package/build/esm/integrations/tracing/connect/vendored/utils.js +3 -2
- package/build/esm/integrations/tracing/connect/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/fastify/v3/instrumentation.js +1 -1
- package/build/esm/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/genericPool/index.js +3 -17
- package/build/esm/integrations/tracing/genericPool/index.js.map +1 -1
- package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js +31 -19
- package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/index.js +3 -53
- package/build/esm/integrations/tracing/graphql/index.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/vendored/enum.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js +0 -2
- package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js +69 -59
- package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/vendored/internal-types.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/vendored/symbols.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/vendored/utils.js +29 -62
- package/build/esm/integrations/tracing/graphql/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/index.js +1 -18
- package/build/esm/integrations/tracing/hapi/index.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js +30 -47
- package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/vendored/internal-types.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/hapi/vendored/utils.js +5 -10
- package/build/esm/integrations/tracing/hapi/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/index.js +1 -0
- package/build/esm/integrations/tracing/index.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/index.js +2 -12
- package/build/esm/integrations/tracing/kafka/index.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js +47 -249
- package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/semconv.js +3 -5
- package/build/esm/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/utils.js +107 -0
- package/build/esm/integrations/tracing/kafka/vendored/utils.js.map +1 -0
- package/build/esm/integrations/tracing/knex/index.js +4 -19
- package/build/esm/integrations/tracing/knex/index.js.map +1 -1
- package/build/esm/integrations/tracing/knex/vendored/instrumentation.js +66 -94
- package/build/esm/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/knex/vendored/semconv.js +2 -1
- package/build/esm/integrations/tracing/knex/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/knex/vendored/utils.js +3 -15
- package/build/esm/integrations/tracing/knex/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/koa/index.js +3 -26
- package/build/esm/integrations/tracing/koa/index.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/instrumentation.js +31 -43
- package/build/esm/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/internal-types.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/types.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/index.js +3 -43
- package/build/esm/integrations/tracing/mongo/index.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js +13 -563
- package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/internal-types.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/patches.js +143 -0
- package/build/esm/integrations/tracing/mongo/vendored/patches.js.map +1 -0
- package/build/esm/integrations/tracing/mongo/vendored/semconv.js +1 -3
- package/build/esm/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/utils.js +146 -0
- package/build/esm/integrations/tracing/mongo/vendored/utils.js.map +1 -0
- package/build/esm/integrations/tracing/mongoose/index.js +2 -9
- package/build/esm/integrations/tracing/mongoose/index.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js +59 -206
- package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/semconv.js +1 -3
- package/build/esm/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/utils.js +20 -50
- package/build/esm/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/vendored/AttributeNames.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mysql/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/index.js +2 -9
- package/build/esm/integrations/tracing/mysql2/index.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js +26 -64
- package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/mysql2/vendored/utils.js +15 -34
- package/build/esm/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/postgres/index.js +1 -5
- package/build/esm/integrations/tracing/postgres/index.js.map +1 -1
- package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js +0 -1
- package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -1
- package/build/esm/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -1
- package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js +52 -262
- package/build/esm/integrations/tracing/postgres/vendored/instrumentation.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 +44 -165
- package/build/esm/integrations/tracing/postgres/vendored/utils.js.map +1 -1
- 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.map +1 -1
- package/build/esm/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/redis/index.js.map +1 -1
- package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js +92 -163
- package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/redis/vendored/redis-common.js.map +1 -1
- package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js +94 -233
- package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/redis/vendored/semconv.js +1 -2
- package/build/esm/integrations/tracing/redis/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/tedious/index.js +3 -27
- package/build/esm/integrations/tracing/tedious/index.js.map +1 -1
- package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js +29 -79
- package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
- package/build/esm/integrations/tracing/tedious/vendored/utils.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/sdk/diagnosticsChannelInjection.js +17 -0
- package/build/esm/sdk/diagnosticsChannelInjection.js.map +1 -0
- package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js +17 -0
- package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
- package/build/esm/sdk/index.js +17 -1
- package/build/esm/sdk/index.js.map +1 -1
- package/build/esm/sdk/initOtel.js +2 -1
- package/build/esm/sdk/initOtel.js.map +1 -1
- package/build/import-hook.mjs +6 -0
- package/build/types/index.d.ts +2 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/integrations/fs/index.d.ts.map +1 -1
- package/build/types/integrations/fs/vendored/constants.d.ts.map +1 -1
- package/build/types/integrations/fs/vendored/instrumentation.d.ts +6 -10
- package/build/types/integrations/fs/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/fs/vendored/types.d.ts +10 -15
- package/build/types/integrations/fs/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/fs/vendored/utils.d.ts +2 -2
- package/build/types/integrations/fs/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/node-fetch/index.d.ts.map +1 -1
- package/build/types/integrations/node-fetch/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/node-fetch/vendored/semconv.d.ts +13 -0
- package/build/types/integrations/node-fetch/vendored/semconv.d.ts.map +1 -0
- package/build/types/integrations/node-fetch/vendored/types.d.ts +2 -4
- package/build/types/integrations/node-fetch/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/node-fetch/vendored/undici.d.ts +6 -7
- package/build/types/integrations/node-fetch/vendored/undici.d.ts.map +1 -1
- package/build/types/integrations/tracing/amqplib/vendored/amqplib.d.ts.map +1 -1
- package/build/types/integrations/tracing/amqplib/vendored/semconv-obsolete.d.ts.map +1 -1
- package/build/types/integrations/tracing/amqplib/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/amqplib/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/connect/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +0 -4
- package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts.map +1 -1
- package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts +5 -5
- package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts +2 -2
- package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/connect/vendored/utils.d.ts +1 -1
- package/build/types/integrations/tracing/connect/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/dataloader/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/fastify/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/genericPool/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/genericPool/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/enum.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +1 -3
- package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts +7 -2
- package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts +4 -4
- package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/symbols.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/types.d.ts +5 -43
- package/build/types/integrations/tracing/graphql/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/utils.d.ts +8 -11
- package/build/types/integrations/tracing/graphql/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/vendored/enums/AttributeNames.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts +2 -2
- package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/hapi/vendored/utils.d.ts +3 -4
- package/build/types/integrations/tracing/hapi/vendored/utils.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.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/instrumentation.d.ts +3 -13
- package/build/types/integrations/tracing/kafka/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/kafkajs-types.d.ts +0 -32
- package/build/types/integrations/tracing/kafka/vendored/kafkajs-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts +9 -28
- package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/utils.d.ts +29 -0
- package/build/types/integrations/tracing/kafka/vendored/utils.d.ts.map +1 -0
- package/build/types/integrations/tracing/knex/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts +8 -10
- package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/knex/vendored/semconv.d.ts +1 -0
- package/build/types/integrations/tracing/knex/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/knex/vendored/utils.d.ts +0 -6
- package/build/types/integrations/tracing/knex/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/vendored/enums/AttributeNames.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts +1 -1
- package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts +4 -4
- package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/vendored/types.d.ts +2 -39
- package/build/types/integrations/tracing/koa/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/vendored/utils.d.ts +3 -3
- package/build/types/integrations/tracing/koa/vendored/utils.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 +0 -4
- package/build/types/integrations/tracing/mongo/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts +4 -72
- package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts +0 -59
- package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
- package/build/types/integrations/tracing/mongo/vendored/patches.d.ts.map +1 -0
- package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts +0 -54
- package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/utils.d.ts +24 -0
- package/build/types/integrations/tracing/mongo/vendored/utils.d.ts.map +1 -0
- package/build/types/integrations/tracing/mongoose/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +3 -0
- package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts +3 -8
- package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -14
- package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts +4 -6
- package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/AttributeNames.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/mysql-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts +3 -6
- package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts +3 -5
- package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +0 -1
- package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/enums/SpanNames.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts +1 -9
- package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts +0 -2
- package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/pg-pool-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/pg-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts +0 -50
- package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/types.d.ts +2 -56
- package/build/types/integrations/tracing/postgres/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/postgres/vendored/utils.d.ts +13 -26
- package/build/types/integrations/tracing/postgres/vendored/utils.d.ts.map +1 -1
- 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.map +1 -1
- package/build/types/integrations/tracing/prisma/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/redis/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +3 -8
- package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/redis/vendored/redis-common.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.map +1 -1
- package/build/types/integrations/tracing/redis/vendored/types.d.ts +2 -36
- package/build/types/integrations/tracing/redis/vendored/types.d.ts.map +1 -1
- package/build/types/integrations/tracing/tedious/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts +3 -14
- package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/tedious/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/tedious/vendored/utils.d.ts.map +1 -1
- package/build/types/sdk/diagnosticsChannelInjection.d.ts +41 -0
- package/build/types/sdk/diagnosticsChannelInjection.d.ts.map +1 -0
- package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +34 -0
- package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts.map +1 -0
- package/build/types/sdk/index.d.ts.map +1 -1
- package/build/types/sdk/initOtel.d.ts.map +1 -1
- package/build/types-ts3.8/index.d.ts +2 -1
- package/build/types-ts3.8/integrations/fs/vendored/instrumentation.d.ts +6 -10
- package/build/types-ts3.8/integrations/fs/vendored/types.d.ts +10 -15
- package/build/types-ts3.8/integrations/fs/vendored/utils.d.ts +2 -2
- package/build/types-ts3.8/integrations/node-fetch/vendored/semconv.d.ts +13 -0
- package/build/types-ts3.8/integrations/node-fetch/vendored/types.d.ts +2 -4
- package/build/types-ts3.8/integrations/node-fetch/vendored/undici.d.ts +6 -7
- package/build/types-ts3.8/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +0 -4
- package/build/types-ts3.8/integrations/tracing/connect/vendored/instrumentation.d.ts +4 -4
- package/build/types-ts3.8/integrations/tracing/connect/vendored/internal-types.d.ts +2 -2
- package/build/types-ts3.8/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +1 -3
- package/build/types-ts3.8/integrations/tracing/graphql/vendored/instrumentation.d.ts +6 -1
- package/build/types-ts3.8/integrations/tracing/graphql/vendored/internal-types.d.ts +3 -3
- package/build/types-ts3.8/integrations/tracing/graphql/vendored/types.d.ts +4 -42
- package/build/types-ts3.8/integrations/tracing/graphql/vendored/utils.d.ts +6 -9
- package/build/types-ts3.8/integrations/tracing/hapi/vendored/instrumentation.d.ts +2 -2
- package/build/types-ts3.8/integrations/tracing/hapi/vendored/utils.d.ts +1 -2
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/instrumentation.d.ts +3 -13
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/kafkajs-types.d.ts +0 -32
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/semconv.d.ts +9 -28
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/utils.d.ts +29 -0
- package/build/types-ts3.8/integrations/tracing/knex/vendored/instrumentation.d.ts +8 -10
- package/build/types-ts3.8/integrations/tracing/knex/vendored/semconv.d.ts +1 -0
- package/build/types-ts3.8/integrations/tracing/knex/vendored/utils.d.ts +0 -6
- package/build/types-ts3.8/integrations/tracing/koa/vendored/internal-types.d.ts +4 -4
- package/build/types-ts3.8/integrations/tracing/koa/vendored/types.d.ts +1 -38
- package/build/types-ts3.8/integrations/tracing/mongo/index.d.ts +0 -4
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/instrumentation.d.ts +4 -72
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/internal-types.d.ts +0 -59
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/semconv.d.ts +0 -54
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/utils.d.ts +24 -0
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +3 -0
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose.d.ts +3 -8
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -14
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/utils.d.ts +4 -6
- package/build/types-ts3.8/integrations/tracing/mysql2/vendored/instrumentation.d.ts +3 -6
- package/build/types-ts3.8/integrations/tracing/mysql2/vendored/utils.d.ts +3 -5
- package/build/types-ts3.8/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +0 -1
- package/build/types-ts3.8/integrations/tracing/postgres/vendored/instrumentation.d.ts +0 -8
- package/build/types-ts3.8/integrations/tracing/postgres/vendored/internal-types.d.ts +0 -2
- package/build/types-ts3.8/integrations/tracing/postgres/vendored/semconv.d.ts +0 -50
- package/build/types-ts3.8/integrations/tracing/postgres/vendored/types.d.ts +1 -55
- package/build/types-ts3.8/integrations/tracing/postgres/vendored/utils.d.ts +13 -26
- package/build/types-ts3.8/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +3 -8
- package/build/types-ts3.8/integrations/tracing/redis/vendored/types.d.ts +2 -36
- package/build/types-ts3.8/integrations/tracing/tedious/vendored/instrumentation.d.ts +3 -14
- package/build/types-ts3.8/sdk/diagnosticsChannelInjection.d.ts +41 -0
- package/build/types-ts3.8/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +34 -0
- package/package.json +20 -7
- package/build/cjs/integrations/tracing/kafka/vendored/internal-types.js +0 -6
- package/build/cjs/integrations/tracing/kafka/vendored/internal-types.js.map +0 -1
- package/build/cjs/integrations/tracing/kafka/vendored/propagator.js +0 -22
- package/build/cjs/integrations/tracing/kafka/vendored/propagator.js.map +0 -1
- package/build/cjs/integrations/tracing/knex/vendored/constants.js +0 -16
- package/build/cjs/integrations/tracing/knex/vendored/constants.js.map +0 -1
- package/build/cjs/integrations/tracing/postgres/vendored/internal-types.js +0 -6
- package/build/cjs/integrations/tracing/postgres/vendored/internal-types.js.map +0 -1
- package/build/cjs/integrations/tracing/utils/sql-common.js +0 -43
- package/build/cjs/integrations/tracing/utils/sql-common.js.map +0 -1
- package/build/esm/integrations/tracing/kafka/vendored/internal-types.js +0 -4
- package/build/esm/integrations/tracing/kafka/vendored/internal-types.js.map +0 -1
- package/build/esm/integrations/tracing/kafka/vendored/propagator.js +0 -20
- package/build/esm/integrations/tracing/kafka/vendored/propagator.js.map +0 -1
- package/build/esm/integrations/tracing/knex/vendored/constants.js +0 -13
- package/build/esm/integrations/tracing/knex/vendored/constants.js.map +0 -1
- package/build/esm/integrations/tracing/postgres/vendored/internal-types.js +0 -4
- package/build/esm/integrations/tracing/postgres/vendored/internal-types.js.map +0 -1
- package/build/esm/integrations/tracing/utils/sql-common.js +0 -41
- package/build/esm/integrations/tracing/utils/sql-common.js.map +0 -1
- package/build/types/integrations/tracing/kafka/vendored/internal-types.d.ts +0 -9
- package/build/types/integrations/tracing/kafka/vendored/internal-types.d.ts.map +0 -1
- package/build/types/integrations/tracing/kafka/vendored/propagator.d.ts +0 -3
- package/build/types/integrations/tracing/kafka/vendored/propagator.d.ts.map +0 -1
- package/build/types/integrations/tracing/kafka/vendored/types.d.ts +0 -26
- package/build/types/integrations/tracing/kafka/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/knex/vendored/constants.d.ts +0 -3
- package/build/types/integrations/tracing/knex/vendored/constants.d.ts.map +0 -1
- package/build/types/integrations/tracing/knex/vendored/types.d.ts +0 -8
- package/build/types/integrations/tracing/knex/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/mongo/vendored/types.d.ts +0 -51
- package/build/types/integrations/tracing/mongo/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/mongoose/vendored/types.d.ts +0 -36
- package/build/types/integrations/tracing/mongoose/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/mysql2/vendored/types.d.ts +0 -18
- package/build/types/integrations/tracing/mysql2/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/tedious/vendored/types.d.ts +0 -10
- package/build/types/integrations/tracing/tedious/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/utils/sql-common.d.ts +0 -3
- package/build/types/integrations/tracing/utils/sql-common.d.ts.map +0 -1
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/internal-types.d.ts +0 -9
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/propagator.d.ts +0 -3
- package/build/types-ts3.8/integrations/tracing/kafka/vendored/types.d.ts +0 -26
- package/build/types-ts3.8/integrations/tracing/knex/vendored/constants.d.ts +0 -3
- package/build/types-ts3.8/integrations/tracing/knex/vendored/types.d.ts +0 -8
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/types.d.ts +0 -51
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/types.d.ts +0 -36
- package/build/types-ts3.8/integrations/tracing/mysql2/vendored/types.d.ts +0 -18
- package/build/types-ts3.8/integrations/tracing/tedious/vendored/types.d.ts +0 -10
- package/build/types-ts3.8/integrations/tracing/utils/sql-common.d.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sources":["../../../../../src/integrations/fs/vendored/instrumentation.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-fs\n * - Upstream version: @opentelemetry/instrumentation-fs@0.37.0\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n */\n/* eslint-disable */\n\nimport * as api from '@opentelemetry/api';\nimport { isTracingSuppressed, suppressTracing } from '@opentelemetry/core';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { CALLBACK_FUNCTIONS, PROMISE_FUNCTIONS, SYNC_FUNCTIONS } from './constants';\nimport type * as fs from 'fs';\nimport type { FMember, FPMember, CreateHook, EndHook, FsInstrumentationConfig } from './types';\nimport { promisify } from 'util';\nimport { indexFs } from './utils';\n\ntype FS = typeof fs;\ntype FSPromises = (typeof fs)['promises'];\n\nconst PACKAGE_NAME = '@sentry/instrumentation-fs';\n\n/**\n * This is important for 2-level functions like `realpath.native` to retain the 2nd-level\n * when patching the 1st-level.\n */\nfunction patchedFunctionWithOriginalProperties<T extends (...args: any[]) => ReturnType<T>>(\n patchedFunction: T,\n original: T,\n): T {\n return Object.assign(patchedFunction, original);\n}\n\nexport class FsInstrumentation extends InstrumentationBase<FsInstrumentationConfig> {\n constructor(config: FsInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init(): (InstrumentationNodeModuleDefinition | InstrumentationNodeModuleDefinition)[] {\n return [\n new InstrumentationNodeModuleDefinition(\n 'fs',\n ['*'],\n (fs: FS) => {\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchSyncFunction.bind(this, fName) as any);\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n if (fName === 'exists') {\n // handling separately because of the inconsistent cb style:\n // `exists` doesn't have error as the first argument, but the result\n this._wrap(\n objectToPatch,\n functionNameToPatch,\n this._patchExistsCallbackFunction.bind(this, fName) as any,\n );\n continue;\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchCallbackFunction.bind(this, fName) as any);\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n this._wrap(fs.promises, fName, this._patchPromiseFunction.bind(this, fName) as any);\n }\n return fs;\n },\n (fs: FS) => {\n if (fs === undefined) return;\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n }\n },\n ),\n new InstrumentationNodeModuleDefinition(\n 'fs/promises',\n ['*'],\n (fsPromises: FSPromises) => {\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n this._wrap(fsPromises, fName, this._patchPromiseFunction.bind(this, fName) as any);\n }\n return fsPromises;\n },\n (fsPromises: FSPromises) => {\n if (fsPromises === undefined) return;\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n }\n },\n ),\n ];\n }\n\n protected _patchSyncFunction<T extends (...args: any[]) => ReturnType<T>>(functionName: FMember, original: T): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n try {\n // Suppress tracing for internal fs calls\n const res = api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);\n instrumentation._runEndHook(functionName, { args: args, span });\n return res;\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, { args: args, span, error });\n throw error;\n } finally {\n span.end();\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as any, original);\n }\n\n protected _patchCallbackFunction<T extends (...args: any[]) => ReturnType<T>>(functionName: FMember, original: T): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const lastIdx = args.length - 1;\n const cb = args[lastIdx];\n if (typeof cb === 'function') {\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n // Return to the context active during the call in the callback\n args[lastIdx] = api.context.bind(activeContext, function (this: unknown, error?: Error) {\n if (error) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n }\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n return cb.apply(this, arguments);\n });\n\n try {\n // Suppress tracing for internal fs calls\n return api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n throw error;\n }\n } else {\n // TODO: what to do if we are pretty sure it's going to throw\n return original.apply(this, args);\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as any, original);\n }\n\n protected _patchExistsCallbackFunction<T extends (...args: any[]) => ReturnType<T>>(\n functionName: 'exists',\n original: T,\n ): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const lastIdx = args.length - 1;\n const cb = args[lastIdx];\n if (typeof cb === 'function') {\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n // Return to the context active during the call in the callback\n args[lastIdx] = api.context.bind(activeContext, function (this: unknown) {\n // `exists` never calls the callback with an error\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n });\n span.end();\n return cb.apply(this, arguments);\n });\n\n try {\n // Suppress tracing for internal fs calls\n return api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n throw error;\n }\n } else {\n return original.apply(this, args);\n }\n };\n const functionWithOriginalProperties = patchedFunctionWithOriginalProperties(patchedFunction, original);\n\n // `exists` has a custom promisify function because of the inconsistent signature\n // replicating that on the patched function\n const promisified = function (path: unknown) {\n return new Promise(resolve => functionWithOriginalProperties(path, resolve));\n };\n Object.defineProperty(promisified, 'name', { value: functionName });\n Object.defineProperty(functionWithOriginalProperties, promisify.custom, {\n value: promisified,\n });\n\n return functionWithOriginalProperties as T;\n }\n\n protected _patchPromiseFunction<T extends (...args: any[]) => ReturnType<T>>(functionName: FPMember, original: T): T {\n const instrumentation = this;\n const patchedFunction = async function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n try {\n // Suppress tracing for internal fs calls\n const res = await api.context.with(\n suppressTracing(api.trace.setSpan(activeContext, span)),\n original,\n this,\n ...args,\n );\n instrumentation._runEndHook(functionName, { args: args, span });\n return res;\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, { args: args, span, error });\n throw error;\n } finally {\n span.end();\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as any, original);\n }\n\n protected _runCreateHook(...args: Parameters<CreateHook>): ReturnType<CreateHook> {\n const { createHook } = this.getConfig();\n if (typeof createHook === 'function') {\n try {\n return createHook(...args);\n } catch (e) {\n this._diag.error('caught createHook error', e);\n }\n }\n return true;\n }\n\n protected _runEndHook(...args: Parameters<EndHook>): ReturnType<EndHook> {\n const { endHook } = this.getConfig();\n if (typeof endHook === 'function') {\n try {\n endHook(...args);\n } catch (e) {\n this._diag.error('caught endHook error', e);\n }\n }\n }\n\n protected _shouldTrace(context: api.Context): boolean {\n if (isTracingSuppressed(context)) {\n // Performance optimization. Avoid creating additional contexts and spans\n // if we already know that the tracing is being suppressed.\n return false;\n }\n\n const { requireParentSpan } = this.getConfig();\n if (requireParentSpan) {\n const parentSpan = api.trace.getSpan(context);\n if (parentSpan == null) {\n return false;\n }\n }\n\n return true;\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","InstrumentationNodeModuleDefinition","SYNC_FUNCTIONS","indexFs","isWrapped","CALLBACK_FUNCTIONS","PROMISE_FUNCTIONS","suppressTracing","promisify","isTracingSuppressed"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sources":["../../../../../src/integrations/fs/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-fs\n * - Upstream version: @opentelemetry/instrumentation-fs@0.37.0\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n * - The OpenTelemetry tracer APIs were replaced with Sentry's `startSpan`/`startInactiveSpan`/`suppressTracing`\n * and the configurable `createHook`/`endHook`/`requireParentSpan` options were removed in favor of inlined,\n * Sentry-specific span attributes.\n */\n\nimport { context } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n startSpan,\n suppressTracing,\n} from '@sentry/core';\nimport type * as fs from 'fs';\nimport { promisify } from 'util';\nimport { CALLBACK_FUNCTIONS, PROMISE_FUNCTIONS, SYNC_FUNCTIONS } from './constants';\nimport type { FMember, FPMember, FsInstrumentationConfig, GenericFunction } from './types';\nimport { indexFs } from './utils';\n\ntype FS = typeof fs;\ntype FSPromises = (typeof fs)['promises'];\n\nconst PACKAGE_NAME = '@sentry/instrumentation-fs';\n\nconst SPAN_ORIGIN = 'auto.file.fs';\nconst SPAN_OP = 'file';\n\n// The following lists categorize `fs` functions by the shape of their leading path arguments, so we can\n// record meaningful span attributes for them. These are Sentry-specific additions (not part of upstream).\nconst FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH = ['rename', 'renameSync'];\nconst FS_OPERATIONS_WITH_SRC_DEST = ['copyFile', 'cp', 'copyFileSync', 'cpSync'];\nconst FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH = ['link', 'linkSync'];\nconst FS_OPERATIONS_WITH_PREFIX = ['mkdtemp', 'mkdtempSync'];\nconst FS_OPERATIONS_WITH_TARGET_PATH = ['symlink', 'symlinkSync'];\nconst FS_OPERATIONS_WITH_PATH_ARG = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'exists',\n 'mkdir',\n 'lchown',\n 'lstat',\n 'lutimes',\n 'open',\n 'opendir',\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'realpath.native',\n 'rm',\n 'rmdir',\n 'stat',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile',\n 'accessSync',\n 'appendFileSync',\n 'chmodSync',\n 'chownSync',\n 'existsSync',\n 'lchownSync',\n 'lstatSync',\n 'lutimesSync',\n 'opendirSync',\n 'mkdirSync',\n 'openSync',\n 'readdirSync',\n 'readFileSync',\n 'readlinkSync',\n 'realpathSync',\n 'realpathSync.native',\n 'rmdirSync',\n 'rmSync',\n 'statSync',\n 'truncateSync',\n 'unlinkSync',\n 'utimesSync',\n 'writeFileSync',\n];\n\n/**\n * Builds the span attributes for a given `fs` operation, optionally including the file path arguments.\n */\nfunction getSpanAttributes(\n functionName: FMember | FPMember,\n args: ArrayLike<unknown>,\n config: FsInstrumentationConfig,\n): SpanAttributes {\n const attributes: SpanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: SPAN_OP,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: SPAN_ORIGIN,\n };\n\n if (!config.recordFilePaths) {\n return attributes;\n }\n\n if (typeof args[0] === 'string' && FS_OPERATIONS_WITH_PATH_ARG.includes(functionName)) {\n attributes['path_argument'] = args[0];\n } else if (typeof args[0] === 'string' && typeof args[1] === 'string') {\n if (FS_OPERATIONS_WITH_TARGET_PATH.includes(functionName)) {\n attributes['target_argument'] = args[0];\n attributes['path_argument'] = args[1];\n } else if (FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH.includes(functionName)) {\n attributes['existing_path_argument'] = args[0];\n attributes['new_path_argument'] = args[1];\n } else if (FS_OPERATIONS_WITH_SRC_DEST.includes(functionName)) {\n attributes['src_argument'] = args[0];\n attributes['dest_argument'] = args[1];\n } else if (FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH.includes(functionName)) {\n attributes['old_path_argument'] = args[0];\n attributes['new_path_argument'] = args[1];\n }\n } else if (typeof args[0] === 'string' && FS_OPERATIONS_WITH_PREFIX.includes(functionName)) {\n attributes['prefix_argument'] = args[0];\n }\n\n return attributes;\n}\n\n/**\n * This is important for 2-level functions like `realpath.native` to retain the 2nd-level\n * when patching the 1st-level.\n */\nfunction patchedFunctionWithOriginalProperties<T extends GenericFunction>(patchedFunction: T, original: T): T {\n return Object.assign(patchedFunction, original);\n}\n\nexport class FsInstrumentation extends InstrumentationBase<FsInstrumentationConfig> {\n public constructor(config: FsInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n public init(): InstrumentationNodeModuleDefinition[] {\n return [\n new InstrumentationNodeModuleDefinition(\n 'fs',\n ['*'],\n (fs: FS) => {\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchSyncFunction.bind(this, fName));\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n if (fName === 'exists') {\n // handling separately because of the inconsistent cb style:\n // `exists` doesn't have error as the first argument, but the result\n this._wrap(objectToPatch, functionNameToPatch, this._patchExistsCallbackFunction.bind(this, fName));\n continue;\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchCallbackFunction.bind(this, fName));\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n this._wrap(fs.promises, fName, this._patchPromiseFunction.bind(this, fName));\n }\n return fs;\n },\n (fs: FS) => {\n if (fs === undefined) return;\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n }\n },\n ),\n new InstrumentationNodeModuleDefinition(\n 'fs/promises',\n ['*'],\n (fsPromises: FSPromises) => {\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n this._wrap(fsPromises, fName, this._patchPromiseFunction.bind(this, fName));\n }\n return fsPromises;\n },\n (fsPromises: FSPromises) => {\n if (fsPromises === undefined) return;\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n }\n },\n ),\n ];\n }\n\n protected _patchSyncFunction<T extends GenericFunction>(functionName: FMember, original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const config = instrumentation.getConfig();\n const attributes = getSpanAttributes(functionName, args, config);\n\n return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, span => {\n try {\n // Suppress tracing for internal fs calls\n return suppressTracing(() => original.apply(this, args)) as ReturnType<T>;\n } catch (error) {\n recordError(span, error, config);\n throw error;\n }\n });\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as T, original);\n }\n\n protected _patchCallbackFunction<T extends GenericFunction>(functionName: FMember, original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const config = instrumentation.getConfig();\n\n const lastIdx = args.length - 1;\n const cb: unknown = args[lastIdx];\n if (typeof cb !== 'function') {\n // TODO: what to do if we are pretty sure it's going to throw\n return original.apply(this, args) as ReturnType<T>;\n }\n\n const attributes = getSpanAttributes(functionName, args, config);\n const span = startInactiveSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes });\n\n // Return to the context active during the call in the callback\n args[lastIdx] = context.bind(context.active(), function (this: unknown, ...cbArgs: unknown[]) {\n const error = cbArgs[0];\n if (error) {\n recordError(span, error, config);\n }\n span.end();\n return cb.apply(this, cbArgs);\n });\n\n try {\n // Suppress tracing for internal fs calls\n return suppressTracing(() => original.apply(this, args)) as ReturnType<T>;\n } catch (error) {\n recordError(span, error, config);\n span.end();\n throw error;\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as T, original);\n }\n\n protected _patchExistsCallbackFunction<T extends GenericFunction>(functionName: 'exists', original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const config = instrumentation.getConfig();\n\n const lastIdx = args.length - 1;\n const cb: unknown = args[lastIdx];\n if (typeof cb !== 'function') {\n return original.apply(this, args) as ReturnType<T>;\n }\n\n const attributes = getSpanAttributes(functionName, args, config);\n const span = startInactiveSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes });\n\n // Return to the context active during the call in the callback\n args[lastIdx] = context.bind(context.active(), function (this: unknown, ...cbArgs: unknown[]) {\n // `exists` never calls the callback with an error\n span.end();\n return cb.apply(this, cbArgs);\n });\n\n try {\n // Suppress tracing for internal fs calls\n return suppressTracing(() => original.apply(this, args)) as ReturnType<T>;\n } catch (error) {\n recordError(span, error, config);\n span.end();\n throw error;\n }\n };\n const functionWithOriginalProperties = patchedFunctionWithOriginalProperties(patchedFunction as T, original);\n\n // `exists` has a custom promisify function because of the inconsistent signature\n // replicating that on the patched function\n const promisified = function (path: unknown): Promise<unknown> {\n return new Promise(resolve => (functionWithOriginalProperties as GenericFunction)(path, resolve));\n };\n Object.defineProperty(promisified, 'name', { value: functionName });\n Object.defineProperty(functionWithOriginalProperties, promisify.custom, {\n value: promisified,\n });\n\n return functionWithOriginalProperties;\n }\n\n protected _patchPromiseFunction<T extends GenericFunction>(functionName: FPMember, original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = async function (this: unknown, ...args: Parameters<T>): Promise<unknown> {\n const config = instrumentation.getConfig();\n const attributes = getSpanAttributes(functionName, args, config);\n\n return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, async span => {\n try {\n // Suppress tracing for internal fs calls\n return await suppressTracing(() => original.apply(this, args) as Promise<unknown>);\n } catch (error) {\n recordError(span, error, config);\n throw error;\n }\n });\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as unknown as T, original);\n }\n}\n\n/**\n * Sets the error status on the span and, if configured, records the error message as a span attribute.\n */\nfunction recordError(span: Span, error: unknown, config: FsInstrumentationConfig): void {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n if (config.recordErrorMessagesAsSpanAttributes && error instanceof Error) {\n span.setAttribute('fs_error', error.message);\n }\n}\n"],"names":["SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","InstrumentationBase","SDK_VERSION","InstrumentationNodeModuleDefinition","SYNC_FUNCTIONS","indexFs","isWrapped","CALLBACK_FUNCTIONS","PROMISE_FUNCTIONS","startSpan","suppressTracing","startInactiveSpan","context","promisify","SPAN_STATUS_ERROR"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/integrations/fs/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/integrations/fs/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-fs\n * - Upstream version: @opentelemetry/instrumentation-fs@0.37.0\n */\n\nimport type * as fs from 'fs';\nimport type { FMember, FunctionPropertyNames, GenericFunction } from './types';\n\ntype FS = typeof fs;\n\nexport function splitTwoLevels<FSObject>(\n functionName: FMember,\n): [FunctionPropertyNames<FSObject> & string] | [FunctionPropertyNames<FSObject> & string, string] {\n const memberParts = functionName.split('.');\n if (memberParts.length > 1) {\n if (memberParts.length !== 2) throw Error(`Invalid member function name ${functionName}`);\n return memberParts as [FunctionPropertyNames<FSObject> & string, string];\n } else {\n return [functionName as FunctionPropertyNames<FSObject> & string];\n }\n}\n\nexport function indexFs<FSObject extends FS | FS['promises']>(\n fs: FSObject,\n member: FMember,\n): { objectToPatch: Record<string, GenericFunction>; functionNameToPatch: string } {\n if (!member) throw new Error(JSON.stringify({ member }));\n const splitResult = splitTwoLevels<FSObject>(member);\n const [functionName1, functionName2] = splitResult;\n if (functionName2) {\n return {\n objectToPatch: fs[functionName1] as Record<string, GenericFunction>,\n functionNameToPatch: functionName2,\n };\n } else {\n return {\n objectToPatch: fs as unknown as Record<string, GenericFunction>,\n functionNameToPatch: functionName1,\n };\n }\n}\n"],"names":[],"mappings":";;AAcO,SAAS,eACd,YAAA,EACiG;AACjG,EAAA,MAAM,WAAA,GAAc,YAAA,CAAa,KAAA,CAAM,GAAG,CAAA;AAC1C,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,IAAI,YAAY,MAAA,KAAW,CAAA,QAAS,KAAA,CAAM,CAAA,6BAAA,EAAgC,YAAY,CAAA,CAAE,CAAA;AACxF,IAAA,OAAO,WAAA;AAAA,EACT,CAAA,MAAO;AACL,IAAA,OAAO,CAAC,YAAwD,CAAA;AAAA,EAClE;AACF;AAEO,SAAS,OAAA,CACd,IACA,MAAA,EACiF;AACjF,EAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,KAAA,CAAM,KAAK,SAAA,CAAU,EAAE,MAAA,EAAQ,CAAC,CAAA;AACvD,EAAA,MAAM,WAAA,GAAc,eAAyB,MAAM,CAAA;AACnD,EAAA,MAAM,CAAC,aAAA,EAAe,aAAa,CAAA,GAAI,WAAA;AACvC,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,GAAG,aAAa,CAAA;AAAA,MAC/B,mBAAA,EAAqB;AAAA,KACvB;AAAA,EACF,CAAA,MAAO;AACL,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,EAAA;AAAA,MACf,mBAAA,EAAqB;AAAA,KACvB;AAAA,EACF;AACF;;;;;"}
|
|
@@ -5,13 +5,13 @@ const core = require('@sentry/core');
|
|
|
5
5
|
const nodeCore = require('@sentry/node-core');
|
|
6
6
|
|
|
7
7
|
const INTEGRATION_NAME = "NodeFetch";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return _getConfigWithDefaults(options);
|
|
8
|
+
let _undiciInstrumentation;
|
|
9
|
+
function instrumentNodeFetchSpans(options) {
|
|
10
|
+
if (!_undiciInstrumentation) {
|
|
11
|
+
_undiciInstrumentation = new undici.UndiciInstrumentation(_getConfigWithDefaults(options));
|
|
13
12
|
}
|
|
14
|
-
);
|
|
13
|
+
_undiciInstrumentation.enable();
|
|
14
|
+
}
|
|
15
15
|
const instrumentSentryNodeFetch = nodeCore.generateInstrumentOnce(
|
|
16
16
|
`${INTEGRATION_NAME}.sentry`,
|
|
17
17
|
nodeCore.SentryNodeFetchInstrumentation,
|
|
@@ -25,7 +25,7 @@ const _nativeNodeFetchIntegration = ((options = {}) => {
|
|
|
25
25
|
setupOnce() {
|
|
26
26
|
const instrumentSpans = _shouldInstrumentSpans(options, core.getClient()?.getOptions());
|
|
27
27
|
if (instrumentSpans) {
|
|
28
|
-
|
|
28
|
+
instrumentNodeFetchSpans(options);
|
|
29
29
|
}
|
|
30
30
|
instrumentSentryNodeFetch(options);
|
|
31
31
|
}
|
|
@@ -47,7 +47,6 @@ function _shouldInstrumentSpans(options, clientOptions = {}) {
|
|
|
47
47
|
}
|
|
48
48
|
function _getConfigWithDefaults(options = {}) {
|
|
49
49
|
const instrumentationConfig = {
|
|
50
|
-
requireParentforSpans: false,
|
|
51
50
|
ignoreRequestHook: (request) => {
|
|
52
51
|
const url = getAbsoluteUrl(request.origin, request.path);
|
|
53
52
|
const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/integrations/node-fetch/index.ts"],"sourcesContent":["import type { UndiciInstrumentationConfig } from './vendored/types';\nimport { UndiciInstrumentation } from './vendored/undici';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n defineIntegration,\n getClient,\n hasSpansEnabled,\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n stripDataUrlContent,\n} from '@sentry/core';\nimport type { NodeClient } from '@sentry/node-core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\nimport type { NodeClientOptions } from '../../types';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\ninterface NodeFetchOptions extends Pick<\n UndiciInstrumentationConfig,\n 'requestHook' | 'responseHook' | 'headersToSpanAttributes'\n> {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * If set to false, do not emit any spans.\n * This will ensure that the default UndiciInstrumentation from OpenTelemetry is not setup,\n * only the Sentry-specific instrumentation for breadcrumbs & trace propagation is applied.\n *\n * If `skipOpenTelemetrySetup: true` is configured, this defaults to `false`, otherwise it defaults to `true`.\n */\n spans?: boolean;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing fetch requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's UndiciInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing fetch requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n}\n\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/integrations/node-fetch/index.ts"],"sourcesContent":["import type { UndiciInstrumentationConfig } from './vendored/types';\nimport { UndiciInstrumentation } from './vendored/undici';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n defineIntegration,\n getClient,\n hasSpansEnabled,\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n stripDataUrlContent,\n} from '@sentry/core';\nimport type { NodeClient } from '@sentry/node-core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\nimport type { NodeClientOptions } from '../../types';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\ninterface NodeFetchOptions extends Pick<\n UndiciInstrumentationConfig,\n 'requestHook' | 'responseHook' | 'headersToSpanAttributes'\n> {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * If set to false, do not emit any spans.\n * This will ensure that the default UndiciInstrumentation from OpenTelemetry is not setup,\n * only the Sentry-specific instrumentation for breadcrumbs & trace propagation is applied.\n *\n * If `skipOpenTelemetrySetup: true` is configured, this defaults to `false`, otherwise it defaults to `true`.\n */\n spans?: boolean;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing fetch requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's UndiciInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing fetch requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n}\n\nlet _undiciInstrumentation: UndiciInstrumentation | undefined;\n\n// Sets up the vendored undici instrumentation (emits `http.client` spans & propagates traces).\n// The module-level singleton mirrors `generateInstrumentOnce`'s \"instrument once per process\" behavior.\nfunction instrumentNodeFetchSpans(options: NodeFetchOptions): void {\n if (!_undiciInstrumentation) {\n _undiciInstrumentation = new UndiciInstrumentation(_getConfigWithDefaults(options));\n }\n _undiciInstrumentation.enable();\n}\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options: NodeFetchOptions) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options: NodeFetchOptions = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n const instrumentSpans = _shouldInstrumentSpans(options, getClient<NodeClient>()?.getOptions());\n\n // This is the instrumentation that emits spans & propagates traces for outgoing fetch requests\n if (instrumentSpans) {\n instrumentNodeFetchSpans(options);\n }\n\n // This is the Sentry-specific instrumentation that creates breadcrumbs & propagates traces.\n // It must subscribe to the diagnostics channels after the span instrumentation above, so the core\n // trace propagation logic takes precedence. Otherwise, the sentry-trace header may be set multiple times.\n instrumentSentryNodeFetch(options);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\n// Matching the behavior of the base instrumentation\nfunction getAbsoluteUrl(origin: string, path: string = '/'): string {\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n}\n\nfunction _shouldInstrumentSpans(options: NodeFetchOptions, clientOptions: Partial<NodeClientOptions> = {}): boolean {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n return typeof options.spans === 'boolean'\n ? options.spans\n : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);\n}\n\n/** Exported only for tests. */\nexport function _getConfigWithDefaults(options: Partial<NodeFetchOptions> = {}): UndiciInstrumentationConfig {\n const instrumentationConfig = {\n ignoreRequestHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n const shouldIgnore = _ignoreOutgoingRequests && url && _ignoreOutgoingRequests(url);\n\n return !!shouldIgnore;\n },\n startSpanHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Sanitize data URLs to prevent long base64 strings in span attributes\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n 'http.url': sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_URL_FULL]: sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: `${request.method || 'GET'} ${sanitizedUrl}`,\n };\n }\n\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n };\n },\n requestHook: options.requestHook,\n responseHook: options.responseHook,\n headersToSpanAttributes: options.headersToSpanAttributes,\n } satisfies UndiciInstrumentationConfig;\n\n return instrumentationConfig;\n}\n"],"names":["UndiciInstrumentation","generateInstrumentOnce","SentryNodeFetchInstrumentation","getClient","defineIntegration","hasSpansEnabled","stripDataUrlContent","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_URL_FULL","SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME"],"mappings":";;;;;;AAgBA,MAAM,gBAAA,GAAmB,WAAA;AAuCzB,IAAI,sBAAA;AAIJ,SAAS,yBAAyB,OAAA,EAAiC;AACjE,EAAA,IAAI,CAAC,sBAAA,EAAwB;AAC3B,IAAA,sBAAA,GAAyB,IAAIA,4BAAA,CAAsB,sBAAA,CAAuB,OAAO,CAAC,CAAA;AAAA,EACpF;AACA,EAAA,sBAAA,CAAuB,MAAA,EAAO;AAChC;AAEA,MAAM,yBAAA,GAA4BC,+BAAA;AAAA,EAChC,GAAG,gBAAgB,CAAA,OAAA,CAAA;AAAA,EACnBC,uCAAA;AAAA,EACA,CAAC,OAAA,KAA8B;AAC7B,IAAA,OAAO,OAAA;AAAA,EACT;AACF,CAAA;AAEA,MAAM,2BAAA,IAA+B,CAAC,OAAA,GAA4B,EAAC,KAAM;AACvE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,WAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,MAAM,kBAAkB,sBAAA,CAAuB,OAAA,EAASC,cAAA,EAAsB,EAAG,YAAY,CAAA;AAG7F,MAAA,IAAI,eAAA,EAAiB;AACnB,QAAA,wBAAA,CAAyB,OAAO,CAAA;AAAA,MAClC;AAKA,MAAA,yBAAA,CAA0B,OAAO,CAAA;AAAA,IACnC;AAAA,GACF;AACF,CAAA,CAAA;AAEO,MAAM,0BAAA,GAA6BC,uBAAkB,2BAA2B;AAGvF,SAAS,cAAA,CAAe,MAAA,EAAgB,IAAA,GAAe,GAAA,EAAa;AAClE,EAAA,MAAM,GAAA,GAAM,GAAG,MAAM,CAAA,CAAA;AAErB,EAAA,IAAI,IAAI,QAAA,CAAS,GAAG,KAAK,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AAC7C,IAAA,OAAO,GAAG,GAAG,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAAA,EAC/B;AAEA,EAAA,IAAI,CAAC,IAAI,QAAA,CAAS,GAAG,KAAK,CAAC,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AAC/C,IAAA,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,EACvB;AAEA,EAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA;AACtB;AAEA,SAAS,sBAAA,CAAuB,OAAA,EAA2B,aAAA,GAA4C,EAAC,EAAY;AAGlH,EAAA,OAAO,OAAO,OAAA,CAAQ,KAAA,KAAU,SAAA,GAC5B,OAAA,CAAQ,QACR,CAAC,aAAA,CAAc,sBAAA,IAA0BC,oBAAA,CAAgB,aAAa,CAAA;AAC5E;AAGO,SAAS,sBAAA,CAAuB,OAAA,GAAqC,EAAC,EAAgC;AAC3G,EAAA,MAAM,qBAAA,GAAwB;AAAA,IAC5B,mBAAmB,CAAA,OAAA,KAAW;AAC5B,MAAA,MAAM,GAAA,GAAM,cAAA,CAAe,OAAA,CAAQ,MAAA,EAAQ,QAAQ,IAAI,CAAA;AACvD,MAAA,MAAM,0BAA0B,OAAA,CAAQ,sBAAA;AACxC,MAAA,MAAM,YAAA,GAAe,uBAAA,IAA2B,GAAA,IAAO,uBAAA,CAAwB,GAAG,CAAA;AAElF,MAAA,OAAO,CAAC,CAAC,YAAA;AAAA,IACX,CAAA;AAAA,IACA,eAAe,CAAA,OAAA,KAAW;AACxB,MAAA,MAAM,GAAA,GAAM,cAAA,CAAe,OAAA,CAAQ,MAAA,EAAQ,QAAQ,IAAI,CAAA;AAGvD,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,OAAO,CAAA,EAAG;AAC3B,QAAA,MAAM,YAAA,GAAeC,yBAAoB,GAAG,CAAA;AAC5C,QAAA,OAAO;AAAA,UACL,CAACC,qCAAgC,GAAG,2BAAA;AAAA,UACpC,UAAA,EAAY,YAAA;AAAA,UACZ,CAACC,gCAA2B,GAAG,YAAA;AAAA,UAC/B,CAACC,+CAA0C,GAAG,CAAA,EAAG,QAAQ,MAAA,IAAU,KAAK,IAAI,YAAY,CAAA;AAAA,SAC1F;AAAA,MACF;AAEA,MAAA,OAAO;AAAA,QACL,CAACF,qCAAgC,GAAG;AAAA,OACtC;AAAA,IACF,CAAA;AAAA,IACA,aAAa,OAAA,CAAQ,WAAA;AAAA,IACrB,cAAc,OAAA,CAAQ,YAAA;AAAA,IACtB,yBAAyB,OAAA,CAAQ;AAAA,GACnC;AAEA,EAAA,OAAO,qBAAA;AACT;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
const ATTR_HTTP_REQUEST_METHOD = "http.request.method";
|
|
4
|
+
const ATTR_HTTP_REQUEST_METHOD_ORIGINAL = "http.request.method_original";
|
|
5
|
+
const ATTR_HTTP_RESPONSE_STATUS_CODE = "http.response.status_code";
|
|
6
|
+
const ATTR_NETWORK_PEER_ADDRESS = "network.peer.address";
|
|
7
|
+
const ATTR_NETWORK_PEER_PORT = "network.peer.port";
|
|
8
|
+
const ATTR_SERVER_ADDRESS = "server.address";
|
|
9
|
+
const ATTR_SERVER_PORT = "server.port";
|
|
10
|
+
const ATTR_URL_FULL = "url.full";
|
|
11
|
+
const ATTR_URL_PATH = "url.path";
|
|
12
|
+
const ATTR_URL_QUERY = "url.query";
|
|
13
|
+
const ATTR_URL_SCHEME = "url.scheme";
|
|
14
|
+
const ATTR_USER_AGENT_ORIGINAL = "user_agent.original";
|
|
15
|
+
|
|
16
|
+
exports.ATTR_HTTP_REQUEST_METHOD = ATTR_HTTP_REQUEST_METHOD;
|
|
17
|
+
exports.ATTR_HTTP_REQUEST_METHOD_ORIGINAL = ATTR_HTTP_REQUEST_METHOD_ORIGINAL;
|
|
18
|
+
exports.ATTR_HTTP_RESPONSE_STATUS_CODE = ATTR_HTTP_RESPONSE_STATUS_CODE;
|
|
19
|
+
exports.ATTR_NETWORK_PEER_ADDRESS = ATTR_NETWORK_PEER_ADDRESS;
|
|
20
|
+
exports.ATTR_NETWORK_PEER_PORT = ATTR_NETWORK_PEER_PORT;
|
|
21
|
+
exports.ATTR_SERVER_ADDRESS = ATTR_SERVER_ADDRESS;
|
|
22
|
+
exports.ATTR_SERVER_PORT = ATTR_SERVER_PORT;
|
|
23
|
+
exports.ATTR_URL_FULL = ATTR_URL_FULL;
|
|
24
|
+
exports.ATTR_URL_PATH = ATTR_URL_PATH;
|
|
25
|
+
exports.ATTR_URL_QUERY = ATTR_URL_QUERY;
|
|
26
|
+
exports.ATTR_URL_SCHEME = ATTR_URL_SCHEME;
|
|
27
|
+
exports.ATTR_USER_AGENT_ORIGINAL = ATTR_USER_AGENT_ORIGINAL;
|
|
28
|
+
//# sourceMappingURL=semconv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semconv.js","sources":["../../../../../src/integrations/node-fetch/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/ed97091c9890dd18e52759f2ea98e9d7593b3ae4/packages/instrumentation-undici\n * - Upstream version: @opentelemetry/instrumentation-undici@0.24.0\n * - The semantic-convention constants this package emits, inlined from\n * `@opentelemetry/semantic-conventions` (matching the sibling vendored dirs).\n */\n\nexport const ATTR_HTTP_REQUEST_METHOD = 'http.request.method' as const;\nexport const ATTR_HTTP_REQUEST_METHOD_ORIGINAL = 'http.request.method_original' as const;\nexport const ATTR_HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code' as const;\nexport const ATTR_NETWORK_PEER_ADDRESS = 'network.peer.address' as const;\nexport const ATTR_NETWORK_PEER_PORT = 'network.peer.port' as const;\nexport const ATTR_SERVER_ADDRESS = 'server.address' as const;\nexport const ATTR_SERVER_PORT = 'server.port' as const;\nexport const ATTR_URL_FULL = 'url.full' as const;\nexport const ATTR_URL_PATH = 'url.path' as const;\nexport const ATTR_URL_QUERY = 'url.query' as const;\nexport const ATTR_URL_SCHEME = 'url.scheme' as const;\nexport const ATTR_USER_AGENT_ORIGINAL = 'user_agent.original' as const;\n"],"names":[],"mappings":";;AAWO,MAAM,wBAAA,GAA2B;AACjC,MAAM,iCAAA,GAAoC;AAC1C,MAAM,8BAAA,GAAiC;AACvC,MAAM,yBAAA,GAA4B;AAClC,MAAM,sBAAA,GAAyB;AAC/B,MAAM,mBAAA,GAAsB;AAC5B,MAAM,gBAAA,GAAmB;AACzB,MAAM,aAAA,GAAgB;AACtB,MAAM,aAAA,GAAgB;AACtB,MAAM,cAAA,GAAiB;AACvB,MAAM,eAAA,GAAkB;AACxB,MAAM,wBAAA,GAA2B;;;;;;;;;;;;;;;"}
|
|
@@ -2,29 +2,34 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
|
|
3
3
|
const diagch = require('diagnostics_channel');
|
|
4
4
|
const url = require('url');
|
|
5
|
-
const instrumentation = require('@opentelemetry/instrumentation');
|
|
6
|
-
const api = require('@opentelemetry/api');
|
|
7
|
-
const semanticConventions = require('@opentelemetry/semantic-conventions');
|
|
8
5
|
const core = require('@sentry/core');
|
|
6
|
+
const debugBuild = require('../../../debug-build.js');
|
|
7
|
+
const semconv = require('./semconv.js');
|
|
9
8
|
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// No need to instrument files/modules
|
|
17
|
-
init() {
|
|
9
|
+
const SPAN_KIND_CLIENT = 2;
|
|
10
|
+
function safeExecute(fn, onError) {
|
|
11
|
+
try {
|
|
12
|
+
return fn();
|
|
13
|
+
} catch (error) {
|
|
14
|
+
onError(error);
|
|
18
15
|
return void 0;
|
|
19
16
|
}
|
|
17
|
+
}
|
|
18
|
+
class UndiciInstrumentation {
|
|
19
|
+
constructor(config = {}) {
|
|
20
|
+
// Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for unsubscribing.
|
|
21
|
+
this._channelSubs = [];
|
|
22
|
+
this._spanFromReq = /* @__PURE__ */ new WeakMap();
|
|
23
|
+
// Caches trace-propagation decisions per URL so we don't recompute the `tracePropagationTargets` regexes per request.
|
|
24
|
+
this._propagationDecisionMap = new core.LRUMap(100);
|
|
25
|
+
this._config = config;
|
|
26
|
+
}
|
|
20
27
|
disable() {
|
|
21
|
-
super.disable();
|
|
22
28
|
this._channelSubs.forEach((sub) => sub.unsubscribe());
|
|
23
29
|
this._channelSubs.length = 0;
|
|
24
30
|
}
|
|
31
|
+
/** Subscribe to the undici diagnostics channels (idempotent). */
|
|
25
32
|
enable() {
|
|
26
|
-
super.enable();
|
|
27
|
-
this._channelSubs = this._channelSubs || [];
|
|
28
33
|
if (this._channelSubs.length > 0) {
|
|
29
34
|
return;
|
|
30
35
|
}
|
|
@@ -34,16 +39,6 @@ class UndiciInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
34
39
|
this.subscribeToChannel("undici:request:trailers", this.onDone.bind(this));
|
|
35
40
|
this.subscribeToChannel("undici:request:error", this.onError.bind(this));
|
|
36
41
|
}
|
|
37
|
-
_updateMetricInstruments() {
|
|
38
|
-
this._httpClientDurationHistogram = this.meter.createHistogram(semanticConventions.METRIC_HTTP_CLIENT_REQUEST_DURATION, {
|
|
39
|
-
description: "Measures the duration of outbound HTTP requests.",
|
|
40
|
-
unit: "s",
|
|
41
|
-
valueType: api.ValueType.DOUBLE,
|
|
42
|
-
advice: {
|
|
43
|
-
explicitBucketBoundaries: [5e-3, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10]
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
42
|
subscribeToChannel(diagnosticChannel, onMessage) {
|
|
48
43
|
const [major = 0, minor = 0] = process.version.replace("v", "").split(".").map((n) => Number(n));
|
|
49
44
|
const useNewSubscribe = major > 18 || major === 18 && minor >= 19;
|
|
@@ -99,112 +94,79 @@ class UndiciInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
99
94
|
// create the span and populate some atttributes, then link the span to the request for further
|
|
100
95
|
// span processing
|
|
101
96
|
onRequestCreated({ request }) {
|
|
102
|
-
const config = this.
|
|
97
|
+
const config = this._config;
|
|
103
98
|
const enabled = config.enabled !== false;
|
|
104
|
-
const shouldIgnoreReq =
|
|
99
|
+
const shouldIgnoreReq = safeExecute(
|
|
105
100
|
() => !enabled || request.method === "CONNECT" || config.ignoreRequestHook?.(request),
|
|
106
|
-
(e) => e &&
|
|
107
|
-
true
|
|
101
|
+
(e) => e && debugBuild.DEBUG_BUILD && core.debug.error("caught ignoreRequestHook error: ", e)
|
|
108
102
|
);
|
|
109
103
|
if (shouldIgnoreReq) {
|
|
110
104
|
return;
|
|
111
105
|
}
|
|
112
|
-
const startTime = core.timestampInSeconds();
|
|
113
106
|
let requestUrl;
|
|
114
107
|
try {
|
|
115
108
|
requestUrl = new url.URL(request.path, request.origin);
|
|
116
109
|
} catch (err) {
|
|
117
|
-
|
|
110
|
+
debugBuild.DEBUG_BUILD && core.debug.warn("could not determine url.full:", err);
|
|
118
111
|
return;
|
|
119
112
|
}
|
|
120
113
|
const urlScheme = requestUrl.protocol.replace(":", "");
|
|
121
114
|
const requestMethod = this.getRequestMethod(request.method);
|
|
122
115
|
const attributes = {
|
|
123
|
-
[
|
|
124
|
-
[
|
|
125
|
-
[
|
|
126
|
-
[
|
|
127
|
-
[
|
|
128
|
-
[
|
|
116
|
+
[semconv.ATTR_HTTP_REQUEST_METHOD]: requestMethod,
|
|
117
|
+
[semconv.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]: request.method,
|
|
118
|
+
[semconv.ATTR_URL_FULL]: requestUrl.toString(),
|
|
119
|
+
[semconv.ATTR_URL_PATH]: requestUrl.pathname,
|
|
120
|
+
[semconv.ATTR_URL_QUERY]: requestUrl.search,
|
|
121
|
+
[semconv.ATTR_URL_SCHEME]: urlScheme
|
|
129
122
|
};
|
|
130
123
|
const schemePorts = { https: "443", http: "80" };
|
|
131
124
|
const serverAddress = requestUrl.hostname;
|
|
132
125
|
const serverPort = requestUrl.port || schemePorts[urlScheme];
|
|
133
|
-
attributes[
|
|
126
|
+
attributes[semconv.ATTR_SERVER_ADDRESS] = serverAddress;
|
|
134
127
|
if (serverPort && !isNaN(Number(serverPort))) {
|
|
135
|
-
attributes[
|
|
128
|
+
attributes[semconv.ATTR_SERVER_PORT] = Number(serverPort);
|
|
136
129
|
}
|
|
137
130
|
const headersMap = this.parseRequestHeaders(request);
|
|
138
131
|
const userAgentValues = headersMap.get("user-agent");
|
|
139
132
|
if (userAgentValues) {
|
|
140
133
|
const userAgent = Array.isArray(userAgentValues) ? userAgentValues[userAgentValues.length - 1] : userAgentValues;
|
|
141
|
-
attributes[
|
|
134
|
+
attributes[semconv.ATTR_USER_AGENT_ORIGINAL] = userAgent;
|
|
142
135
|
}
|
|
143
|
-
const hookAttributes =
|
|
136
|
+
const hookAttributes = safeExecute(
|
|
144
137
|
() => config.startSpanHook?.(request),
|
|
145
|
-
(e) => e &&
|
|
146
|
-
true
|
|
138
|
+
(e) => e && debugBuild.DEBUG_BUILD && core.debug.error("caught startSpanHook error: ", e)
|
|
147
139
|
);
|
|
148
140
|
if (hookAttributes) {
|
|
149
141
|
Object.entries(hookAttributes).forEach(([key, val]) => {
|
|
150
142
|
attributes[key] = val;
|
|
151
143
|
});
|
|
152
144
|
}
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
span = this.tracer.startSpan(
|
|
160
|
-
requestMethod === "_OTHER" ? "HTTP" : requestMethod,
|
|
161
|
-
{
|
|
162
|
-
kind: api.SpanKind.CLIENT,
|
|
163
|
-
attributes
|
|
164
|
-
},
|
|
165
|
-
activeCtx
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
instrumentation.safeExecuteInTheMiddle(
|
|
145
|
+
const span = core.startInactiveSpan({
|
|
146
|
+
name: requestMethod === "_OTHER" ? "HTTP" : requestMethod,
|
|
147
|
+
kind: SPAN_KIND_CLIENT,
|
|
148
|
+
attributes
|
|
149
|
+
});
|
|
150
|
+
safeExecute(
|
|
169
151
|
() => config.requestHook?.(span, request),
|
|
170
|
-
(e) => e &&
|
|
171
|
-
true
|
|
152
|
+
(e) => e && debugBuild.DEBUG_BUILD && core.debug.error("caught requestHook error: ", e)
|
|
172
153
|
);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
api.propagation.inject(requestContext, addedHeaders);
|
|
176
|
-
const headerEntries = Object.entries(addedHeaders);
|
|
177
|
-
for (let i = 0; i < headerEntries.length; i++) {
|
|
178
|
-
const pair = headerEntries[i];
|
|
179
|
-
if (!pair) {
|
|
180
|
-
continue;
|
|
181
|
-
}
|
|
182
|
-
const [k, v] = pair;
|
|
183
|
-
if (typeof request.addHeader === "function") {
|
|
184
|
-
request.addHeader(k, v);
|
|
185
|
-
} else if (typeof request.headers === "string") {
|
|
186
|
-
request.headers += `${k}: ${v}\r
|
|
187
|
-
`;
|
|
188
|
-
} else if (Array.isArray(request.headers)) {
|
|
189
|
-
request.headers.push(k, v);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
this._recordFromReq.set(request, { span, attributes, startTime });
|
|
154
|
+
this.injectTracePropagationHeaders(span, request, requestUrl.toString());
|
|
155
|
+
this._spanFromReq.set(request, span);
|
|
193
156
|
}
|
|
194
157
|
// This is the 2nd message we receive for each request. It is fired when connection with
|
|
195
158
|
// the remote is established and about to send the first byte. Here we do have info about the
|
|
196
159
|
// remote address and port so we can populate some `network.*` attributes into the span
|
|
197
160
|
onRequestHeaders({ request, socket }) {
|
|
198
|
-
const
|
|
199
|
-
if (!
|
|
161
|
+
const span = this._spanFromReq.get(request);
|
|
162
|
+
if (!span) {
|
|
200
163
|
return;
|
|
201
164
|
}
|
|
202
|
-
const config = this.
|
|
203
|
-
const { span } = record;
|
|
165
|
+
const config = this._config;
|
|
204
166
|
const { remoteAddress, remotePort } = socket;
|
|
205
167
|
const spanAttributes = {
|
|
206
|
-
[
|
|
207
|
-
[
|
|
168
|
+
[semconv.ATTR_NETWORK_PEER_ADDRESS]: remoteAddress,
|
|
169
|
+
[semconv.ATTR_NETWORK_PEER_PORT]: remotePort
|
|
208
170
|
};
|
|
209
171
|
if (config.headersToSpanAttributes?.requestHeaders) {
|
|
210
172
|
const headersToAttribs = new Set(config.headersToSpanAttributes.requestHeaders.map((n) => n.toLowerCase()));
|
|
@@ -222,19 +184,17 @@ class UndiciInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
222
184
|
// headers are received, body may not be accessible yet.
|
|
223
185
|
// From the response headers we can set the status and content length
|
|
224
186
|
onResponseHeaders({ request, response }) {
|
|
225
|
-
const
|
|
226
|
-
if (!
|
|
187
|
+
const span = this._spanFromReq.get(request);
|
|
188
|
+
if (!span) {
|
|
227
189
|
return;
|
|
228
190
|
}
|
|
229
|
-
const { span, attributes } = record;
|
|
230
191
|
const spanAttributes = {
|
|
231
|
-
[
|
|
192
|
+
[semconv.ATTR_HTTP_RESPONSE_STATUS_CODE]: response.statusCode
|
|
232
193
|
};
|
|
233
|
-
const config = this.
|
|
234
|
-
|
|
194
|
+
const config = this._config;
|
|
195
|
+
safeExecute(
|
|
235
196
|
() => config.responseHook?.(span, { request, response }),
|
|
236
|
-
(e) => e &&
|
|
237
|
-
true
|
|
197
|
+
(e) => e && debugBuild.DEBUG_BUILD && core.debug.error("caught responseHook error: ", e)
|
|
238
198
|
);
|
|
239
199
|
if (config.headersToSpanAttributes?.responseHeaders) {
|
|
240
200
|
const headersToAttribs = /* @__PURE__ */ new Set();
|
|
@@ -258,21 +218,18 @@ class UndiciInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
258
218
|
}
|
|
259
219
|
}
|
|
260
220
|
span.setAttributes(spanAttributes);
|
|
261
|
-
|
|
262
|
-
code:
|
|
263
|
-
}
|
|
264
|
-
record.attributes = Object.assign(attributes, spanAttributes);
|
|
221
|
+
if (response.statusCode >= 400) {
|
|
222
|
+
span.setStatus({ code: core.SPAN_STATUS_ERROR });
|
|
223
|
+
}
|
|
265
224
|
}
|
|
266
225
|
// This is the last event we receive if the request went without any errors
|
|
267
226
|
onDone({ request }) {
|
|
268
|
-
const
|
|
269
|
-
if (!
|
|
227
|
+
const span = this._spanFromReq.get(request);
|
|
228
|
+
if (!span) {
|
|
270
229
|
return;
|
|
271
230
|
}
|
|
272
|
-
const { span, attributes, startTime } = record;
|
|
273
231
|
span.end();
|
|
274
|
-
this.
|
|
275
|
-
this.recordRequestDuration(attributes, startTime);
|
|
232
|
+
this._spanFromReq.delete(request);
|
|
276
233
|
}
|
|
277
234
|
// This is the event we get when something is wrong in the request like
|
|
278
235
|
// - invalid options when calling `fetch` global API or any undici method for request
|
|
@@ -281,38 +238,45 @@ class UndiciInstrumentation extends instrumentation.InstrumentationBase {
|
|
|
281
238
|
// NOTE: server errors are considered valid responses and it's the lib consumer
|
|
282
239
|
// who should deal with that.
|
|
283
240
|
onError({ request, error }) {
|
|
284
|
-
const
|
|
285
|
-
if (!
|
|
241
|
+
const span = this._spanFromReq.get(request);
|
|
242
|
+
if (!span) {
|
|
286
243
|
return;
|
|
287
244
|
}
|
|
288
|
-
const { span, attributes, startTime } = record;
|
|
289
|
-
span.recordException(error);
|
|
290
245
|
span.setStatus({
|
|
291
|
-
code:
|
|
246
|
+
code: core.SPAN_STATUS_ERROR,
|
|
292
247
|
message: error.message
|
|
293
248
|
});
|
|
294
249
|
span.end();
|
|
295
|
-
this.
|
|
296
|
-
attributes[semanticConventions.ATTR_ERROR_TYPE] = error.message;
|
|
297
|
-
this.recordRequestDuration(attributes, startTime);
|
|
250
|
+
this._spanFromReq.delete(request);
|
|
298
251
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
252
|
+
// Propagate the trace data of the given (client) span into the outgoing request headers, gated by
|
|
253
|
+
// `tracePropagationTargets`. Mirrors what `propagation.inject()` did with the SentryPropagator, but
|
|
254
|
+
// via Sentry's `getTraceData()` so we stay off OpenTelemetry's propagation API.
|
|
255
|
+
injectTracePropagationHeaders(span, request, url) {
|
|
256
|
+
const { tracePropagationTargets, propagateTraceparent } = core.getClient()?.getOptions() ?? {};
|
|
257
|
+
if (!core.shouldPropagateTraceForUrl(url, tracePropagationTargets, this._propagationDecisionMap)) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
const addedHeaders = core.withActiveSpan(span, () => core.getTraceData({ propagateTraceparent }));
|
|
261
|
+
const headerEntries = Object.entries(addedHeaders);
|
|
262
|
+
for (let i = 0; i < headerEntries.length; i++) {
|
|
263
|
+
const pair = headerEntries[i];
|
|
264
|
+
if (!pair) {
|
|
265
|
+
continue;
|
|
312
266
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
267
|
+
const [k, v] = pair;
|
|
268
|
+
if (!v) {
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
if (typeof request.addHeader === "function") {
|
|
272
|
+
request.addHeader(k, v);
|
|
273
|
+
} else if (typeof request.headers === "string") {
|
|
274
|
+
request.headers += `${k}: ${v}\r
|
|
275
|
+
`;
|
|
276
|
+
} else if (Array.isArray(request.headers)) {
|
|
277
|
+
request.headers.push(k, v);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
316
280
|
}
|
|
317
281
|
getRequestMethod(original) {
|
|
318
282
|
const knownMethods = {
|