@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,35 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SemconvStability } from '@opentelemetry/instrumentation';
|
|
3
|
-
import { ATTR_DB_NAMESPACE, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT } from '@opentelemetry/semantic-conventions';
|
|
1
|
+
import { ATTR_NET_PEER_NAME, ATTR_DB_USER, ATTR_DB_NAME, ATTR_DB_CONNECTION_STRING, ATTR_NET_PEER_PORT } from './semconv.js';
|
|
4
2
|
|
|
5
|
-
function getConnectionAttributes(config
|
|
3
|
+
function getConnectionAttributes(config) {
|
|
6
4
|
const { host, port, database, user } = getConfig(config);
|
|
7
|
-
const attrs = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
if (dbSemconvStability & SemconvStability.STABLE) {
|
|
14
|
-
attrs[ATTR_DB_NAMESPACE] = database;
|
|
15
|
-
}
|
|
5
|
+
const attrs = {
|
|
6
|
+
[ATTR_DB_CONNECTION_STRING]: getJDBCString(host, port, database),
|
|
7
|
+
[ATTR_DB_NAME]: database,
|
|
8
|
+
[ATTR_DB_USER]: user,
|
|
9
|
+
[ATTR_NET_PEER_NAME]: host
|
|
10
|
+
};
|
|
16
11
|
const portNumber = parseInt(port, 10);
|
|
17
|
-
if (
|
|
18
|
-
attrs[
|
|
19
|
-
if (!isNaN(portNumber)) {
|
|
20
|
-
attrs[ATTR_NET_PEER_PORT] = portNumber;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
if (netSemconvStability & SemconvStability.STABLE) {
|
|
24
|
-
attrs[ATTR_SERVER_ADDRESS] = host;
|
|
25
|
-
if (!isNaN(portNumber)) {
|
|
26
|
-
attrs[ATTR_SERVER_PORT] = portNumber;
|
|
27
|
-
}
|
|
12
|
+
if (!isNaN(portNumber)) {
|
|
13
|
+
attrs[ATTR_NET_PEER_PORT] = portNumber;
|
|
28
14
|
}
|
|
29
15
|
return attrs;
|
|
30
16
|
}
|
|
31
17
|
function getConfig(config) {
|
|
32
|
-
const { host, port, database, user } = config
|
|
18
|
+
const { host, port, database, user } = config?.connectionConfig || config || {};
|
|
33
19
|
return { host, port, database, user };
|
|
34
20
|
}
|
|
35
21
|
function getJDBCString(host, port, database) {
|
|
@@ -42,23 +28,18 @@ function getJDBCString(host, port, database) {
|
|
|
42
28
|
}
|
|
43
29
|
return jdbcString;
|
|
44
30
|
}
|
|
45
|
-
function getQueryText(query, format, values
|
|
31
|
+
function getQueryText(query, format, values) {
|
|
46
32
|
const [querySql, queryValues] = typeof query === "string" ? [query, values] : [query.sql, hasValues(query) ? values || query.values : values];
|
|
47
33
|
try {
|
|
48
|
-
if (
|
|
49
|
-
return maskStatementHook(querySql);
|
|
50
|
-
} else if (format && queryValues) {
|
|
34
|
+
if (format && queryValues) {
|
|
51
35
|
return format(querySql, queryValues);
|
|
52
36
|
} else {
|
|
53
37
|
return querySql;
|
|
54
38
|
}
|
|
55
|
-
} catch
|
|
56
|
-
return "Could not determine the query due to an error in
|
|
39
|
+
} catch {
|
|
40
|
+
return "Could not determine the query due to an error in formatting";
|
|
57
41
|
}
|
|
58
42
|
}
|
|
59
|
-
function defaultMaskingHook(query) {
|
|
60
|
-
return query.replace(/\b\d+\b/g, "?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g, "?");
|
|
61
|
-
}
|
|
62
43
|
function hasValues(obj) {
|
|
63
44
|
return "values" in obj;
|
|
64
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/mysql2/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/mysql2/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-mysql2\n * - Upstream version: @opentelemetry/instrumentation-mysql2@0.64.0\n * - Types from 'mysql2' inlined as simplified interfaces\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport type { SpanAttributes } from '@sentry/core';\nimport type { FormatFunction } from './mysql2-types';\nimport {\n ATTR_DB_CONNECTION_STRING,\n ATTR_DB_NAME,\n ATTR_DB_USER,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n} from './semconv';\n\ninterface QueryOptions {\n sql: string;\n values?: any | any[] | { [param: string]: any };\n}\n\ninterface Query {\n sql: string;\n}\n\ninterface Config {\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n connectionConfig?: Config;\n}\n\nexport function getConnectionAttributes(config: Config): SpanAttributes {\n const { host, port, database, user } = getConfig(config);\n\n const attrs: SpanAttributes = {\n [ATTR_DB_CONNECTION_STRING]: getJDBCString(host, port, database),\n [ATTR_DB_NAME]: database,\n [ATTR_DB_USER]: user,\n [ATTR_NET_PEER_NAME]: host,\n };\n\n const portNumber = parseInt(port, 10);\n if (!isNaN(portNumber)) {\n attrs[ATTR_NET_PEER_PORT] = portNumber;\n }\n\n return attrs;\n}\n\nfunction getConfig(config: any) {\n const { host, port, database, user } = config?.connectionConfig || config || {};\n return { host, port, database, user };\n}\n\nfunction getJDBCString(host: string | undefined, port: number | undefined, database: string | undefined) {\n let jdbcString = `jdbc:mysql://${host || 'localhost'}`;\n\n if (typeof port === 'number') {\n jdbcString += `:${port}`;\n }\n\n if (typeof database === 'string') {\n jdbcString += `/${database}`;\n }\n\n return jdbcString;\n}\n\nexport function getQueryText(query: string | Query | QueryOptions, format?: FormatFunction, values?: any[]): string {\n const [querySql, queryValues] =\n typeof query === 'string' ? [query, values] : [query.sql, hasValues(query) ? values || query.values : values];\n try {\n if (format && queryValues) {\n return format(querySql, queryValues);\n } else {\n return querySql;\n }\n } catch {\n return 'Could not determine the query due to an error in formatting';\n }\n}\n\nfunction hasValues(obj: Query | QueryOptions): obj is QueryOptions {\n return 'values' in obj;\n}\n\nexport function getSpanName(query: string | Query | QueryOptions): string {\n const rawQuery = typeof query === 'object' ? query.sql : query;\n const firstSpace = rawQuery?.indexOf(' ');\n if (typeof firstSpace === 'number' && firstSpace !== -1) {\n return rawQuery?.substring(0, firstSpace);\n }\n return rawQuery;\n}\n\nexport const once = (fn: Function) => {\n let called = false;\n return (...args: unknown[]) => {\n if (called) return;\n called = true;\n return fn(...args);\n };\n};\n\nexport function getConnectionPrototypeToInstrument(connection: any) {\n const connectionPrototype = connection.prototype;\n const basePrototype = Object.getPrototypeOf(connectionPrototype);\n\n if (typeof basePrototype?.query === 'function' && typeof basePrototype?.execute === 'function') {\n return basePrototype;\n }\n\n return connectionPrototype;\n}\n"],"names":[],"mappings":";;AAsCO,SAAS,wBAAwB,MAAA,EAAgC;AACtE,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAM,UAAU,IAAA,EAAK,GAAI,UAAU,MAAM,CAAA;AAEvD,EAAA,MAAM,KAAA,GAAwB;AAAA,IAC5B,CAAC,yBAAyB,GAAG,aAAA,CAAc,IAAA,EAAM,MAAM,QAAQ,CAAA;AAAA,IAC/D,CAAC,YAAY,GAAG,QAAA;AAAA,IAChB,CAAC,YAAY,GAAG,IAAA;AAAA,IAChB,CAAC,kBAAkB,GAAG;AAAA,GACxB;AAEA,EAAA,MAAM,UAAA,GAAa,QAAA,CAAS,IAAA,EAAM,EAAE,CAAA;AACpC,EAAA,IAAI,CAAC,KAAA,CAAM,UAAU,CAAA,EAAG;AACtB,IAAA,KAAA,CAAM,kBAAkB,CAAA,GAAI,UAAA;AAAA,EAC9B;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,UAAU,MAAA,EAAa;AAC9B,EAAA,MAAM,EAAE,MAAM,IAAA,EAAM,QAAA,EAAU,MAAK,GAAI,MAAA,EAAQ,gBAAA,IAAoB,MAAA,IAAU,EAAC;AAC9E,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,IAAA,EAAK;AACtC;AAEA,SAAS,aAAA,CAAc,IAAA,EAA0B,IAAA,EAA0B,QAAA,EAA8B;AACvG,EAAA,IAAI,UAAA,GAAa,CAAA,aAAA,EAAgB,IAAA,IAAQ,WAAW,CAAA,CAAA;AAEpD,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,UAAA,IAAc,IAAI,IAAI,CAAA,CAAA;AAAA,EACxB;AAEA,EAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,IAAA,UAAA,IAAc,IAAI,QAAQ,CAAA,CAAA;AAAA,EAC5B;AAEA,EAAA,OAAO,UAAA;AACT;AAEO,SAAS,YAAA,CAAa,KAAA,EAAsC,MAAA,EAAyB,MAAA,EAAwB;AAClH,EAAA,MAAM,CAAC,UAAU,WAAW,CAAA,GAC1B,OAAO,KAAA,KAAU,QAAA,GAAW,CAAC,KAAA,EAAO,MAAM,IAAI,CAAC,KAAA,CAAM,KAAK,SAAA,CAAU,KAAK,IAAI,MAAA,IAAU,KAAA,CAAM,SAAS,MAAM,CAAA;AAC9G,EAAA,IAAI;AACF,IAAA,IAAI,UAAU,WAAA,EAAa;AACzB,MAAA,OAAO,MAAA,CAAO,UAAU,WAAW,CAAA;AAAA,IACrC,CAAA,MAAO;AACL,MAAA,OAAO,QAAA;AAAA,IACT;AAAA,EACF,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,6DAAA;AAAA,EACT;AACF;AAEA,SAAS,UAAU,GAAA,EAAgD;AACjE,EAAA,OAAO,QAAA,IAAY,GAAA;AACrB;AAEO,SAAS,YAAY,KAAA,EAA8C;AACxE,EAAA,MAAM,QAAA,GAAW,OAAO,KAAA,KAAU,QAAA,GAAW,MAAM,GAAA,GAAM,KAAA;AACzD,EAAA,MAAM,UAAA,GAAa,QAAA,EAAU,OAAA,CAAQ,GAAG,CAAA;AACxC,EAAA,IAAI,OAAO,UAAA,KAAe,QAAA,IAAY,UAAA,KAAe,EAAA,EAAI;AACvD,IAAA,OAAO,QAAA,EAAU,SAAA,CAAU,CAAA,EAAG,UAAU,CAAA;AAAA,EAC1C;AACA,EAAA,OAAO,QAAA;AACT;AAEO,MAAM,IAAA,GAAO,CAAC,EAAA,KAAiB;AACpC,EAAA,IAAI,MAAA,GAAS,KAAA;AACb,EAAA,OAAO,IAAI,IAAA,KAAoB;AAC7B,IAAA,IAAI,MAAA,EAAQ;AACZ,IAAA,MAAA,GAAS,IAAA;AACT,IAAA,OAAO,EAAA,CAAG,GAAG,IAAI,CAAA;AAAA,EACnB,CAAA;AACF;AAEO,SAAS,mCAAmC,UAAA,EAAiB;AAClE,EAAA,MAAM,sBAAsB,UAAA,CAAW,SAAA;AACvC,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,cAAA,CAAe,mBAAmB,CAAA;AAE/D,EAAA,IAAI,OAAO,aAAA,EAAe,KAAA,KAAU,cAAc,OAAO,aAAA,EAAe,YAAY,UAAA,EAAY;AAC9F,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,OAAO,mBAAA;AACT;;;;"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { PgInstrumentation } from './vendored/instrumentation.js';
|
|
2
2
|
import { defineIntegration } from '@sentry/core';
|
|
3
|
-
import { generateInstrumentOnce
|
|
3
|
+
import { generateInstrumentOnce } from '@sentry/node-core';
|
|
4
4
|
|
|
5
5
|
const INTEGRATION_NAME = "Postgres";
|
|
6
6
|
const instrumentPostgres = generateInstrumentOnce(
|
|
7
7
|
INTEGRATION_NAME,
|
|
8
8
|
PgInstrumentation,
|
|
9
9
|
(options) => ({
|
|
10
|
-
requireParentSpan: true,
|
|
11
|
-
requestHook(span) {
|
|
12
|
-
addOriginToSpan(span, "auto.db.otel.postgres");
|
|
13
|
-
},
|
|
14
10
|
ignoreConnectSpans: options?.ignoreConnectSpans ?? false
|
|
15
11
|
})
|
|
16
12
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/postgres/index.ts"],"sourcesContent":["import { PgInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/postgres/index.ts"],"sourcesContent":["import { PgInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\ninterface PostgresIntegrationOptions {\n ignoreConnectSpans?: boolean;\n}\n\nconst INTEGRATION_NAME = 'Postgres';\n\nexport const instrumentPostgres = generateInstrumentOnce(\n INTEGRATION_NAME,\n PgInstrumentation,\n (options?: PostgresIntegrationOptions) => ({\n ignoreConnectSpans: options?.ignoreConnectSpans ?? false,\n }),\n);\n\nconst _postgresIntegration = ((options?: PostgresIntegrationOptions) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentPostgres(options);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [pg](https://www.npmjs.com/package/pg) library.\n *\n * For more information, see the [`postgresIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.postgresIntegration()],\n * });\n * ```\n */\nexport const postgresIntegration = defineIntegration(_postgresIntegration);\n"],"names":[],"mappings":";;;;AASA,MAAM,gBAAA,GAAmB,UAAA;AAElB,MAAM,kBAAA,GAAqB,sBAAA;AAAA,EAChC,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,CAAC,OAAA,MAA0C;AAAA,IACzC,kBAAA,EAAoB,SAAS,kBAAA,IAAsB;AAAA,GACrD;AACF;AAEA,MAAM,oBAAA,IAAwB,CAAC,OAAA,KAAyC;AACtE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,kBAAA,CAAmB,OAAO,CAAA;AAAA,IAC5B;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,mBAAA,GAAsB,kBAAkB,oBAAoB;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var AttributeNames = /* @__PURE__ */ ((AttributeNames2) => {
|
|
2
|
-
AttributeNames2["PG_VALUES"] = "db.postgresql.values";
|
|
3
2
|
AttributeNames2["PG_PLAN"] = "db.postgresql.plan";
|
|
4
3
|
AttributeNames2["IDLE_TIMEOUT_MILLIS"] = "db.postgresql.idle.timeout.millis";
|
|
5
4
|
AttributeNames2["MAX_CLIENT"] = "db.postgresql.max.client";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeNames.js","sources":["../../../../../../../src/integrations/tracing/postgres/vendored/enums/AttributeNames.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n
|
|
1
|
+
{"version":3,"file":"AttributeNames.js","sources":["../../../../../../../src/integrations/tracing/postgres/vendored/enums/AttributeNames.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-pg\n * - Upstream version: @opentelemetry/instrumentation-pg@0.70.0\n */\n\n// Postgresql specific attributes not covered by semantic conventions\nexport enum AttributeNames {\n PG_PLAN = 'db.postgresql.plan',\n IDLE_TIMEOUT_MILLIS = 'db.postgresql.idle.timeout.millis',\n MAX_CLIENT = 'db.postgresql.max.client',\n}\n"],"names":["AttributeNames"],"mappings":"AAUO,IAAK,cAAA,qBAAAA,eAAAA,KAAL;AACL,EAAAA,gBAAA,SAAA,CAAA,GAAU,oBAAA;AACV,EAAAA,gBAAA,qBAAA,CAAA,GAAsB,mCAAA;AACtB,EAAAA,gBAAA,YAAA,CAAA,GAAa,0BAAA;AAHH,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpanNames.js","sources":["../../../../../../../src/integrations/tracing/postgres/vendored/enums/SpanNames.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n
|
|
1
|
+
{"version":3,"file":"SpanNames.js","sources":["../../../../../../../src/integrations/tracing/postgres/vendored/enums/SpanNames.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-pg\n * - Upstream version: @opentelemetry/instrumentation-pg@0.70.0\n */\n\n// Contains span names produced by instrumentation\nexport enum SpanNames {\n QUERY_PREFIX = 'pg.query',\n CONNECT = 'pg.connect',\n POOL_CONNECT = 'pg-pool.connect',\n}\n"],"names":["SpanNames"],"mappings":"AAUO,IAAK,SAAA,qBAAAA,UAAAA,KAAL;AACL,EAAAA,WAAA,cAAA,CAAA,GAAe,UAAA;AACf,EAAAA,WAAA,SAAA,CAAA,GAAU,YAAA;AACV,EAAAA,WAAA,cAAA,CAAA,GAAe,iBAAA;AAHL,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;;;;"}
|
|
@@ -1,55 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SpanKind } from '@opentelemetry/api';
|
|
2
|
+
import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';
|
|
3
|
+
import { SDK_VERSION, startInactiveSpan, getActiveSpan, withActiveSpan, SPAN_STATUS_ERROR } from '@sentry/core';
|
|
2
4
|
import { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';
|
|
3
|
-
import { ValueType, SpanKind, trace, context, SpanStatusCode } from '@opentelemetry/api';
|
|
4
|
-
import { EVENT_LISTENERS_SET } from './internal-types.js';
|
|
5
|
-
import { shouldSkipInstrumentation, getSemanticAttributesFromConnection, patchClientConnectCallback, isObjectWithTextString, parseNormalizedOperationName, handleConfigQuery, patchCallback, sanitizedErrorMessage, getErrorMessage, handleExecutionResult, getPoolName, updateCounter, getSemanticAttributesFromPoolConnection, patchCallbackPGPool } from './utils.js';
|
|
6
|
-
import { addSqlCommenterComment } from '../../utils/sql-common.js';
|
|
7
|
-
import { SDK_VERSION, timestampInSeconds } from '@sentry/core';
|
|
8
5
|
import { SpanNames } from './enums/SpanNames.js';
|
|
9
|
-
import {
|
|
10
|
-
import { METRIC_DB_CLIENT_CONNECTION_COUNT, METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS, ATTR_DB_SYSTEM, DB_SYSTEM_VALUE_POSTGRESQL } from './semconv.js';
|
|
6
|
+
import { shouldSkipInstrumentation, getSemanticAttributesFromConnection, patchClientConnectCallback, isObjectWithTextString, handleConfigQuery, patchCallback, getErrorMessage, getSemanticAttributesFromPoolConnection, patchCallbackPGPool } from './utils.js';
|
|
11
7
|
|
|
12
8
|
const PACKAGE_NAME = "@sentry/instrumentation-pg";
|
|
13
9
|
function extractModuleExports(module) {
|
|
14
10
|
return module[Symbol.toStringTag] === "Module" ? module.default : module;
|
|
15
11
|
}
|
|
12
|
+
function bindCallbackToSpan(parentSpan, callback) {
|
|
13
|
+
return function(...args) {
|
|
14
|
+
return withActiveSpan(parentSpan, () => callback.apply(this, args));
|
|
15
|
+
};
|
|
16
|
+
}
|
|
16
17
|
class PgInstrumentation extends InstrumentationBase {
|
|
17
18
|
constructor(config = {}) {
|
|
18
19
|
super(PACKAGE_NAME, SDK_VERSION, config);
|
|
19
|
-
// Pool events connect, acquire, release and remove can be called
|
|
20
|
-
// multiple times without changing the values of total, idle and waiting
|
|
21
|
-
// connections. The _connectionsCounter is used to keep track of latest
|
|
22
|
-
// values and only update the metrics _connectionsCount and _connectionPendingRequests
|
|
23
|
-
// when the value change.
|
|
24
|
-
this._connectionsCounter = {
|
|
25
|
-
used: 0,
|
|
26
|
-
idle: 0,
|
|
27
|
-
pending: 0
|
|
28
|
-
};
|
|
29
|
-
this._semconvStability = semconvStabilityFromStr("database", process.env.OTEL_SEMCONV_STABILITY_OPT_IN);
|
|
30
|
-
}
|
|
31
|
-
_updateMetricInstruments() {
|
|
32
|
-
this._operationDuration = this.meter.createHistogram(METRIC_DB_CLIENT_OPERATION_DURATION, {
|
|
33
|
-
description: "Duration of database client operations.",
|
|
34
|
-
unit: "s",
|
|
35
|
-
valueType: ValueType.DOUBLE,
|
|
36
|
-
advice: {
|
|
37
|
-
explicitBucketBoundaries: [1e-3, 5e-3, 0.01, 0.05, 0.1, 0.5, 1, 5, 10]
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
this._connectionsCounter = {
|
|
41
|
-
idle: 0,
|
|
42
|
-
pending: 0,
|
|
43
|
-
used: 0
|
|
44
|
-
};
|
|
45
|
-
this._connectionsCount = this.meter.createUpDownCounter(METRIC_DB_CLIENT_CONNECTION_COUNT, {
|
|
46
|
-
description: "The number of connections that are currently in state described by the state attribute.",
|
|
47
|
-
unit: "{connection}"
|
|
48
|
-
});
|
|
49
|
-
this._connectionPendingRequests = this.meter.createUpDownCounter(METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS, {
|
|
50
|
-
description: "The number of current pending requests for an open connection.",
|
|
51
|
-
unit: "{connection}"
|
|
52
|
-
});
|
|
53
20
|
}
|
|
54
21
|
init() {
|
|
55
22
|
const SUPPORTED_PG_VERSIONS = [">=8.0.3 <9"];
|
|
@@ -130,60 +97,36 @@ class PgInstrumentation extends InstrumentationBase {
|
|
|
130
97
|
const plugin = this;
|
|
131
98
|
return (original) => {
|
|
132
99
|
return function connect(callback) {
|
|
133
|
-
|
|
134
|
-
if (shouldSkipInstrumentation(config) || config.ignoreConnectSpans) {
|
|
100
|
+
if (shouldSkipInstrumentation() || plugin.getConfig().ignoreConnectSpans) {
|
|
135
101
|
return original.call(this, callback);
|
|
136
102
|
}
|
|
137
|
-
const span =
|
|
103
|
+
const span = startInactiveSpan({
|
|
104
|
+
name: SpanNames.CONNECT,
|
|
138
105
|
kind: SpanKind.CLIENT,
|
|
139
|
-
attributes: getSemanticAttributesFromConnection(this
|
|
106
|
+
attributes: getSemanticAttributesFromConnection(this)
|
|
140
107
|
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
108
|
+
let cb = callback;
|
|
109
|
+
if (cb) {
|
|
110
|
+
const parentSpan = getActiveSpan();
|
|
111
|
+
cb = patchClientConnectCallback(span, cb);
|
|
144
112
|
if (parentSpan) {
|
|
145
|
-
|
|
113
|
+
cb = bindCallbackToSpan(parentSpan, cb);
|
|
146
114
|
}
|
|
147
115
|
}
|
|
148
|
-
const connectResult =
|
|
149
|
-
return original.call(this,
|
|
116
|
+
const connectResult = withActiveSpan(span, () => {
|
|
117
|
+
return original.call(this, cb);
|
|
150
118
|
});
|
|
151
119
|
return handleConnectResult(span, connectResult);
|
|
152
120
|
};
|
|
153
121
|
};
|
|
154
122
|
}
|
|
155
|
-
recordOperationDuration(attributes, startTime) {
|
|
156
|
-
const metricsAttributes = {};
|
|
157
|
-
const keysToCopy = [
|
|
158
|
-
ATTR_DB_NAMESPACE,
|
|
159
|
-
ATTR_ERROR_TYPE,
|
|
160
|
-
ATTR_SERVER_PORT,
|
|
161
|
-
ATTR_SERVER_ADDRESS,
|
|
162
|
-
ATTR_DB_OPERATION_NAME
|
|
163
|
-
];
|
|
164
|
-
if (this._semconvStability & SemconvStability.OLD) {
|
|
165
|
-
keysToCopy.push(ATTR_DB_SYSTEM);
|
|
166
|
-
}
|
|
167
|
-
if (this._semconvStability & SemconvStability.STABLE) {
|
|
168
|
-
keysToCopy.push(ATTR_DB_SYSTEM_NAME);
|
|
169
|
-
}
|
|
170
|
-
keysToCopy.forEach((key) => {
|
|
171
|
-
if (key in attributes) {
|
|
172
|
-
metricsAttributes[key] = attributes[key];
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
const durationSeconds = timestampInSeconds() - startTime;
|
|
176
|
-
this._operationDuration.record(durationSeconds, metricsAttributes);
|
|
177
|
-
}
|
|
178
123
|
_getClientQueryPatch() {
|
|
179
|
-
const plugin = this;
|
|
180
124
|
return (original) => {
|
|
181
125
|
this._diag.debug("Patching pg.Client.prototype.query");
|
|
182
126
|
return function query(...args) {
|
|
183
|
-
if (shouldSkipInstrumentation(
|
|
127
|
+
if (shouldSkipInstrumentation()) {
|
|
184
128
|
return original.apply(this, args);
|
|
185
129
|
}
|
|
186
|
-
const startTime = timestampInSeconds();
|
|
187
130
|
const arg0 = args[0];
|
|
188
131
|
const firstArgIsString = typeof arg0 === "string";
|
|
189
132
|
const firstArgIsQueryObjectWithText = isObjectWithTextString(arg0);
|
|
@@ -196,210 +139,66 @@ class PgInstrumentation extends InstrumentationBase {
|
|
|
196
139
|
text: arg0.text,
|
|
197
140
|
values: arg0.values ?? (Array.isArray(args[1]) ? args[1] : void 0)
|
|
198
141
|
} : void 0;
|
|
199
|
-
const
|
|
200
|
-
[ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,
|
|
201
|
-
[ATTR_DB_NAMESPACE]: this.database,
|
|
202
|
-
[ATTR_SERVER_PORT]: this.connectionParameters.port,
|
|
203
|
-
[ATTR_SERVER_ADDRESS]: this.connectionParameters.host
|
|
204
|
-
};
|
|
205
|
-
if (queryConfig?.text) {
|
|
206
|
-
attributes[ATTR_DB_OPERATION_NAME] = parseNormalizedOperationName(queryConfig?.text);
|
|
207
|
-
}
|
|
208
|
-
const recordDuration = () => {
|
|
209
|
-
plugin.recordOperationDuration(attributes, startTime);
|
|
210
|
-
};
|
|
211
|
-
const instrumentationConfig = plugin.getConfig();
|
|
212
|
-
const span = handleConfigQuery.call(
|
|
213
|
-
this,
|
|
214
|
-
plugin.tracer,
|
|
215
|
-
instrumentationConfig,
|
|
216
|
-
plugin._semconvStability,
|
|
217
|
-
queryConfig
|
|
218
|
-
);
|
|
219
|
-
if (instrumentationConfig.addSqlCommenterCommentToQueries) {
|
|
220
|
-
if (firstArgIsString) {
|
|
221
|
-
args[0] = addSqlCommenterComment(span, arg0);
|
|
222
|
-
} else if (firstArgIsQueryObjectWithText && !("name" in arg0)) {
|
|
223
|
-
args[0] = {
|
|
224
|
-
...arg0,
|
|
225
|
-
text: addSqlCommenterComment(span, arg0.text)
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
}
|
|
142
|
+
const span = handleConfigQuery.call(this, queryConfig);
|
|
229
143
|
if (args.length > 0) {
|
|
230
|
-
const parentSpan =
|
|
144
|
+
const parentSpan = getActiveSpan();
|
|
231
145
|
if (typeof args[args.length - 1] === "function") {
|
|
232
|
-
args[args.length - 1] = patchCallback(
|
|
233
|
-
instrumentationConfig,
|
|
234
|
-
span,
|
|
235
|
-
args[args.length - 1],
|
|
236
|
-
// nb: not type safe.
|
|
237
|
-
attributes,
|
|
238
|
-
recordDuration
|
|
239
|
-
);
|
|
146
|
+
args[args.length - 1] = patchCallback(span, args[args.length - 1]);
|
|
240
147
|
if (parentSpan) {
|
|
241
|
-
args[args.length - 1] =
|
|
148
|
+
args[args.length - 1] = bindCallbackToSpan(parentSpan, args[args.length - 1]);
|
|
242
149
|
}
|
|
243
150
|
} else if (typeof queryConfig?.callback === "function") {
|
|
244
|
-
let callback = patchCallback(
|
|
245
|
-
plugin.getConfig(),
|
|
246
|
-
span,
|
|
247
|
-
queryConfig.callback,
|
|
248
|
-
// nb: not type safe.
|
|
249
|
-
attributes,
|
|
250
|
-
recordDuration
|
|
251
|
-
);
|
|
151
|
+
let callback = patchCallback(span, queryConfig.callback);
|
|
252
152
|
if (parentSpan) {
|
|
253
|
-
callback =
|
|
153
|
+
callback = bindCallbackToSpan(parentSpan, callback);
|
|
254
154
|
}
|
|
255
155
|
args[0].callback = callback;
|
|
256
156
|
}
|
|
257
157
|
}
|
|
258
|
-
const { requestHook } = instrumentationConfig;
|
|
259
|
-
if (typeof requestHook === "function" && queryConfig) {
|
|
260
|
-
safeExecuteInTheMiddle(
|
|
261
|
-
() => {
|
|
262
|
-
const { database, host, port, user } = this.connectionParameters;
|
|
263
|
-
const connection = { database, host, port, user };
|
|
264
|
-
requestHook(span, {
|
|
265
|
-
connection,
|
|
266
|
-
query: {
|
|
267
|
-
text: queryConfig.text,
|
|
268
|
-
// nb: if `client.query` is called with illegal arguments
|
|
269
|
-
// (e.g., if `queryConfig.values` is passed explicitly, but a
|
|
270
|
-
// non-array is given), then the type casts will be wrong. But
|
|
271
|
-
// we leave it up to the queryHook to handle that, and we
|
|
272
|
-
// catch and swallow any errors it throws. The other options
|
|
273
|
-
// are all worse. E.g., we could leave `queryConfig.values`
|
|
274
|
-
// and `queryConfig.name` as `unknown`, but then the hook body
|
|
275
|
-
// would be forced to validate (or cast) them before using
|
|
276
|
-
// them, which seems incredibly cumbersome given that these
|
|
277
|
-
// casts will be correct 99.9% of the time -- and pg.query
|
|
278
|
-
// will immediately throw during development in the other .1%
|
|
279
|
-
// of cases. Alternatively, we could simply skip calling the
|
|
280
|
-
// hook when `values` or `name` don't have the expected type,
|
|
281
|
-
// but that would add unnecessary validation overhead to every
|
|
282
|
-
// hook invocation and possibly be even more confusing/unexpected.
|
|
283
|
-
values: queryConfig.values,
|
|
284
|
-
name: queryConfig.name
|
|
285
|
-
}
|
|
286
|
-
});
|
|
287
|
-
},
|
|
288
|
-
(err) => {
|
|
289
|
-
if (err) {
|
|
290
|
-
plugin._diag.error("Error running query hook", err);
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
true
|
|
294
|
-
);
|
|
295
|
-
}
|
|
296
158
|
let result;
|
|
297
159
|
try {
|
|
298
160
|
result = original.apply(this, args);
|
|
299
161
|
} catch (e) {
|
|
300
|
-
|
|
301
|
-
span.recordException(sanitizedErrorMessage(e));
|
|
302
|
-
}
|
|
303
|
-
span.setStatus({
|
|
304
|
-
code: SpanStatusCode.ERROR,
|
|
305
|
-
message: getErrorMessage(e)
|
|
306
|
-
});
|
|
162
|
+
span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(e) });
|
|
307
163
|
span.end();
|
|
308
164
|
throw e;
|
|
309
165
|
}
|
|
310
166
|
if (result instanceof Promise) {
|
|
311
167
|
return result.then((result2) => {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
recordDuration();
|
|
315
|
-
span.end();
|
|
316
|
-
resolve(result2);
|
|
317
|
-
});
|
|
168
|
+
span.end();
|
|
169
|
+
return result2;
|
|
318
170
|
}).catch((error) => {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
span.setStatus({
|
|
324
|
-
code: SpanStatusCode.ERROR,
|
|
325
|
-
message: error.message
|
|
326
|
-
});
|
|
327
|
-
recordDuration();
|
|
328
|
-
span.end();
|
|
329
|
-
reject(error);
|
|
330
|
-
});
|
|
171
|
+
span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(error) });
|
|
172
|
+
span.end();
|
|
173
|
+
return Promise.reject(error);
|
|
331
174
|
});
|
|
332
175
|
}
|
|
333
176
|
return result;
|
|
334
177
|
};
|
|
335
178
|
};
|
|
336
179
|
}
|
|
337
|
-
_setPoolConnectEventListeners(pgPool) {
|
|
338
|
-
if (pgPool[EVENT_LISTENERS_SET]) return;
|
|
339
|
-
const poolName = getPoolName(pgPool.options);
|
|
340
|
-
pgPool.on("connect", () => {
|
|
341
|
-
this._connectionsCounter = updateCounter(
|
|
342
|
-
poolName,
|
|
343
|
-
pgPool,
|
|
344
|
-
this._connectionsCount,
|
|
345
|
-
this._connectionPendingRequests,
|
|
346
|
-
this._connectionsCounter
|
|
347
|
-
);
|
|
348
|
-
});
|
|
349
|
-
pgPool.on("acquire", () => {
|
|
350
|
-
this._connectionsCounter = updateCounter(
|
|
351
|
-
poolName,
|
|
352
|
-
pgPool,
|
|
353
|
-
this._connectionsCount,
|
|
354
|
-
this._connectionPendingRequests,
|
|
355
|
-
this._connectionsCounter
|
|
356
|
-
);
|
|
357
|
-
});
|
|
358
|
-
pgPool.on("remove", () => {
|
|
359
|
-
this._connectionsCounter = updateCounter(
|
|
360
|
-
poolName,
|
|
361
|
-
pgPool,
|
|
362
|
-
this._connectionsCount,
|
|
363
|
-
this._connectionPendingRequests,
|
|
364
|
-
this._connectionsCounter
|
|
365
|
-
);
|
|
366
|
-
});
|
|
367
|
-
pgPool.on("release", () => {
|
|
368
|
-
this._connectionsCounter = updateCounter(
|
|
369
|
-
poolName,
|
|
370
|
-
pgPool,
|
|
371
|
-
this._connectionsCount,
|
|
372
|
-
this._connectionPendingRequests,
|
|
373
|
-
this._connectionsCounter
|
|
374
|
-
);
|
|
375
|
-
});
|
|
376
|
-
pgPool[EVENT_LISTENERS_SET] = true;
|
|
377
|
-
}
|
|
378
180
|
_getPoolConnectPatch() {
|
|
379
181
|
const plugin = this;
|
|
380
182
|
return (originalConnect) => {
|
|
381
183
|
return function connect(callback) {
|
|
382
|
-
|
|
383
|
-
if (shouldSkipInstrumentation(config)) {
|
|
384
|
-
return originalConnect.call(this, callback);
|
|
385
|
-
}
|
|
386
|
-
plugin._setPoolConnectEventListeners(this);
|
|
387
|
-
if (config.ignoreConnectSpans) {
|
|
184
|
+
if (shouldSkipInstrumentation() || plugin.getConfig().ignoreConnectSpans) {
|
|
388
185
|
return originalConnect.call(this, callback);
|
|
389
186
|
}
|
|
390
|
-
const span =
|
|
187
|
+
const span = startInactiveSpan({
|
|
188
|
+
name: SpanNames.POOL_CONNECT,
|
|
391
189
|
kind: SpanKind.CLIENT,
|
|
392
|
-
attributes: getSemanticAttributesFromPoolConnection(this.options
|
|
190
|
+
attributes: getSemanticAttributesFromPoolConnection(this.options)
|
|
393
191
|
});
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
192
|
+
let cb = callback;
|
|
193
|
+
if (cb) {
|
|
194
|
+
const parentSpan = getActiveSpan();
|
|
195
|
+
cb = patchCallbackPGPool(span, cb);
|
|
397
196
|
if (parentSpan) {
|
|
398
|
-
|
|
197
|
+
cb = bindCallbackToSpan(parentSpan, cb);
|
|
399
198
|
}
|
|
400
199
|
}
|
|
401
|
-
const connectResult =
|
|
402
|
-
return originalConnect.call(this,
|
|
200
|
+
const connectResult = withActiveSpan(span, () => {
|
|
201
|
+
return originalConnect.call(this, cb);
|
|
403
202
|
});
|
|
404
203
|
return handleConnectResult(span, connectResult);
|
|
405
204
|
};
|
|
@@ -411,23 +210,14 @@ function handleConnectResult(span, connectResult) {
|
|
|
411
210
|
return connectResult;
|
|
412
211
|
}
|
|
413
212
|
const connectResultPromise = connectResult;
|
|
414
|
-
return
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
}
|
|
423
|
-
span.setStatus({
|
|
424
|
-
code: SpanStatusCode.ERROR,
|
|
425
|
-
message: getErrorMessage(error)
|
|
426
|
-
});
|
|
427
|
-
span.end();
|
|
428
|
-
return Promise.reject(error);
|
|
429
|
-
})
|
|
430
|
-
);
|
|
213
|
+
return connectResultPromise.then((result) => {
|
|
214
|
+
span.end();
|
|
215
|
+
return result;
|
|
216
|
+
}).catch((error) => {
|
|
217
|
+
span.setStatus({ code: SPAN_STATUS_ERROR, message: getErrorMessage(error) });
|
|
218
|
+
span.end();
|
|
219
|
+
return Promise.reject(error);
|
|
220
|
+
});
|
|
431
221
|
}
|
|
432
222
|
|
|
433
223
|
export { PgInstrumentation };
|