@sentry/node 10.57.0 → 10.59.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 +2 -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/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/index.js +2 -22
- package/build/cjs/integrations/tracing/dataloader/index.js.map +1 -1
- package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js +93 -120
- 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 +37 -37
- 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/vendored/instrumentation.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/internal-types.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/propagator.js.map +1 -1
- package/build/cjs/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
- 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 +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/esm/index.js +1 -0
- 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/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/index.js +4 -24
- package/build/esm/integrations/tracing/dataloader/index.js.map +1 -1
- package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js +95 -122
- 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 +38 -38
- 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/vendored/instrumentation.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/internal-types.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/propagator.js.map +1 -1
- package/build/esm/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
- 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 +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/import-hook.mjs +6 -0
- package/build/types/index.d.ts +1 -0
- 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/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/node-fetch/vendored/types.d.ts.map +1 -1
- 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/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts +2 -5
- package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/dataloader/vendored/types.d.ts +20 -8
- 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/generic-pool-types.d.ts +1 -1
- package/build/types/integrations/tracing/genericPool/vendored/generic-pool-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/genericPool/vendored/instrumentation.d.ts +2 -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/vendored/instrumentation.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/internal-types.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/propagator.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts.map +1 -1
- package/build/types/integrations/tracing/kafka/vendored/types.d.ts.map +1 -1
- 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-ts3.8/index.d.ts +1 -0
- 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/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/dataloader/vendored/instrumentation.d.ts +2 -5
- package/build/types-ts3.8/integrations/tracing/dataloader/vendored/types.d.ts +20 -8
- package/build/types-ts3.8/integrations/tracing/genericPool/vendored/generic-pool-types.d.ts +1 -1
- package/build/types-ts3.8/integrations/tracing/genericPool/vendored/instrumentation.d.ts +2 -1
- 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/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 -6
- 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/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/dataloader/vendored/dataloader-types.d.ts +0 -14
- package/build/types/integrations/tracing/dataloader/vendored/dataloader-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-ts3.8/integrations/tracing/dataloader/vendored/dataloader-types.d.ts +0 -14
- 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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ConnectTypes,
|
|
2
|
-
import { SDK_VERSION } from '@sentry/core';
|
|
1
|
+
import { ConnectTypes, AttributeNames } from './enums/AttributeNames.js';
|
|
2
|
+
import { SDK_VERSION, isError, SPAN_STATUS_ERROR, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';
|
|
3
3
|
import { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute.js';
|
|
4
4
|
import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';
|
|
5
5
|
import { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';
|
|
@@ -27,49 +27,45 @@ class ConnectInstrumentation extends InstrumentationBase {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
_patchConstructor(original) {
|
|
30
|
-
const
|
|
30
|
+
const patchApp = this._patchApp.bind(this);
|
|
31
31
|
return function(...args) {
|
|
32
|
-
const app =
|
|
33
|
-
|
|
32
|
+
const app = Reflect.apply(original, this, args);
|
|
33
|
+
patchApp(app);
|
|
34
34
|
return app;
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
_patchNext(next, finishSpan) {
|
|
37
|
+
_patchNext(next, span, finishSpan) {
|
|
38
38
|
return function nextFunction(err) {
|
|
39
|
+
if (isError(err)) {
|
|
40
|
+
span.setStatus({ code: SPAN_STATUS_ERROR, message: "internal_error" });
|
|
41
|
+
}
|
|
39
42
|
const result = next.apply(this, [err]);
|
|
40
43
|
finishSpan();
|
|
41
44
|
return result;
|
|
42
45
|
};
|
|
43
46
|
}
|
|
44
47
|
_startSpan(routeName, middleWare) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
connectType
|
|
50
|
-
connectTypeName = ConnectNames.REQUEST_HANDLER;
|
|
51
|
-
connectName = routeName;
|
|
52
|
-
} else {
|
|
53
|
-
connectType = ConnectTypes.MIDDLEWARE;
|
|
54
|
-
connectTypeName = ConnectNames.MIDDLEWARE;
|
|
55
|
-
connectName = middleWare.name || ANONYMOUS_NAME;
|
|
56
|
-
}
|
|
57
|
-
const spanName = `${connectTypeName} - ${connectName}`;
|
|
58
|
-
const options = {
|
|
48
|
+
const connectType = routeName ? ConnectTypes.REQUEST_HANDLER : ConnectTypes.MIDDLEWARE;
|
|
49
|
+
const connectName = routeName || middleWare.name || ANONYMOUS_NAME;
|
|
50
|
+
return startInactiveSpan({
|
|
51
|
+
name: connectName,
|
|
52
|
+
op: `${connectType}.connect`,
|
|
59
53
|
attributes: {
|
|
54
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: "auto.http.otel.connect",
|
|
60
55
|
[ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : "/",
|
|
61
56
|
[AttributeNames.CONNECT_TYPE]: connectType,
|
|
62
57
|
[AttributeNames.CONNECT_NAME]: connectName
|
|
63
58
|
}
|
|
64
|
-
};
|
|
65
|
-
return this.tracer.startSpan(spanName, options);
|
|
59
|
+
});
|
|
66
60
|
}
|
|
67
61
|
_patchMiddleware(routeName, middleWare) {
|
|
68
|
-
const
|
|
62
|
+
const isEnabled = this.isEnabled.bind(this);
|
|
63
|
+
const startSpan = this._startSpan.bind(this);
|
|
64
|
+
const patchNext = this._patchNext.bind(this);
|
|
69
65
|
const isErrorMiddleware = middleWare.length === 4;
|
|
70
66
|
function patchedMiddleware() {
|
|
71
|
-
if (!
|
|
72
|
-
return
|
|
67
|
+
if (!isEnabled()) {
|
|
68
|
+
return Reflect.apply(middleWare, this, arguments);
|
|
73
69
|
}
|
|
74
70
|
const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware ? [1, 2, 3] : [0, 1, 2];
|
|
75
71
|
const req = arguments[reqArgIdx];
|
|
@@ -79,28 +75,24 @@ class ConnectInstrumentation extends InstrumentationBase {
|
|
|
79
75
|
if (routeName) {
|
|
80
76
|
setHttpServerSpanRouteAttribute(generateRoute(req));
|
|
81
77
|
}
|
|
82
|
-
|
|
83
|
-
if (routeName) {
|
|
84
|
-
spanName = `request handler - ${routeName}`;
|
|
85
|
-
} else {
|
|
86
|
-
spanName = `middleware - ${middleWare.name || ANONYMOUS_NAME}`;
|
|
87
|
-
}
|
|
88
|
-
const span = instrumentation._startSpan(routeName, middleWare);
|
|
89
|
-
instrumentation._diag.debug("start span", spanName);
|
|
78
|
+
const span = startSpan(routeName, middleWare);
|
|
90
79
|
let spanFinished = false;
|
|
91
80
|
function finishSpan() {
|
|
92
81
|
if (!spanFinished) {
|
|
93
82
|
spanFinished = true;
|
|
94
|
-
instrumentation._diag.debug(`finishing span ${span.name}`);
|
|
95
83
|
span.end();
|
|
96
|
-
} else {
|
|
97
|
-
instrumentation._diag.debug(`span ${span.name} - already finished`);
|
|
98
84
|
}
|
|
99
85
|
res.removeListener("close", finishSpan);
|
|
100
86
|
}
|
|
101
87
|
res.addListener("close", finishSpan);
|
|
102
|
-
arguments[nextArgIdx] =
|
|
103
|
-
|
|
88
|
+
arguments[nextArgIdx] = patchNext(next, span, finishSpan);
|
|
89
|
+
try {
|
|
90
|
+
return Reflect.apply(middleWare, this, arguments);
|
|
91
|
+
} catch (e) {
|
|
92
|
+
span.setStatus({ code: SPAN_STATUS_ERROR, message: "internal_error" });
|
|
93
|
+
finishSpan();
|
|
94
|
+
throw e;
|
|
95
|
+
}
|
|
104
96
|
}
|
|
105
97
|
Object.defineProperty(patchedMiddleware, "length", {
|
|
106
98
|
value: middleWare.length,
|
|
@@ -110,25 +102,25 @@ class ConnectInstrumentation extends InstrumentationBase {
|
|
|
110
102
|
return patchedMiddleware;
|
|
111
103
|
}
|
|
112
104
|
_patchUse(original) {
|
|
113
|
-
const
|
|
105
|
+
const patchMiddleware = this._patchMiddleware.bind(this);
|
|
114
106
|
return function(...args) {
|
|
115
107
|
const middleWare = args[args.length - 1];
|
|
116
108
|
const routeName = args[args.length - 2] || "";
|
|
117
|
-
args[args.length - 1] =
|
|
109
|
+
args[args.length - 1] = patchMiddleware(routeName, middleWare);
|
|
118
110
|
return original.apply(this, args);
|
|
119
111
|
};
|
|
120
112
|
}
|
|
121
113
|
_patchHandle(original) {
|
|
122
|
-
const
|
|
114
|
+
const patchOut = this._patchOut.bind(this);
|
|
123
115
|
return function() {
|
|
124
116
|
const [reqIdx, outIdx] = [0, 2];
|
|
125
117
|
const req = arguments[reqIdx];
|
|
126
118
|
const out = arguments[outIdx];
|
|
127
119
|
const completeStack = addNewStackLayer(req);
|
|
128
120
|
if (typeof out === "function") {
|
|
129
|
-
arguments[outIdx] =
|
|
121
|
+
arguments[outIdx] = patchOut(out, completeStack);
|
|
130
122
|
}
|
|
131
|
-
return
|
|
123
|
+
return Reflect.apply(original, this, arguments);
|
|
132
124
|
};
|
|
133
125
|
}
|
|
134
126
|
_patchOut(out, completeStack) {
|
|
@@ -139,5 +131,5 @@ class ConnectInstrumentation extends InstrumentationBase {
|
|
|
139
131
|
}
|
|
140
132
|
}
|
|
141
133
|
|
|
142
|
-
export {
|
|
134
|
+
export { ConnectInstrumentation };
|
|
143
135
|
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/connect/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-connect\n * - Upstream version: @opentelemetry/instrumentation-connect@0.61.0\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n */\n/* eslint-disable */\n\nimport { context, Span, SpanOptions } from '@opentelemetry/api';\nimport type { ServerResponse } from 'http';\nimport { AttributeNames, ConnectNames, ConnectTypes } from './enums/AttributeNames';\nimport { HandleFunction, NextFunction, Server, PatchedRequest, Use, UseArgs, UseArgs2 } from './internal-types';\nimport { SDK_VERSION } from '@sentry/core';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute';\nimport {\n InstrumentationBase,\n InstrumentationConfig,\n InstrumentationNodeModuleDefinition,\n isWrapped,\n} from '@opentelemetry/instrumentation';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { replaceCurrentStackRoute, addNewStackLayer, generateRoute } from './utils';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-connect';\n\nexport const ANONYMOUS_NAME = 'anonymous';\n\n/** Connect instrumentation for OpenTelemetry */\nexport class ConnectInstrumentation extends InstrumentationBase {\n constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init() {\n return [\n new InstrumentationNodeModuleDefinition('connect', ['>=3.0.0 <4'], moduleExports => {\n return this._patchConstructor(moduleExports);\n }),\n ];\n }\n\n private _patchApp(patchedApp: Server) {\n if (!isWrapped(patchedApp.use)) {\n this._wrap(patchedApp, 'use', this._patchUse.bind(this));\n }\n if (!isWrapped(patchedApp.handle)) {\n this._wrap(patchedApp, 'handle', this._patchHandle.bind(this));\n }\n }\n\n private _patchConstructor(original: () => Server): () => Server {\n const instrumentation = this;\n return function (this: Server, ...args: any[]) {\n const app = original.apply(this, args) as Server;\n instrumentation._patchApp(app);\n return app;\n };\n }\n\n public _patchNext(next: NextFunction, finishSpan: () => void): NextFunction {\n return function nextFunction(this: NextFunction, err?: any): void {\n const result = next.apply(this, [err]);\n finishSpan();\n return result;\n };\n }\n\n public _startSpan(routeName: string, middleWare: HandleFunction): Span {\n let connectType: ConnectTypes;\n let connectName: string;\n let connectTypeName: string;\n if (routeName) {\n connectType = ConnectTypes.REQUEST_HANDLER;\n connectTypeName = ConnectNames.REQUEST_HANDLER;\n connectName = routeName;\n } else {\n connectType = ConnectTypes.MIDDLEWARE;\n connectTypeName = ConnectNames.MIDDLEWARE;\n connectName = middleWare.name || ANONYMOUS_NAME;\n }\n const spanName = `${connectTypeName} - ${connectName}`;\n const options: SpanOptions = {\n attributes: {\n [ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : '/',\n [AttributeNames.CONNECT_TYPE]: connectType,\n [AttributeNames.CONNECT_NAME]: connectName,\n },\n };\n\n return this.tracer.startSpan(spanName, options);\n }\n\n public _patchMiddleware(routeName: string, middleWare: HandleFunction): HandleFunction {\n const instrumentation = this;\n const isErrorMiddleware = middleWare.length === 4;\n\n function patchedMiddleware(this: Use): void {\n if (!instrumentation.isEnabled()) {\n return (middleWare as any).apply(this, arguments);\n }\n const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware ? [1, 2, 3] : [0, 1, 2];\n const req = arguments[reqArgIdx] as PatchedRequest;\n const res = arguments[resArgIdx] as ServerResponse;\n const next = arguments[nextArgIdx] as NextFunction;\n\n replaceCurrentStackRoute(req, routeName);\n\n if (routeName) {\n setHttpServerSpanRouteAttribute(generateRoute(req));\n }\n\n let spanName = '';\n if (routeName) {\n spanName = `request handler - ${routeName}`;\n } else {\n spanName = `middleware - ${middleWare.name || ANONYMOUS_NAME}`;\n }\n const span = instrumentation._startSpan(routeName, middleWare);\n instrumentation._diag.debug('start span', spanName);\n let spanFinished = false;\n\n function finishSpan() {\n if (!spanFinished) {\n spanFinished = true;\n instrumentation._diag.debug(`finishing span ${(span as any).name}`);\n span.end();\n } else {\n instrumentation._diag.debug(`span ${(span as any).name} - already finished`);\n }\n res.removeListener('close', finishSpan);\n }\n\n res.addListener('close', finishSpan);\n arguments[nextArgIdx] = instrumentation._patchNext(next, finishSpan);\n\n return (middleWare as any).apply(this, arguments);\n }\n\n Object.defineProperty(patchedMiddleware, 'length', {\n value: middleWare.length,\n writable: false,\n configurable: true,\n });\n\n return patchedMiddleware;\n }\n\n public _patchUse(original: Server['use']): Use {\n const instrumentation = this;\n return function (this: Server, ...args: UseArgs): Server {\n const middleWare = args[args.length - 1] as HandleFunction;\n const routeName = (args[args.length - 2] || '') as string;\n\n args[args.length - 1] = instrumentation._patchMiddleware(routeName, middleWare);\n\n return original.apply(this, args as UseArgs2);\n };\n }\n\n public _patchHandle(original: Server['handle']): Server['handle'] {\n const instrumentation = this;\n return function (this: Server): ReturnType<Server['handle']> {\n const [reqIdx, outIdx] = [0, 2];\n const req = arguments[reqIdx] as PatchedRequest;\n const out = arguments[outIdx];\n const completeStack = addNewStackLayer(req);\n\n if (typeof out === 'function') {\n arguments[outIdx] = instrumentation._patchOut(out as NextFunction, completeStack);\n }\n\n return (original as any).apply(this, arguments);\n };\n }\n\n public _patchOut(out: NextFunction, completeStack: () => void): NextFunction {\n return function nextFunction(this: NextFunction, ...args: any[]): void {\n completeStack();\n return Reflect.apply(out, this, args);\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/connect/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-connect\n * - Upstream version: @opentelemetry/instrumentation-connect@0.61.0\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n */\n\nimport type { ServerResponse } from 'http';\nimport { AttributeNames, ConnectTypes } from './enums/AttributeNames';\nimport type { HandleFunction, NextFunction, PatchedRequest, Server, Use, UseArgs, UseArgs2 } from './internal-types';\nimport type { Span } from '@sentry/core';\nimport {\n isError,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n} from '@sentry/core';\nimport { setHttpServerSpanRouteAttribute } from '../../../../utils/setHttpServerSpanRouteAttribute';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport { replaceCurrentStackRoute, addNewStackLayer, generateRoute } from './utils';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-connect';\n\nconst ANONYMOUS_NAME = 'anonymous';\n\n/** Connect instrumentation for OpenTelemetry */\nexport class ConnectInstrumentation extends InstrumentationBase {\n constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init() {\n return [\n new InstrumentationNodeModuleDefinition('connect', ['>=3.0.0 <4'], moduleExports => {\n return this._patchConstructor(moduleExports);\n }),\n ];\n }\n\n private _patchApp(patchedApp: Server) {\n // oxlint-disable-next-line typescript/unbound-method\n if (!isWrapped(patchedApp.use)) {\n this._wrap(patchedApp, 'use', this._patchUse.bind(this));\n }\n // oxlint-disable-next-line typescript/unbound-method\n if (!isWrapped(patchedApp.handle)) {\n this._wrap(patchedApp, 'handle', this._patchHandle.bind(this));\n }\n }\n\n private _patchConstructor(original: () => Server): () => Server {\n const patchApp = this._patchApp.bind(this);\n return function (this: Server, ...args: unknown[]) {\n const app = Reflect.apply(original, this, args) as Server;\n patchApp(app);\n return app;\n };\n }\n\n public _patchNext(next: NextFunction, span: Span, finishSpan: () => void): NextFunction {\n return function nextFunction(this: NextFunction, err?: unknown): void {\n if (isError(err)) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n const result = next.apply(this, [err]);\n finishSpan();\n return result;\n };\n }\n\n public _startSpan(routeName: string, middleWare: HandleFunction): Span {\n const connectType = routeName ? ConnectTypes.REQUEST_HANDLER : ConnectTypes.MIDDLEWARE;\n const connectName = routeName || middleWare.name || ANONYMOUS_NAME;\n return startInactiveSpan({\n name: connectName,\n op: `${connectType}.connect`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.connect',\n [ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : '/',\n [AttributeNames.CONNECT_TYPE]: connectType,\n [AttributeNames.CONNECT_NAME]: connectName,\n },\n });\n }\n\n public _patchMiddleware(routeName: string, middleWare: HandleFunction): HandleFunction {\n const isEnabled = this.isEnabled.bind(this);\n const startSpan: (routeName: string, middleWare: HandleFunction) => Span = this._startSpan.bind(this);\n const patchNext = this._patchNext.bind(this);\n const isErrorMiddleware = middleWare.length === 4;\n\n function patchedMiddleware(this: Use): void {\n if (!isEnabled()) {\n return Reflect.apply(middleWare, this, arguments);\n }\n const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware ? [1, 2, 3] : [0, 1, 2];\n const req = arguments[reqArgIdx] as PatchedRequest;\n const res = arguments[resArgIdx] as ServerResponse;\n const next = arguments[nextArgIdx] as NextFunction;\n\n replaceCurrentStackRoute(req, routeName);\n\n if (routeName) {\n setHttpServerSpanRouteAttribute(generateRoute(req));\n }\n\n const span = startSpan(routeName, middleWare);\n let spanFinished = false;\n\n function finishSpan() {\n if (!spanFinished) {\n spanFinished = true;\n span.end();\n }\n res.removeListener('close', finishSpan);\n }\n\n res.addListener('close', finishSpan);\n arguments[nextArgIdx] = patchNext(next, span, finishSpan);\n\n try {\n return Reflect.apply(middleWare, this, arguments);\n } catch (e) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n finishSpan();\n throw e;\n }\n }\n\n Object.defineProperty(patchedMiddleware, 'length', {\n value: middleWare.length,\n writable: false,\n configurable: true,\n });\n\n return patchedMiddleware;\n }\n\n public _patchUse(original: Server['use']): Use {\n const patchMiddleware = this._patchMiddleware.bind(this);\n return function (this: Server, ...args: UseArgs): Server {\n const middleWare = args[args.length - 1] as HandleFunction;\n const routeName = (args[args.length - 2] || '') as string;\n\n args[args.length - 1] = patchMiddleware(routeName, middleWare);\n\n return original.apply(this, args as UseArgs2);\n };\n }\n\n public _patchHandle(original: Server['handle']): Server['handle'] {\n const patchOut = this._patchOut.bind(this);\n return function (this: Server): ReturnType<Server['handle']> {\n const [reqIdx, outIdx] = [0, 2];\n const req = arguments[reqIdx] as PatchedRequest;\n const out = arguments[outIdx];\n const completeStack = addNewStackLayer(req);\n\n if (typeof out === 'function') {\n arguments[outIdx] = patchOut(out as NextFunction, completeStack);\n }\n\n return Reflect.apply(original, this, arguments);\n };\n }\n\n public _patchOut(out: NextFunction, completeStack: () => void): NextFunction {\n return function nextFunction(this: NextFunction, ...args: unknown[]): void {\n completeStack();\n return Reflect.apply(out, this, args);\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;AA2BA,MAAM,YAAA,GAAe,iCAAA;AAErB,MAAM,cAAA,GAAiB,WAAA;AAGhB,MAAM,+BAA+B,mBAAA,CAAoB;AAAA,EAC9D,WAAA,CAAY,MAAA,GAAgC,EAAC,EAAG;AAC9C,IAAA,KAAA,CAAM,YAAA,EAAc,aAAa,MAAM,CAAA;AAAA,EACzC;AAAA,EAEA,IAAA,GAAO;AACL,IAAA,OAAO;AAAA,MACL,IAAI,mCAAA,CAAoC,SAAA,EAAW,CAAC,YAAY,GAAG,CAAA,aAAA,KAAiB;AAClF,QAAA,OAAO,IAAA,CAAK,kBAAkB,aAAa,CAAA;AAAA,MAC7C,CAAC;AAAA,KACH;AAAA,EACF;AAAA,EAEQ,UAAU,UAAA,EAAoB;AAEpC,IAAA,IAAI,CAAC,SAAA,CAAU,UAAA,CAAW,GAAG,CAAA,EAAG;AAC9B,MAAA,IAAA,CAAK,MAAM,UAAA,EAAY,KAAA,EAAO,KAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,IACzD;AAEA,IAAA,IAAI,CAAC,SAAA,CAAU,UAAA,CAAW,MAAM,CAAA,EAAG;AACjC,MAAA,IAAA,CAAK,MAAM,UAAA,EAAY,QAAA,EAAU,KAAK,YAAA,CAAa,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,IAC/D;AAAA,EACF;AAAA,EAEQ,kBAAkB,QAAA,EAAsC;AAC9D,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AACzC,IAAA,OAAO,YAA2B,IAAA,EAAiB;AACjD,MAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,KAAA,CAAM,QAAA,EAAU,MAAM,IAAI,CAAA;AAC9C,MAAA,QAAA,CAAS,GAAG,CAAA;AACZ,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,EACF;AAAA,EAEO,UAAA,CAAW,IAAA,EAAoB,IAAA,EAAY,UAAA,EAAsC;AACtF,IAAA,OAAO,SAAS,aAAiC,GAAA,EAAqB;AACpE,MAAA,IAAI,OAAA,CAAQ,GAAG,CAAA,EAAG;AAChB,QAAA,IAAA,CAAK,UAAU,EAAE,IAAA,EAAM,iBAAA,EAAmB,OAAA,EAAS,kBAAkB,CAAA;AAAA,MACvE;AACA,MAAA,MAAM,SAAS,IAAA,CAAK,KAAA,CAAM,IAAA,EAAM,CAAC,GAAG,CAAC,CAAA;AACrC,MAAA,UAAA,EAAW;AACX,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,EACF;AAAA,EAEO,UAAA,CAAW,WAAmB,UAAA,EAAkC;AACrE,IAAA,MAAM,WAAA,GAAc,SAAA,GAAY,YAAA,CAAa,eAAA,GAAkB,YAAA,CAAa,UAAA;AAC5E,IAAA,MAAM,WAAA,GAAc,SAAA,IAAa,UAAA,CAAW,IAAA,IAAQ,cAAA;AACpD,IAAA,OAAO,iBAAA,CAAkB;AAAA,MACvB,IAAA,EAAM,WAAA;AAAA,MACN,EAAA,EAAI,GAAG,WAAW,CAAA,QAAA,CAAA;AAAA,MAClB,UAAA,EAAY;AAAA,QACV,CAAC,gCAAgC,GAAG,wBAAA;AAAA,QACpC,CAAC,eAAe,GAAG,SAAA,CAAU,MAAA,GAAS,IAAI,SAAA,GAAY,GAAA;AAAA,QACtD,CAAC,cAAA,CAAe,YAAY,GAAG,WAAA;AAAA,QAC/B,CAAC,cAAA,CAAe,YAAY,GAAG;AAAA;AACjC,KACD,CAAA;AAAA,EACH;AAAA,EAEO,gBAAA,CAAiB,WAAmB,UAAA,EAA4C;AACrF,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AAC1C,IAAA,MAAM,SAAA,GAAqE,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AACpG,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AAC3C,IAAA,MAAM,iBAAA,GAAoB,WAAW,MAAA,KAAW,CAAA;AAEhD,IAAA,SAAS,iBAAA,GAAmC;AAC1C,MAAA,IAAI,CAAC,WAAU,EAAG;AAChB,QAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,UAAA,EAAY,IAAA,EAAM,SAAS,CAAA;AAAA,MAClD;AACA,MAAA,MAAM,CAAC,SAAA,EAAW,SAAA,EAAW,UAAU,IAAI,iBAAA,GAAoB,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,GAAI,CAAC,CAAA,EAAG,GAAG,CAAC,CAAA;AACnF,MAAA,MAAM,GAAA,GAAM,UAAU,SAAS,CAAA;AAC/B,MAAA,MAAM,GAAA,GAAM,UAAU,SAAS,CAAA;AAC/B,MAAA,MAAM,IAAA,GAAO,UAAU,UAAU,CAAA;AAEjC,MAAA,wBAAA,CAAyB,KAAK,SAAS,CAAA;AAEvC,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,+BAAA,CAAgC,aAAA,CAAc,GAAG,CAAC,CAAA;AAAA,MACpD;AAEA,MAAA,MAAM,IAAA,GAAO,SAAA,CAAU,SAAA,EAAW,UAAU,CAAA;AAC5C,MAAA,IAAI,YAAA,GAAe,KAAA;AAEnB,MAAA,SAAS,UAAA,GAAa;AACpB,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,YAAA,GAAe,IAAA;AACf,UAAA,IAAA,CAAK,GAAA,EAAI;AAAA,QACX;AACA,QAAA,GAAA,CAAI,cAAA,CAAe,SAAS,UAAU,CAAA;AAAA,MACxC;AAEA,MAAA,GAAA,CAAI,WAAA,CAAY,SAAS,UAAU,CAAA;AACnC,MAAA,SAAA,CAAU,UAAU,CAAA,GAAI,SAAA,CAAU,IAAA,EAAM,MAAM,UAAU,CAAA;AAExD,MAAA,IAAI;AACF,QAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,UAAA,EAAY,IAAA,EAAM,SAAS,CAAA;AAAA,MAClD,SAAS,CAAA,EAAG;AACV,QAAA,IAAA,CAAK,UAAU,EAAE,IAAA,EAAM,iBAAA,EAAmB,OAAA,EAAS,kBAAkB,CAAA;AACrE,QAAA,UAAA,EAAW;AACX,QAAA,MAAM,CAAA;AAAA,MACR;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,cAAA,CAAe,mBAAmB,QAAA,EAAU;AAAA,MACjD,OAAO,UAAA,CAAW,MAAA;AAAA,MAClB,QAAA,EAAU,KAAA;AAAA,MACV,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,OAAO,iBAAA;AAAA,EACT;AAAA,EAEO,UAAU,QAAA,EAA8B;AAC7C,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAA;AACvD,IAAA,OAAO,YAA2B,IAAA,EAAuB;AACvD,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AACvC,MAAA,MAAM,SAAA,GAAa,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,IAAK,EAAA;AAE5C,MAAA,IAAA,CAAK,KAAK,MAAA,GAAS,CAAC,CAAA,GAAI,eAAA,CAAgB,WAAW,UAAU,CAAA;AAE7D,MAAA,OAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,IAAgB,CAAA;AAAA,IAC9C,CAAA;AAAA,EACF;AAAA,EAEO,aAAa,QAAA,EAA8C;AAChE,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AACzC,IAAA,OAAO,WAAsD;AAC3D,MAAA,MAAM,CAAC,MAAA,EAAQ,MAAM,CAAA,GAAI,CAAC,GAAG,CAAC,CAAA;AAC9B,MAAA,MAAM,GAAA,GAAM,UAAU,MAAM,CAAA;AAC5B,MAAA,MAAM,GAAA,GAAM,UAAU,MAAM,CAAA;AAC5B,MAAA,MAAM,aAAA,GAAgB,iBAAiB,GAAG,CAAA;AAE1C,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,SAAA,CAAU,MAAM,CAAA,GAAI,QAAA,CAAS,GAAA,EAAqB,aAAa,CAAA;AAAA,MACjE;AAEA,MAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,QAAA,EAAU,IAAA,EAAM,SAAS,CAAA;AAAA,IAChD,CAAA;AAAA,EACF;AAAA,EAEO,SAAA,CAAU,KAAmB,aAAA,EAAyC;AAC3E,IAAA,OAAO,SAAS,gBAAoC,IAAA,EAAuB;AACzE,MAAA,aAAA,EAAc;AACd,MAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,GAAA,EAAK,IAAA,EAAM,IAAI,CAAA;AAAA,IACtC,CAAA;AAAA,EACF;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-types.js","sources":["../../../../../../src/integrations/tracing/connect/vendored/internal-types.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n
|
|
1
|
+
{"version":3,"file":"internal-types.js","sources":["../../../../../../src/integrations/tracing/connect/vendored/internal-types.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-connect\n * - Upstream version: @opentelemetry/instrumentation-connect@0.61.0\n * - Some types vendored from @types/connect\n */\n\nimport type * as http from 'http';\n\nexport type IncomingMessage = http.IncomingMessage & {\n originalUrl?: http.IncomingMessage['url'] | undefined;\n};\n\nexport type NextFunction = (err?: unknown) => void;\n\nexport type SimpleHandleFunction = (req: IncomingMessage, res: http.ServerResponse) => void;\nexport type NextHandleFunction = (req: IncomingMessage, res: http.ServerResponse, next: NextFunction) => void;\nexport type ErrorHandleFunction = (\n err: unknown,\n req: IncomingMessage,\n res: http.ServerResponse,\n next: NextFunction,\n) => void;\nexport type HandleFunction = SimpleHandleFunction | NextHandleFunction | ErrorHandleFunction;\n\nexport interface Server extends NodeJS.EventEmitter {\n (req: http.IncomingMessage, res: http.ServerResponse, next?: Function): void;\n\n route: string;\n stack: Array<{ route: string; handle: HandleFunction | http.Server }>;\n\n use(fn: NextHandleFunction): Server;\n use(fn: HandleFunction): Server;\n use(route: string, fn: NextHandleFunction): Server;\n use(route: string, fn: HandleFunction): Server;\n\n handle(req: http.IncomingMessage, res: http.ServerResponse, next: Function): void;\n}\n\nexport const _LAYERS_STORE_PROPERTY: unique symbol = Symbol(\n 'opentelemetry.instrumentation-connect.request-route-stack',\n);\n\nexport type UseArgs1 = [HandleFunction];\nexport type UseArgs2 = [string, HandleFunction];\nexport type UseArgs = UseArgs1 | UseArgs2;\nexport type Use = (...args: UseArgs) => Server;\nexport type PatchedRequest = {\n [_LAYERS_STORE_PROPERTY]: string[];\n} & IncomingMessage;\n"],"names":[],"mappings":"AA0CO,MAAM,sBAAA,mBAAwC,MAAA;AAAA,EACnD;AACF;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { debug } from '@sentry/core';
|
|
2
2
|
import { _LAYERS_STORE_PROPERTY } from './internal-types.js';
|
|
3
|
+
import { DEBUG_BUILD } from '../../../../debug-build.js';
|
|
3
4
|
|
|
4
5
|
const addNewStackLayer = (request) => {
|
|
5
6
|
if (Array.isArray(request[_LAYERS_STORE_PROPERTY]) === false) {
|
|
@@ -14,7 +15,7 @@ const addNewStackLayer = (request) => {
|
|
|
14
15
|
if (stackLength === request[_LAYERS_STORE_PROPERTY].length) {
|
|
15
16
|
request[_LAYERS_STORE_PROPERTY].pop();
|
|
16
17
|
} else {
|
|
17
|
-
|
|
18
|
+
DEBUG_BUILD && debug.warn("Connect: Trying to pop the stack multiple time");
|
|
18
19
|
}
|
|
19
20
|
};
|
|
20
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/connect/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/connect/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-connect\n * - Upstream version: @opentelemetry/instrumentation-connect@0.61.0\n */\n\nimport { debug } from '@sentry/core';\nimport type { PatchedRequest } from './internal-types';\nimport { _LAYERS_STORE_PROPERTY } from './internal-types';\nimport { DEBUG_BUILD } from '../../../../debug-build';\n\nexport const addNewStackLayer = (request: PatchedRequest) => {\n if (Array.isArray(request[_LAYERS_STORE_PROPERTY]) === false) {\n Object.defineProperty(request, _LAYERS_STORE_PROPERTY, {\n enumerable: false,\n value: [],\n });\n }\n request[_LAYERS_STORE_PROPERTY].push('/');\n\n const stackLength = request[_LAYERS_STORE_PROPERTY].length;\n\n return () => {\n if (stackLength === request[_LAYERS_STORE_PROPERTY].length) {\n request[_LAYERS_STORE_PROPERTY].pop();\n } else {\n DEBUG_BUILD && debug.warn('Connect: Trying to pop the stack multiple time');\n }\n };\n};\n\nexport const replaceCurrentStackRoute = (request: PatchedRequest, newRoute?: string) => {\n if (newRoute) {\n request[_LAYERS_STORE_PROPERTY].splice(-1, 1, newRoute);\n }\n};\n\n// generate route from existing stack on request object.\n// splash between stack layer will be deduped\n// [\"/first/\", \"/second\", \"/third/\"] => /first/second/third/\nexport const generateRoute = (request: PatchedRequest) => {\n return request[_LAYERS_STORE_PROPERTY].reduce((acc, sub) => acc.replace(/\\/+$/, '') + sub);\n};\n"],"names":[],"mappings":";;;;AAcO,MAAM,gBAAA,GAAmB,CAAC,OAAA,KAA4B;AAC3D,EAAA,IAAI,MAAM,OAAA,CAAQ,OAAA,CAAQ,sBAAsB,CAAC,MAAM,KAAA,EAAO;AAC5D,IAAA,MAAA,CAAO,cAAA,CAAe,SAAS,sBAAA,EAAwB;AAAA,MACrD,UAAA,EAAY,KAAA;AAAA,MACZ,OAAO;AAAC,KACT,CAAA;AAAA,EACH;AACA,EAAA,OAAA,CAAQ,sBAAsB,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAExC,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,sBAAsB,CAAA,CAAE,MAAA;AAEpD,EAAA,OAAO,MAAM;AACX,IAAA,IAAI,WAAA,KAAgB,OAAA,CAAQ,sBAAsB,CAAA,CAAE,MAAA,EAAQ;AAC1D,MAAA,OAAA,CAAQ,sBAAsB,EAAE,GAAA,EAAI;AAAA,IACtC,CAAA,MAAO;AACL,MAAA,WAAA,IAAe,KAAA,CAAM,KAAK,gDAAgD,CAAA;AAAA,IAC5E;AAAA,EACF,CAAA;AACF;AAEO,MAAM,wBAAA,GAA2B,CAAC,OAAA,EAAyB,QAAA,KAAsB;AACtF,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAA,CAAQ,sBAAsB,CAAA,CAAE,MAAA,CAAO,EAAA,EAAI,GAAG,QAAQ,CAAA;AAAA,EACxD;AACF;AAKO,MAAM,aAAA,GAAgB,CAAC,OAAA,KAA4B;AACxD,EAAA,OAAO,OAAA,CAAQ,sBAAsB,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,GAAA,KAAQ,GAAA,CAAI,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA,GAAI,GAAG,CAAA;AAC3F;;;;"}
|
|
@@ -1,34 +1,14 @@
|
|
|
1
1
|
import { DataloaderInstrumentation } from './vendored/instrumentation.js';
|
|
2
|
-
import { defineIntegration
|
|
3
|
-
import { generateInstrumentOnce
|
|
2
|
+
import { defineIntegration } from '@sentry/core';
|
|
3
|
+
import { generateInstrumentOnce } from '@sentry/node-core';
|
|
4
4
|
|
|
5
5
|
const INTEGRATION_NAME = "Dataloader";
|
|
6
|
-
const instrumentDataloader = generateInstrumentOnce(
|
|
7
|
-
INTEGRATION_NAME,
|
|
8
|
-
() => new DataloaderInstrumentation({
|
|
9
|
-
requireParentSpan: true
|
|
10
|
-
})
|
|
11
|
-
);
|
|
6
|
+
const instrumentDataloader = generateInstrumentOnce(INTEGRATION_NAME, () => new DataloaderInstrumentation());
|
|
12
7
|
const _dataloaderIntegration = (() => {
|
|
13
|
-
let instrumentationWrappedCallback;
|
|
14
8
|
return {
|
|
15
9
|
name: INTEGRATION_NAME,
|
|
16
10
|
setupOnce() {
|
|
17
|
-
|
|
18
|
-
instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);
|
|
19
|
-
},
|
|
20
|
-
setup(client) {
|
|
21
|
-
instrumentationWrappedCallback?.(() => {
|
|
22
|
-
client.on("spanStart", (span) => {
|
|
23
|
-
const spanJSON = spanToJSON(span);
|
|
24
|
-
if (spanJSON.description?.startsWith("dataloader")) {
|
|
25
|
-
span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, "auto.db.otel.dataloader");
|
|
26
|
-
}
|
|
27
|
-
if (spanJSON.description === "dataloader.load" || spanJSON.description === "dataloader.loadMany" || spanJSON.description === "dataloader.batch") {
|
|
28
|
-
span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, "cache.get");
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
});
|
|
11
|
+
instrumentDataloader();
|
|
32
12
|
}
|
|
33
13
|
};
|
|
34
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/dataloader/index.ts"],"sourcesContent":["import { DataloaderInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/dataloader/index.ts"],"sourcesContent":["import { DataloaderInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Dataloader';\n\nexport const instrumentDataloader = generateInstrumentOnce(INTEGRATION_NAME, () => new DataloaderInstrumentation());\n\nconst _dataloaderIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentDataloader();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [dataloader](https://www.npmjs.com/package/dataloader) library.\n *\n * For more information, see the [`dataloaderIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/dataloader/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.dataloaderIntegration()],\n * });\n * ```\n */\nexport const dataloaderIntegration = defineIntegration(_dataloaderIntegration);\n"],"names":[],"mappings":";;;;AAKA,MAAM,gBAAA,GAAmB,YAAA;AAElB,MAAM,uBAAuB,sBAAA,CAAuB,gBAAA,EAAkB,MAAM,IAAI,2BAA2B;AAElH,MAAM,0BAA0B,MAAM;AACpC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,oBAAA,EAAqB;AAAA,IACvB;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,qBAAA,GAAwB,kBAAkB,sBAAsB;;;;"}
|
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';
|
|
2
|
-
import {
|
|
3
|
-
import { SDK_VERSION } from '@sentry/core';
|
|
2
|
+
import { SpanKind } from '@opentelemetry/api';
|
|
3
|
+
import { SDK_VERSION, startSpan, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';
|
|
4
4
|
|
|
5
5
|
const MODULE_NAME = "dataloader";
|
|
6
6
|
const PACKAGE_NAME = "@sentry/instrumentation-dataloader";
|
|
7
|
+
const ORIGIN = "auto.db.otel.dataloader";
|
|
8
|
+
function isModule(module) {
|
|
9
|
+
return module[Symbol.toStringTag] === "Module";
|
|
10
|
+
}
|
|
7
11
|
function extractModuleExports(module) {
|
|
8
|
-
return module
|
|
12
|
+
return isModule(module) ? module.default : module;
|
|
13
|
+
}
|
|
14
|
+
function getSpanName(dataloader, operation) {
|
|
15
|
+
const dataloaderName = dataloader.name;
|
|
16
|
+
if (dataloaderName) {
|
|
17
|
+
return `${MODULE_NAME}.${operation} ${dataloaderName}`;
|
|
18
|
+
}
|
|
19
|
+
return `${MODULE_NAME}.${operation}`;
|
|
20
|
+
}
|
|
21
|
+
function getSpanOp(operation) {
|
|
22
|
+
if (operation === "load" || operation === "loadMany" || operation === "batch") {
|
|
23
|
+
return "cache.get";
|
|
24
|
+
}
|
|
25
|
+
return void 0;
|
|
9
26
|
}
|
|
10
27
|
class DataloaderInstrumentation extends InstrumentationBase {
|
|
11
28
|
constructor(config = {}) {
|
|
@@ -36,44 +53,24 @@ class DataloaderInstrumentation extends InstrumentationBase {
|
|
|
36
53
|
)
|
|
37
54
|
];
|
|
38
55
|
}
|
|
39
|
-
shouldCreateSpans() {
|
|
40
|
-
const config = this.getConfig();
|
|
41
|
-
const hasParentSpan = trace.getSpan(context.active()) !== void 0;
|
|
42
|
-
return hasParentSpan || !config.requireParentSpan;
|
|
43
|
-
}
|
|
44
|
-
getSpanName(dataloader, operation) {
|
|
45
|
-
const dataloaderName = dataloader.name;
|
|
46
|
-
if (dataloaderName === void 0 || dataloaderName === null) {
|
|
47
|
-
return `${MODULE_NAME}.${operation}`;
|
|
48
|
-
}
|
|
49
|
-
return `${MODULE_NAME}.${operation} ${dataloaderName}`;
|
|
50
|
-
}
|
|
51
56
|
_wrapBatchLoadFn(batchLoadFn) {
|
|
52
57
|
const instrumentation = this;
|
|
53
58
|
return function patchedBatchLoadFn(...args) {
|
|
54
|
-
if (!instrumentation.isEnabled()
|
|
59
|
+
if (!instrumentation.isEnabled()) {
|
|
55
60
|
return batchLoadFn.call(this, ...args);
|
|
56
61
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
return startSpan(
|
|
63
|
+
{
|
|
64
|
+
name: getSpanName(this, "batch"),
|
|
65
|
+
links: this._batch?.spanLinks,
|
|
66
|
+
attributes: {
|
|
67
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
|
|
68
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: getSpanOp("batch")
|
|
69
|
+
},
|
|
70
|
+
onlyIfParent: true
|
|
71
|
+
},
|
|
72
|
+
() => batchLoadFn.apply(this, args)
|
|
62
73
|
);
|
|
63
|
-
return context.with(trace.setSpan(parent, span), () => {
|
|
64
|
-
return batchLoadFn.apply(this, args).then((value) => {
|
|
65
|
-
span.end();
|
|
66
|
-
return value;
|
|
67
|
-
}).catch((err) => {
|
|
68
|
-
span.recordException(err);
|
|
69
|
-
span.setStatus({
|
|
70
|
-
code: SpanStatusCode.ERROR,
|
|
71
|
-
message: err.message
|
|
72
|
-
});
|
|
73
|
-
span.end();
|
|
74
|
-
throw err;
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
74
|
};
|
|
78
75
|
}
|
|
79
76
|
_getPatchedConstructor(constructor) {
|
|
@@ -101,39 +98,28 @@ class DataloaderInstrumentation extends InstrumentationBase {
|
|
|
101
98
|
this._wrap(proto, "load", this._getPatchedLoad.bind(this));
|
|
102
99
|
}
|
|
103
100
|
_getPatchedLoad(original) {
|
|
104
|
-
const instrumentation = this;
|
|
105
101
|
return function patchedLoad(...args) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
message: err.message
|
|
124
|
-
});
|
|
125
|
-
span.end();
|
|
126
|
-
throw err;
|
|
127
|
-
});
|
|
128
|
-
const loader = this;
|
|
129
|
-
if (loader._batch) {
|
|
130
|
-
if (!loader._batch.spanLinks) {
|
|
131
|
-
loader._batch.spanLinks = [];
|
|
102
|
+
return startSpan(
|
|
103
|
+
{
|
|
104
|
+
name: getSpanName(this, "load"),
|
|
105
|
+
kind: SpanKind.CLIENT,
|
|
106
|
+
attributes: {
|
|
107
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
|
|
108
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: getSpanOp("load")
|
|
109
|
+
},
|
|
110
|
+
onlyIfParent: true
|
|
111
|
+
},
|
|
112
|
+
(span) => {
|
|
113
|
+
const result = original.call(this, ...args);
|
|
114
|
+
if (this._batch && span.isRecording()) {
|
|
115
|
+
if (!this._batch.spanLinks) {
|
|
116
|
+
this._batch.spanLinks = [];
|
|
117
|
+
}
|
|
118
|
+
this._batch.spanLinks.push({ context: span.spanContext() });
|
|
132
119
|
}
|
|
133
|
-
|
|
120
|
+
return result;
|
|
134
121
|
}
|
|
135
|
-
|
|
136
|
-
});
|
|
122
|
+
);
|
|
137
123
|
};
|
|
138
124
|
}
|
|
139
125
|
_patchLoadMany(proto) {
|
|
@@ -143,23 +129,19 @@ class DataloaderInstrumentation extends InstrumentationBase {
|
|
|
143
129
|
this._wrap(proto, "loadMany", this._getPatchedLoadMany.bind(this));
|
|
144
130
|
}
|
|
145
131
|
_getPatchedLoadMany(original) {
|
|
146
|
-
const instrumentation = this;
|
|
147
132
|
return function patchedLoadMany(...args) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
133
|
+
return startSpan(
|
|
134
|
+
{
|
|
135
|
+
name: getSpanName(this, "loadMany"),
|
|
136
|
+
kind: SpanKind.CLIENT,
|
|
137
|
+
attributes: {
|
|
138
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
|
|
139
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: getSpanOp("loadMany")
|
|
140
|
+
},
|
|
141
|
+
onlyIfParent: true
|
|
142
|
+
},
|
|
143
|
+
() => original.call(this, ...args)
|
|
156
144
|
);
|
|
157
|
-
return context.with(trace.setSpan(parent, span), () => {
|
|
158
|
-
return original.call(this, ...args).then((value) => {
|
|
159
|
-
span.end();
|
|
160
|
-
return value;
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
145
|
};
|
|
164
146
|
}
|
|
165
147
|
_patchPrime(proto) {
|
|
@@ -169,22 +151,19 @@ class DataloaderInstrumentation extends InstrumentationBase {
|
|
|
169
151
|
this._wrap(proto, "prime", this._getPatchedPrime.bind(this));
|
|
170
152
|
}
|
|
171
153
|
_getPatchedPrime(original) {
|
|
172
|
-
const instrumentation = this;
|
|
173
154
|
return function patchedPrime(...args) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
155
|
+
return startSpan(
|
|
156
|
+
{
|
|
157
|
+
name: getSpanName(this, "prime"),
|
|
158
|
+
kind: SpanKind.CLIENT,
|
|
159
|
+
attributes: {
|
|
160
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
|
|
161
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: getSpanOp("prime")
|
|
162
|
+
},
|
|
163
|
+
onlyIfParent: true
|
|
164
|
+
},
|
|
165
|
+
() => original.call(this, ...args)
|
|
182
166
|
);
|
|
183
|
-
const ret = context.with(trace.setSpan(parent, span), () => {
|
|
184
|
-
return original.call(this, ...args);
|
|
185
|
-
});
|
|
186
|
-
span.end();
|
|
187
|
-
return ret;
|
|
188
167
|
};
|
|
189
168
|
}
|
|
190
169
|
_patchClear(proto) {
|
|
@@ -194,22 +173,19 @@ class DataloaderInstrumentation extends InstrumentationBase {
|
|
|
194
173
|
this._wrap(proto, "clear", this._getPatchedClear.bind(this));
|
|
195
174
|
}
|
|
196
175
|
_getPatchedClear(original) {
|
|
197
|
-
const instrumentation = this;
|
|
198
176
|
return function patchedClear(...args) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
177
|
+
return startSpan(
|
|
178
|
+
{
|
|
179
|
+
name: getSpanName(this, "clear"),
|
|
180
|
+
kind: SpanKind.CLIENT,
|
|
181
|
+
attributes: {
|
|
182
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
|
|
183
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: getSpanOp("clear")
|
|
184
|
+
},
|
|
185
|
+
onlyIfParent: true
|
|
186
|
+
},
|
|
187
|
+
() => original.call(this, ...args)
|
|
207
188
|
);
|
|
208
|
-
const ret = context.with(trace.setSpan(parent, span), () => {
|
|
209
|
-
return original.call(this, ...args);
|
|
210
|
-
});
|
|
211
|
-
span.end();
|
|
212
|
-
return ret;
|
|
213
189
|
};
|
|
214
190
|
}
|
|
215
191
|
_patchClearAll(proto) {
|
|
@@ -219,22 +195,19 @@ class DataloaderInstrumentation extends InstrumentationBase {
|
|
|
219
195
|
this._wrap(proto, "clearAll", this._getPatchedClearAll.bind(this));
|
|
220
196
|
}
|
|
221
197
|
_getPatchedClearAll(original) {
|
|
222
|
-
const instrumentation = this;
|
|
223
198
|
return function patchedClearAll(...args) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
199
|
+
return startSpan(
|
|
200
|
+
{
|
|
201
|
+
name: getSpanName(this, "clearAll"),
|
|
202
|
+
kind: SpanKind.CLIENT,
|
|
203
|
+
attributes: {
|
|
204
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
|
|
205
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: getSpanOp("clearAll")
|
|
206
|
+
},
|
|
207
|
+
onlyIfParent: true
|
|
208
|
+
},
|
|
209
|
+
() => original.call(this, ...args)
|
|
232
210
|
);
|
|
233
|
-
const ret = context.with(trace.setSpan(parent, span), () => {
|
|
234
|
-
return original.call(this, ...args);
|
|
235
|
-
});
|
|
236
|
-
span.end();
|
|
237
|
-
return ret;
|
|
238
211
|
};
|
|
239
212
|
}
|
|
240
213
|
}
|