dd-trace 5.101.0 → 5.103.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/ext/exporters.js +1 -0
- package/package.json +20 -17
- package/packages/datadog-esbuild/src/utils.js +2 -2
- package/packages/datadog-instrumentations/src/aerospike.js +2 -2
- package/packages/datadog-instrumentations/src/ai.js +9 -9
- package/packages/datadog-instrumentations/src/amqplib.js +6 -7
- package/packages/datadog-instrumentations/src/anthropic.js +10 -10
- package/packages/datadog-instrumentations/src/apollo-server-core.js +3 -3
- package/packages/datadog-instrumentations/src/apollo-server.js +5 -5
- package/packages/datadog-instrumentations/src/avsc.js +6 -6
- package/packages/datadog-instrumentations/src/aws-sdk.js +151 -67
- package/packages/datadog-instrumentations/src/azure-durable-functions.js +8 -8
- package/packages/datadog-instrumentations/src/bluebird.js +2 -2
- package/packages/datadog-instrumentations/src/body-parser.js +2 -2
- package/packages/datadog-instrumentations/src/cassandra-driver.js +7 -7
- package/packages/datadog-instrumentations/src/child_process.js +12 -12
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +41 -24
- package/packages/datadog-instrumentations/src/connect.js +7 -7
- package/packages/datadog-instrumentations/src/cookie-parser.js +4 -4
- package/packages/datadog-instrumentations/src/cookie.js +2 -2
- package/packages/datadog-instrumentations/src/couchbase.js +73 -238
- package/packages/datadog-instrumentations/src/crypto.js +4 -4
- package/packages/datadog-instrumentations/src/cucumber.js +78 -17
- package/packages/datadog-instrumentations/src/dns.js +0 -3
- package/packages/datadog-instrumentations/src/elasticsearch.js +8 -11
- package/packages/datadog-instrumentations/src/electron/preload.js +42 -0
- package/packages/datadog-instrumentations/src/electron.js +240 -0
- package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +6 -6
- package/packages/datadog-instrumentations/src/express-session.js +4 -4
- package/packages/datadog-instrumentations/src/express.js +10 -11
- package/packages/datadog-instrumentations/src/fastify.js +2 -2
- package/packages/datadog-instrumentations/src/fetch.js +5 -5
- package/packages/datadog-instrumentations/src/fs.js +14 -14
- package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +5 -7
- package/packages/datadog-instrumentations/src/google-genai.js +4 -4
- package/packages/datadog-instrumentations/src/graphql.js +13 -12
- package/packages/datadog-instrumentations/src/grpc/server.js +2 -2
- package/packages/datadog-instrumentations/src/hapi.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/callback-instrumentor.js +9 -9
- package/packages/datadog-instrumentations/src/helpers/hook.js +4 -1
- package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/instrument.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/kafka.js +41 -0
- package/packages/datadog-instrumentations/src/helpers/promise.js +2 -2
- package/packages/datadog-instrumentations/src/hono.js +2 -2
- package/packages/datadog-instrumentations/src/http/client.js +6 -6
- package/packages/datadog-instrumentations/src/http/server.js +9 -9
- package/packages/datadog-instrumentations/src/ioredis.js +16 -12
- package/packages/datadog-instrumentations/src/jest.js +382 -81
- package/packages/datadog-instrumentations/src/kafkajs.js +165 -174
- package/packages/datadog-instrumentations/src/knex.js +17 -17
- package/packages/datadog-instrumentations/src/koa.js +12 -12
- package/packages/datadog-instrumentations/src/ldapjs.js +5 -5
- package/packages/datadog-instrumentations/src/light-my-request.js +2 -2
- package/packages/datadog-instrumentations/src/limitd-client.js +4 -4
- package/packages/datadog-instrumentations/src/lodash.js +4 -4
- package/packages/datadog-instrumentations/src/mariadb.js +13 -13
- package/packages/datadog-instrumentations/src/memcached.js +2 -2
- package/packages/datadog-instrumentations/src/microgateway-core.js +2 -2
- package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
- package/packages/datadog-instrumentations/src/mocha/main.js +85 -11
- package/packages/datadog-instrumentations/src/mocha/utils.js +133 -16
- package/packages/datadog-instrumentations/src/mocha/worker.js +7 -5
- package/packages/datadog-instrumentations/src/mongodb-core.js +42 -30
- package/packages/datadog-instrumentations/src/mongodb.js +5 -5
- package/packages/datadog-instrumentations/src/mongoose.js +21 -21
- package/packages/datadog-instrumentations/src/mquery.js +5 -5
- package/packages/datadog-instrumentations/src/multer.js +4 -4
- package/packages/datadog-instrumentations/src/mysql.js +16 -16
- package/packages/datadog-instrumentations/src/mysql2.js +4 -4
- package/packages/datadog-instrumentations/src/net.js +14 -8
- package/packages/datadog-instrumentations/src/nyc.js +5 -5
- package/packages/datadog-instrumentations/src/openai.js +19 -19
- package/packages/datadog-instrumentations/src/oracledb.js +6 -6
- package/packages/datadog-instrumentations/src/passport-utils.js +5 -5
- package/packages/datadog-instrumentations/src/pg.js +39 -25
- package/packages/datadog-instrumentations/src/pino.js +6 -10
- package/packages/datadog-instrumentations/src/playwright.js +445 -68
- package/packages/datadog-instrumentations/src/protobufjs.js +16 -16
- package/packages/datadog-instrumentations/src/redis.js +20 -12
- package/packages/datadog-instrumentations/src/restify.js +2 -2
- package/packages/datadog-instrumentations/src/router.js +12 -12
- package/packages/datadog-instrumentations/src/stripe.js +12 -12
- package/packages/datadog-instrumentations/src/vitest.js +107 -26
- package/packages/datadog-instrumentations/src/winston.js +4 -4
- package/packages/datadog-instrumentations/src/ws.js +7 -7
- package/packages/datadog-plugin-apollo/src/gateway/request.js +1 -21
- package/packages/datadog-plugin-aws-sdk/src/base.js +70 -28
- package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +20 -13
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +46 -36
- package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +34 -23
- package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +14 -15
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +74 -55
- package/packages/datadog-plugin-aws-sdk/src/services/stepfunctions.js +20 -18
- package/packages/datadog-plugin-aws-sdk/src/util.js +22 -0
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +6 -6
- package/packages/datadog-plugin-couchbase/src/index.js +58 -52
- package/packages/datadog-plugin-cucumber/src/index.js +5 -0
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +215 -26
- package/packages/datadog-plugin-cypress/src/support.js +13 -1
- package/packages/datadog-plugin-electron/src/index.js +17 -0
- package/packages/datadog-plugin-electron/src/ipc.js +143 -0
- package/packages/datadog-plugin-electron/src/net.js +82 -0
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +1 -5
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +27 -18
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +3 -1
- package/packages/datadog-plugin-graphql/src/execute.js +6 -28
- package/packages/datadog-plugin-graphql/src/resolve.js +30 -35
- package/packages/datadog-plugin-graphql/src/tools/signature.js +32 -7
- package/packages/datadog-plugin-graphql/src/tools/transforms.js +118 -100
- package/packages/datadog-plugin-graphql/src/utils.js +29 -0
- package/packages/datadog-plugin-grpc/src/client.js +6 -7
- package/packages/datadog-plugin-grpc/src/util.js +57 -22
- package/packages/datadog-plugin-http/src/client.js +3 -7
- package/packages/datadog-plugin-jest/src/index.js +92 -50
- package/packages/datadog-plugin-jest/src/util.js +1 -2
- package/packages/datadog-plugin-mocha/src/index.js +5 -0
- package/packages/datadog-plugin-mongodb-core/src/index.js +36 -69
- package/packages/datadog-plugin-mysql/src/index.js +1 -1
- package/packages/datadog-plugin-openai/src/services.js +2 -1
- package/packages/datadog-plugin-openai/src/tracing.js +12 -23
- package/packages/datadog-plugin-pg/src/index.js +3 -3
- package/packages/datadog-plugin-playwright/src/index.js +5 -1
- package/packages/datadog-plugin-redis/src/index.js +18 -23
- package/packages/datadog-plugin-vitest/src/index.js +8 -1
- package/packages/datadog-shimmer/src/shimmer.js +7 -1
- package/packages/dd-trace/src/aiguard/index.js +3 -1
- package/packages/dd-trace/src/aiguard/sdk.js +36 -30
- package/packages/dd-trace/src/aiguard/tags.js +20 -11
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +81 -81
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugins/kafka.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +4 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +2 -2
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +1 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +83 -48
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +1 -1
- package/packages/dd-trace/src/appsec/index.js +21 -24
- package/packages/dd-trace/src/appsec/reporter.js +3 -1
- package/packages/dd-trace/src/appsec/rule_manager.js +4 -2
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +31 -16
- package/packages/dd-trace/src/azure_metadata.js +17 -6
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +4 -4
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +4 -2
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +6 -4
- package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +1 -1
- package/packages/dd-trace/src/config/defaults.js +3 -14
- package/packages/dd-trace/src/config/generated-config-types.d.ts +3 -1
- package/packages/dd-trace/src/config/git_properties.js +2 -2
- package/packages/dd-trace/src/config/helper.js +4 -0
- package/packages/dd-trace/src/config/index.js +2 -2
- package/packages/dd-trace/src/config/major-overrides.js +98 -0
- package/packages/dd-trace/src/config/parsers.js +7 -1
- package/packages/dd-trace/src/config/supported-configurations.json +51 -38
- package/packages/dd-trace/src/datastreams/checkpointer.js +2 -2
- package/packages/dd-trace/src/datastreams/index.js +2 -1
- package/packages/dd-trace/src/datastreams/manager.js +1 -1
- package/packages/dd-trace/src/datastreams/processor.js +3 -4
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -0
- package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/state.js +2 -1
- package/packages/dd-trace/src/debugger/index.js +7 -7
- package/packages/dd-trace/src/dogstatsd.js +2 -2
- package/packages/dd-trace/src/encode/0.4.js +748 -232
- package/packages/dd-trace/src/encode/0.5.js +47 -10
- package/packages/dd-trace/src/encode/agentless-json.js +1 -1
- package/packages/dd-trace/src/exporter.js +2 -0
- package/packages/dd-trace/src/exporters/agent/index.js +2 -1
- package/packages/dd-trace/src/exporters/agentless/index.js +3 -2
- package/packages/dd-trace/src/exporters/agentless/writer.js +2 -2
- package/packages/dd-trace/src/exporters/common/buffering-exporter.js +2 -1
- package/packages/dd-trace/src/exporters/common/request.js +1 -1
- package/packages/dd-trace/src/exporters/electron/index.js +49 -0
- package/packages/dd-trace/src/external-logger/src/index.js +2 -1
- package/packages/dd-trace/src/git_metadata.js +10 -8
- package/packages/dd-trace/src/lambda/handler-paths.js +52 -0
- package/packages/dd-trace/src/lambda/index.js +62 -14
- package/packages/dd-trace/src/lambda/runtime/patch.js +21 -46
- package/packages/dd-trace/src/llmobs/index.js +13 -2
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +1 -2
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +45 -15
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +6 -3
- package/packages/dd-trace/src/llmobs/sdk.js +24 -26
- package/packages/dd-trace/src/llmobs/span_processor.js +25 -5
- package/packages/dd-trace/src/llmobs/util.js +1 -0
- package/packages/dd-trace/src/llmobs/writers/base.js +2 -1
- package/packages/dd-trace/src/msgpack/chunk.js +6 -3
- package/packages/dd-trace/src/openfeature/noop.js +40 -36
- package/packages/dd-trace/src/openfeature/writers/base.js +2 -1
- package/packages/dd-trace/src/openfeature/writers/exposures.js +33 -52
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +2 -1
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +1 -2
- package/packages/dd-trace/src/opentelemetry/tracer.js +0 -22
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +20 -9
- package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -11
- package/packages/dd-trace/src/payload-tagging/config/index.js +2 -2
- package/packages/dd-trace/src/plugins/ci_plugin.js +49 -4
- package/packages/dd-trace/src/plugins/database.js +54 -12
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/plugin.js +2 -4
- package/packages/dd-trace/src/plugins/util/ci.js +9 -9
- package/packages/dd-trace/src/plugins/util/git-cache.js +23 -23
- package/packages/dd-trace/src/plugins/util/stacktrace.js +2 -2
- package/packages/dd-trace/src/plugins/util/test.js +56 -12
- package/packages/dd-trace/src/plugins/util/url.js +1 -3
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +18 -16
- package/packages/dd-trace/src/plugins/util/web.js +5 -7
- package/packages/dd-trace/src/priority_sampler.js +1 -1
- package/packages/dd-trace/src/profiling/profiler.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/events.js +3 -23
- package/packages/dd-trace/src/profiling/profilers/wall.js +5 -6
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +1 -1
- package/packages/dd-trace/src/rate_limiter.js +1 -1
- package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
- package/packages/dd-trace/src/ritm.js +2 -1
- package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +5 -8
- package/packages/dd-trace/src/scope.js +3 -10
- package/packages/dd-trace/src/serverless.js +6 -6
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +27 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/web.js +4 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +24 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/web.js +4 -0
- package/packages/dd-trace/src/span_stats.js +1 -1
- package/packages/dd-trace/src/telemetry/dependencies.js +1 -1
- package/packages/dd-trace/src/telemetry/endpoints.js +1 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +2 -2
- package/packages/dd-trace/src/tracer.js +7 -7
- package/packages/dd-trace/src/lambda/runtime/ritm.js +0 -133
|
@@ -137,21 +137,21 @@ addHook({ name: 'oracledb', versions: ['>=5'], file: 'lib/oracledb.js' }, oracle
|
|
|
137
137
|
}
|
|
138
138
|
})
|
|
139
139
|
shimmer.wrap(oracledb.Pool.prototype, 'getConnection', getConnection => {
|
|
140
|
-
return function wrappedGetConnection () {
|
|
140
|
+
return function wrappedGetConnection (...args) {
|
|
141
141
|
let callback
|
|
142
|
-
if (typeof
|
|
143
|
-
callback =
|
|
142
|
+
if (typeof args[args.length - 1] === 'function') {
|
|
143
|
+
callback = args[args.length - 1]
|
|
144
144
|
}
|
|
145
145
|
if (callback) {
|
|
146
|
-
|
|
146
|
+
args[args.length - 1] = shimmer.wrapFunction(callback, callback => (err, connection) => {
|
|
147
147
|
if (connection) {
|
|
148
148
|
connectionAttributes.set(connection, poolAttributes.get(this))
|
|
149
149
|
}
|
|
150
150
|
callback(err, connection)
|
|
151
151
|
})
|
|
152
|
-
getConnection.apply(this,
|
|
152
|
+
getConnection.apply(this, args)
|
|
153
153
|
} else {
|
|
154
|
-
return getConnection.apply(this,
|
|
154
|
+
return getConnection.apply(this, args).then((connection) => {
|
|
155
155
|
connectionAttributes.set(connection, poolAttributes.get(this))
|
|
156
156
|
return connection
|
|
157
157
|
})
|
|
@@ -40,15 +40,15 @@ function wrapVerify (verify) {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
function wrapStrategy (Strategy) {
|
|
43
|
-
return function wrappedStrategy () {
|
|
43
|
+
return function wrappedStrategy (...args) {
|
|
44
44
|
// verify function can be either the first or second argument
|
|
45
|
-
if (typeof
|
|
46
|
-
|
|
45
|
+
if (typeof args[0] === 'function') {
|
|
46
|
+
args[0] = wrapVerify(args[0])
|
|
47
47
|
} else {
|
|
48
|
-
|
|
48
|
+
args[1] = wrapVerify(args[1])
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
return Strategy.apply(this,
|
|
51
|
+
return Strategy.apply(this, args)
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -15,6 +15,10 @@ const errorCh = channel('apm:pg:query:error')
|
|
|
15
15
|
const startPoolQueryCh = channel('datadog:pg:pool:query:start')
|
|
16
16
|
const finishPoolQueryCh = channel('datadog:pg:pool:query:finish')
|
|
17
17
|
|
|
18
|
+
// Drivers like pg-promise reuse the same prepared-statement query object across executions; cache
|
|
19
|
+
// the un-injected `text` so the wrap doesn't capture a previous DBM injection as the new original.
|
|
20
|
+
const originalTextCache = new WeakMap()
|
|
21
|
+
|
|
18
22
|
addHook({ name: 'pg', versions: ['>=8.0.3'], file: 'lib/native/client.js' }, Client => {
|
|
19
23
|
shimmer.wrap(Client.prototype, 'query', query => wrapQuery(query))
|
|
20
24
|
return Client
|
|
@@ -31,32 +35,26 @@ addHook({ name: 'pg', versions: ['>=8.0.3'] }, pg => {
|
|
|
31
35
|
})
|
|
32
36
|
|
|
33
37
|
function wrapQuery (query) {
|
|
34
|
-
return function () {
|
|
38
|
+
return function (...args) {
|
|
35
39
|
if (!startCh.hasSubscribers) {
|
|
36
|
-
return query.apply(this,
|
|
40
|
+
return query.apply(this, args)
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
const processId = this.processID
|
|
40
44
|
|
|
41
|
-
const pgQuery =
|
|
42
|
-
?
|
|
43
|
-
: { text:
|
|
45
|
+
const pgQuery = args[0] !== null && typeof args[0] === 'object'
|
|
46
|
+
? args[0]
|
|
47
|
+
: { text: args[0] }
|
|
44
48
|
|
|
45
49
|
const textPropObj = pgQuery.cursor ?? pgQuery
|
|
46
|
-
const textProp = Object.getOwnPropertyDescriptor(textPropObj, 'text')
|
|
47
50
|
const stream = typeof textPropObj.read === 'function'
|
|
48
51
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (!textProp || textProp.configurable) {
|
|
52
|
+
let originalText = originalTextCache.get(textPropObj)
|
|
53
|
+
if (originalText === undefined) {
|
|
52
54
|
originalText = textPropObj.text
|
|
53
|
-
|
|
54
|
-
Object.defineProperty(textPropObj, 'text', {
|
|
55
|
-
get () {
|
|
56
|
-
return this?.__ddInjectableQuery || originalText
|
|
57
|
-
},
|
|
58
|
-
})
|
|
55
|
+
originalTextCache.set(textPropObj, originalText)
|
|
59
56
|
}
|
|
57
|
+
|
|
60
58
|
const abortController = new AbortController()
|
|
61
59
|
const ctx = {
|
|
62
60
|
params: this.connectionParameters,
|
|
@@ -80,7 +78,7 @@ function wrapQuery (query) {
|
|
|
80
78
|
|
|
81
79
|
// Based on: https://github.com/brianc/node-postgres/blob/54eb0fa216aaccd727765641e7d1cf5da2bc483d/packages/pg/lib/client.js#L510
|
|
82
80
|
const reusingQuery = typeof pgQuery.submit === 'function'
|
|
83
|
-
const callback =
|
|
81
|
+
const callback = args[args.length - 1]
|
|
84
82
|
|
|
85
83
|
finish(error)
|
|
86
84
|
|
|
@@ -109,9 +107,25 @@ function wrapQuery (query) {
|
|
|
109
107
|
return Promise.reject(error)
|
|
110
108
|
}
|
|
111
109
|
|
|
112
|
-
|
|
110
|
+
const injected = ctx.injected
|
|
111
|
+
if (injected !== undefined) {
|
|
112
|
+
// Skip the per-read getter trampoline when `text` is a configurable, writable data
|
|
113
|
+
// property (the pg / pg-cursor common shape). Accessor descriptors and read-only data
|
|
114
|
+
// still go through `defineProperty(get)` so `get text ()` query objects keep working.
|
|
115
|
+
const textProp = Object.getOwnPropertyDescriptor(textPropObj, 'text')
|
|
116
|
+
if (textProp?.configurable === true && textProp.writable === true) {
|
|
117
|
+
textPropObj.text = injected
|
|
118
|
+
} else if (textProp === undefined || textProp.configurable === true) {
|
|
119
|
+
Object.defineProperty(textPropObj, 'text', {
|
|
120
|
+
configurable: true,
|
|
121
|
+
get () { return injected },
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
args[0] = pgQuery
|
|
113
127
|
|
|
114
|
-
const retval = query.apply(this,
|
|
128
|
+
const retval = query.apply(this, args)
|
|
115
129
|
|
|
116
130
|
const deperecated = Object.hasOwn(this, '_activeQuery')
|
|
117
131
|
const queryQueue = deperecated ? this._queryQueue : this.queryQueue
|
|
@@ -153,18 +167,18 @@ const finish = (ctx) => {
|
|
|
153
167
|
finishPoolQueryCh.publish(ctx)
|
|
154
168
|
}
|
|
155
169
|
function wrapPoolQuery (query) {
|
|
156
|
-
return function () {
|
|
170
|
+
return function (...args) {
|
|
157
171
|
if (!startPoolQueryCh.hasSubscribers) {
|
|
158
|
-
return query.apply(this,
|
|
172
|
+
return query.apply(this, args)
|
|
159
173
|
}
|
|
160
174
|
|
|
161
|
-
const pgQuery =
|
|
175
|
+
const pgQuery = args[0] !== null && typeof args[0] === 'object' ? args[0] : { text: args[0] }
|
|
162
176
|
const abortController = new AbortController()
|
|
163
177
|
|
|
164
178
|
const ctx = { query: pgQuery, abortController }
|
|
165
179
|
|
|
166
180
|
return startPoolQueryCh.runStores(ctx, () => {
|
|
167
|
-
const cb =
|
|
181
|
+
const cb = args[args.length - 1]
|
|
168
182
|
|
|
169
183
|
if (abortController.signal.aborted) {
|
|
170
184
|
const error = abortController.signal.reason || new Error('Aborted')
|
|
@@ -179,13 +193,13 @@ function wrapPoolQuery (query) {
|
|
|
179
193
|
}
|
|
180
194
|
|
|
181
195
|
if (typeof cb === 'function') {
|
|
182
|
-
|
|
196
|
+
args[args.length - 1] = shimmer.wrapFunction(cb, cb => function (...args) {
|
|
183
197
|
finish(ctx)
|
|
184
|
-
return cb.apply(this,
|
|
198
|
+
return cb.apply(this, args)
|
|
185
199
|
})
|
|
186
200
|
}
|
|
187
201
|
|
|
188
|
-
const retval = query.apply(this,
|
|
202
|
+
const retval = query.apply(this, args)
|
|
189
203
|
|
|
190
204
|
if (retval?.then) {
|
|
191
205
|
retval.then(() => {
|
|
@@ -7,8 +7,8 @@ const {
|
|
|
7
7
|
} = require('./helpers/instrument')
|
|
8
8
|
|
|
9
9
|
function wrapPino (symbol, wrapper, pino) {
|
|
10
|
-
return function pinoWithTrace () {
|
|
11
|
-
const instance = pino.apply(this,
|
|
10
|
+
return function pinoWithTrace (...args) {
|
|
11
|
+
const instance = pino.apply(this, args)
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(instance, symbol, {
|
|
14
14
|
configurable: true,
|
|
@@ -46,8 +46,8 @@ function wrapPrettifyObject (prettifyObject) {
|
|
|
46
46
|
|
|
47
47
|
function wrapPrettyFactory (prettyFactory) {
|
|
48
48
|
const ch = channel('apm:pino:log')
|
|
49
|
-
return function prettyFactoryWithTrace () {
|
|
50
|
-
const pretty = prettyFactory.apply(this,
|
|
49
|
+
return function prettyFactoryWithTrace (...args) {
|
|
50
|
+
const pretty = prettyFactory.apply(this, args)
|
|
51
51
|
return function prettyWithTrace (obj) {
|
|
52
52
|
const payload = { message: obj }
|
|
53
53
|
ch.publish(payload)
|
|
@@ -60,17 +60,13 @@ function wrapPrettyFactory (prettyFactory) {
|
|
|
60
60
|
addHook({ name: 'pino', versions: ['2 - 3', '4'], patchDefault: true }, (pino) => {
|
|
61
61
|
const asJsonSym = (pino.symbols && pino.symbols.asJsonSym) || 'asJson'
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return wrapped
|
|
63
|
+
return shimmer.wrapFunction(pino, pino => wrapPino(asJsonSym, wrapAsJson, pino))
|
|
66
64
|
})
|
|
67
65
|
|
|
68
66
|
addHook({ name: 'pino', versions: ['>=5 <6.8.0'], patchDefault: true }, (pino) => {
|
|
69
67
|
const asJsonSym = ((pino.default || pino)?.symbols.asJsonSym) || 'asJson'
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return wrapped
|
|
69
|
+
return shimmer.wrapFunction(pino, pino => wrapPino(asJsonSym, wrapAsJson, pino.default || pino))
|
|
74
70
|
})
|
|
75
71
|
|
|
76
72
|
addHook({ name: 'pino', versions: ['>=6.8.0'], patchDefault: false }, (pino) => {
|