dd-trace 5.81.0 → 5.82.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/index.d.ts +7 -0
- package/loader-hook.mjs +7 -2
- package/package.json +13 -18
- package/packages/datadog-core/src/utils/src/parse-tags.js +1 -1
- package/packages/datadog-esbuild/index.js +8 -7
- package/packages/datadog-esbuild/src/utils.js +14 -2
- package/packages/datadog-instrumentations/src/aerospike.js +3 -2
- package/packages/datadog-instrumentations/src/ai.js +2 -2
- package/packages/datadog-instrumentations/src/amqp10.js +1 -1
- package/packages/datadog-instrumentations/src/amqplib.js +4 -4
- package/packages/datadog-instrumentations/src/anthropic.js +2 -2
- package/packages/datadog-instrumentations/src/apollo-server-core.js +2 -2
- package/packages/datadog-instrumentations/src/apollo-server.js +1 -1
- package/packages/datadog-instrumentations/src/apollo.js +3 -2
- package/packages/datadog-instrumentations/src/avsc.js +1 -1
- package/packages/datadog-instrumentations/src/aws-sdk.js +1 -1
- package/packages/datadog-instrumentations/src/azure-event-hubs.js +4 -3
- package/packages/datadog-instrumentations/src/azure-functions.js +2 -2
- package/packages/datadog-instrumentations/src/azure-service-bus.js +3 -4
- package/packages/datadog-instrumentations/src/bluebird.js +1 -1
- package/packages/datadog-instrumentations/src/bullmq.js +11 -0
- package/packages/datadog-instrumentations/src/bunyan.js +1 -1
- package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
- package/packages/datadog-instrumentations/src/child_process.js +2 -2
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +3 -3
- package/packages/datadog-instrumentations/src/couchbase.js +1 -1
- package/packages/datadog-instrumentations/src/crypto.js +1 -1
- package/packages/datadog-instrumentations/src/cucumber.js +12 -13
- package/packages/datadog-instrumentations/src/cypress.js +1 -1
- package/packages/datadog-instrumentations/src/dns.js +1 -1
- package/packages/datadog-instrumentations/src/elasticsearch.js +1 -1
- package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +1 -1
- package/packages/datadog-instrumentations/src/express.js +1 -1
- package/packages/datadog-instrumentations/src/fs.js +1 -1
- package/packages/datadog-instrumentations/src/generic-pool.js +1 -1
- package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +137 -15
- package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +2 -3
- package/packages/datadog-instrumentations/src/google-genai.js +3 -3
- package/packages/datadog-instrumentations/src/graphql.js +1 -1
- package/packages/datadog-instrumentations/src/grpc/client.js +1 -1
- package/packages/datadog-instrumentations/src/grpc/server.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/hook.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/hooks.js +4 -1
- package/packages/datadog-instrumentations/src/helpers/instrument.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/register.js +6 -4
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/bullmq.json +106 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +2 -1
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/shared-utils.js +9 -0
- package/packages/datadog-instrumentations/src/hono.js +55 -10
- package/packages/datadog-instrumentations/src/ioredis.js +1 -1
- package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
- package/packages/datadog-instrumentations/src/jest.js +2 -2
- package/packages/datadog-instrumentations/src/kafkajs.js +3 -3
- package/packages/datadog-instrumentations/src/knex.js +1 -1
- package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
- package/packages/datadog-instrumentations/src/light-my-request.js +93 -0
- package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
- package/packages/datadog-instrumentations/src/lodash.js +1 -2
- package/packages/datadog-instrumentations/src/mariadb.js +1 -2
- package/packages/datadog-instrumentations/src/memcached.js +1 -1
- package/packages/datadog-instrumentations/src/mongodb-core.js +1 -1
- package/packages/datadog-instrumentations/src/mongodb.js +1 -1
- package/packages/datadog-instrumentations/src/mongoose.js +1 -1
- package/packages/datadog-instrumentations/src/mquery.js +1 -1
- package/packages/datadog-instrumentations/src/mysql.js +1 -1
- package/packages/datadog-instrumentations/src/mysql2.js +1 -1
- package/packages/datadog-instrumentations/src/net.js +1 -1
- package/packages/datadog-instrumentations/src/next.js +1 -1
- package/packages/datadog-instrumentations/src/nyc.js +1 -1
- package/packages/datadog-instrumentations/src/openai.js +2 -2
- package/packages/datadog-instrumentations/src/opensearch.js +1 -1
- package/packages/datadog-instrumentations/src/oracledb.js +1 -1
- package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
- package/packages/datadog-instrumentations/src/pg.js +3 -3
- package/packages/datadog-instrumentations/src/pino.js +1 -1
- package/packages/datadog-instrumentations/src/playwright.js +1 -1
- package/packages/datadog-instrumentations/src/prisma.js +52 -37
- package/packages/datadog-instrumentations/src/process.js +1 -1
- package/packages/datadog-instrumentations/src/promise-js.js +1 -1
- package/packages/datadog-instrumentations/src/promise.js +1 -1
- package/packages/datadog-instrumentations/src/protobufjs.js +1 -1
- package/packages/datadog-instrumentations/src/q.js +1 -1
- package/packages/datadog-instrumentations/src/redis.js +1 -1
- package/packages/datadog-instrumentations/src/rhea.js +1 -1
- package/packages/datadog-instrumentations/src/selenium.js +1 -1
- package/packages/datadog-instrumentations/src/sequelize.js +1 -2
- package/packages/datadog-instrumentations/src/sharedb.js +1 -1
- package/packages/datadog-instrumentations/src/tedious.js +1 -1
- package/packages/datadog-instrumentations/src/undici.js +4 -4
- package/packages/datadog-instrumentations/src/url.js +1 -1
- package/packages/datadog-instrumentations/src/vitest.js +1 -1
- package/packages/datadog-instrumentations/src/vm.js +1 -1
- package/packages/datadog-instrumentations/src/when.js +1 -1
- package/packages/datadog-instrumentations/src/winston.js +1 -1
- package/packages/datadog-instrumentations/src/ws.js +3 -2
- package/packages/datadog-plugin-amqp10/src/index.js +1 -1
- package/packages/datadog-plugin-amqplib/src/index.js +1 -1
- package/packages/datadog-plugin-anthropic/src/index.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +4 -4
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +2 -2
- package/packages/datadog-plugin-aws-sdk/src/util.js +3 -3
- package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
- package/packages/datadog-plugin-azure-event-hubs/src/producer.js +19 -5
- package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
- package/packages/datadog-plugin-azure-service-bus/src/producer.js +4 -0
- package/packages/datadog-plugin-bullmq/src/consumer.js +60 -0
- package/packages/datadog-plugin-bullmq/src/index.js +18 -0
- package/packages/datadog-plugin-bullmq/src/producer.js +178 -0
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
- package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
- package/packages/datadog-plugin-express/src/index.js +1 -1
- package/packages/datadog-plugin-fastify/src/index.js +1 -1
- package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +13 -3
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +171 -12
- package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -2
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +160 -13
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +217 -0
- package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
- package/packages/datadog-plugin-google-genai/src/index.js +1 -1
- package/packages/datadog-plugin-graphql/src/resolve.js +1 -1
- package/packages/datadog-plugin-grpc/src/index.js +1 -1
- package/packages/datadog-plugin-http/src/client.js +2 -1
- package/packages/datadog-plugin-http/src/index.js +25 -5
- package/packages/datadog-plugin-http2/src/client.js +2 -2
- package/packages/datadog-plugin-http2/src/index.js +1 -1
- package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
- package/packages/datadog-plugin-langchain/src/index.js +1 -1
- package/packages/datadog-plugin-moleculer/src/index.js +1 -1
- package/packages/datadog-plugin-mongodb-core/src/index.js +6 -2
- package/packages/datadog-plugin-openai/src/index.js +1 -1
- package/packages/datadog-plugin-openai/src/stream-helpers.js +30 -10
- package/packages/datadog-plugin-openai/src/tracing.js +2 -2
- package/packages/datadog-plugin-rhea/src/index.js +1 -1
- package/packages/datadog-plugin-ws/src/close.js +56 -3
- package/packages/datadog-plugin-ws/src/index.js +4 -0
- package/packages/datadog-plugin-ws/src/producer.js +39 -4
- package/packages/datadog-plugin-ws/src/receiver.js +39 -3
- package/packages/datadog-plugin-ws/src/server.js +13 -1
- package/packages/datadog-plugin-ws/src/util.js +107 -0
- package/packages/datadog-shimmer/src/shimmer.js +2 -2
- package/packages/dd-trace/src/aiguard/sdk.js +3 -3
- package/packages/dd-trace/src/appsec/graphql.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/code-injection-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/command-injection-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/injection-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/ldap-injection-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +3 -3
- package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/ssrf-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/untrusted-deserialization-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +3 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-randomness-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/iast-plugin.js +3 -3
- package/packages/dd-trace/src/appsec/iast/index.js +5 -5
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +10 -14
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +1 -1
- package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +3 -3
- package/packages/dd-trace/src/appsec/index.js +8 -8
- package/packages/dd-trace/src/appsec/rasp/command_injection.js +1 -1
- package/packages/dd-trace/src/appsec/rasp/index.js +1 -1
- package/packages/dd-trace/src/appsec/rasp/lfi.js +1 -1
- package/packages/dd-trace/src/appsec/rc-products.js +10 -0
- package/packages/dd-trace/src/appsec/recommended.json +230 -3
- package/packages/dd-trace/src/appsec/remote_config.js +177 -0
- package/packages/dd-trace/src/appsec/reporter.js +3 -3
- package/packages/dd-trace/src/appsec/rule_manager.js +37 -20
- package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/set_user.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/track_event.js +2 -2
- package/packages/dd-trace/src/appsec/sdk/user_blocking.js +2 -2
- package/packages/dd-trace/src/appsec/user_tracking.js +2 -2
- package/packages/dd-trace/src/appsec/waf/index.js +17 -3
- package/packages/dd-trace/src/appsec/waf/waf_manager.js +11 -0
- package/packages/dd-trace/src/azure_metadata.js +8 -2
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +6 -0
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +1 -1
- package/packages/dd-trace/src/config/remote_config.js +34 -0
- package/packages/dd-trace/src/config.js +29 -28
- package/packages/dd-trace/src/config_defaults.js +2 -1
- package/packages/dd-trace/src/constants.js +5 -0
- package/packages/dd-trace/src/crashtracking/crashtracker.js +10 -1
- package/packages/dd-trace/src/datastreams/checkpointer.js +2 -2
- package/packages/dd-trace/src/datastreams/index.js +1 -1
- package/packages/dd-trace/src/datastreams/pathway.js +7 -7
- package/packages/dd-trace/src/datastreams/processor.js +2 -2
- package/packages/dd-trace/src/datastreams/writer.js +2 -2
- package/packages/dd-trace/src/debugger/config.js +1 -0
- package/packages/dd-trace/src/debugger/devtools_client/config.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/index.js +7 -2
- package/packages/dd-trace/src/debugger/devtools_client/send.js +3 -3
- package/packages/dd-trace/src/debugger/devtools_client/session.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +5 -5
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/state.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/status.js +2 -2
- package/packages/dd-trace/src/debugger/index.js +1 -1
- package/packages/dd-trace/src/dogstatsd.js +3 -2
- package/packages/dd-trace/src/encode/0.4.js +1 -1
- package/packages/dd-trace/src/encode/agentless-ci-visibility.js +2 -2
- package/packages/dd-trace/src/encode/coverage-ci-visibility.js +1 -1
- package/packages/dd-trace/src/encode/span-stats.js +6 -1
- package/packages/dd-trace/src/exporter.js +2 -2
- package/packages/dd-trace/src/exporters/agent/index.js +1 -1
- package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +1 -1
- package/packages/dd-trace/src/exporters/common/request.js +2 -2
- package/packages/dd-trace/src/exporters/common/writer.js +1 -1
- package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
- package/packages/dd-trace/src/external-logger/src/index.js +1 -2
- package/packages/dd-trace/src/flare/index.js +1 -1
- package/packages/dd-trace/src/guardrails/index.js +6 -3
- package/packages/dd-trace/src/id.js +1 -1
- package/packages/dd-trace/src/index.js +1 -1
- package/packages/dd-trace/src/lambda/handler.js +4 -4
- package/packages/dd-trace/src/lambda/index.js +1 -1
- package/packages/dd-trace/src/lambda/runtime/patch.js +4 -4
- package/packages/dd-trace/src/lambda/runtime/ritm.js +1 -1
- package/packages/dd-trace/src/llmobs/constants/tags.js +7 -1
- package/packages/dd-trace/src/llmobs/index.js +8 -9
- package/packages/dd-trace/src/llmobs/plugins/ai/index.js +38 -7
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +30 -9
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +3 -3
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chain.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/embedding.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/llm.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +16 -0
- package/packages/dd-trace/src/llmobs/plugins/openai/index.js +16 -1
- package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +22 -10
- package/packages/dd-trace/src/llmobs/plugins/vertexai.js +1 -1
- package/packages/dd-trace/src/llmobs/sdk.js +15 -22
- package/packages/dd-trace/src/llmobs/span_processor.js +9 -13
- package/packages/dd-trace/src/llmobs/telemetry.js +3 -4
- package/packages/dd-trace/src/llmobs/writers/base.js +2 -2
- package/packages/dd-trace/src/llmobs/writers/spans.js +1 -2
- package/packages/dd-trace/src/log/index.js +1 -1
- package/packages/dd-trace/src/noop/proxy.js +2 -2
- package/packages/dd-trace/src/noop/span.js +1 -1
- package/packages/dd-trace/src/openfeature/index.js +2 -2
- package/packages/dd-trace/src/openfeature/noop.js +14 -14
- package/packages/dd-trace/src/openfeature/remote_config.js +31 -0
- package/packages/dd-trace/src/openfeature/writers/base.js +5 -5
- package/packages/dd-trace/src/openfeature/writers/exposures.js +9 -9
- package/packages/dd-trace/src/opentelemetry/context_manager.js +2 -2
- package/packages/dd-trace/src/opentelemetry/logs/logger.js +1 -1
- package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +4 -4
- package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +9 -8
- package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
- package/packages/dd-trace/src/opentelemetry/metrics/meter.js +2 -2
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +4 -4
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +36 -11
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +11 -10
- package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +1 -1
- package/packages/dd-trace/src/opentelemetry/span.js +2 -2
- package/packages/dd-trace/src/opentelemetry/tracer.js +3 -3
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +24 -8
- package/packages/dd-trace/src/opentracing/span.js +3 -3
- package/packages/dd-trace/src/opentracing/tracer.js +5 -5
- package/packages/dd-trace/src/payload-tagging/index.js +6 -2
- package/packages/dd-trace/src/plugin_manager.js +1 -1
- package/packages/dd-trace/src/plugins/apollo.js +1 -1
- package/packages/dd-trace/src/plugins/ci_plugin.js +27 -27
- package/packages/dd-trace/src/plugins/database.js +1 -1
- package/packages/dd-trace/src/plugins/index.js +5 -1
- package/packages/dd-trace/src/plugins/log_plugin.js +1 -1
- package/packages/dd-trace/src/plugins/outbound.js +1 -1
- package/packages/dd-trace/src/plugins/tracing.js +1 -1
- package/packages/dd-trace/src/plugins/util/ci.js +1 -1
- package/packages/dd-trace/src/plugins/util/git.js +8 -8
- package/packages/dd-trace/src/plugins/util/stacktrace.js +1 -1
- package/packages/dd-trace/src/plugins/util/test.js +24 -24
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +1 -1
- package/packages/dd-trace/src/plugins/util/web.js +8 -5
- package/packages/dd-trace/src/priority_sampler.js +15 -16
- package/packages/dd-trace/src/process-tags/index.js +31 -29
- package/packages/dd-trace/src/profiling/config.js +32 -21
- package/packages/dd-trace/src/profiling/exporter_cli.js +4 -4
- package/packages/dd-trace/src/profiling/exporters/agent.js +5 -5
- package/packages/dd-trace/src/profiling/index.js +1 -1
- package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
- package/packages/dd-trace/src/profiling/profiler.js +4 -5
- package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/events.js +2 -2
- package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
- package/packages/dd-trace/src/proxy.js +12 -18
- package/packages/dd-trace/src/remote_config/index.js +541 -137
- package/packages/dd-trace/src/require-package-json.js +1 -1
- package/packages/dd-trace/src/ritm.js +50 -27
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +1 -1
- package/packages/dd-trace/src/serverless.js +16 -0
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +8 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +8 -0
- package/packages/dd-trace/src/span_format.js +1 -1
- package/packages/dd-trace/src/span_processor.js +2 -2
- package/packages/dd-trace/src/span_stats.js +6 -4
- package/packages/dd-trace/src/standalone/index.js +1 -1
- package/packages/dd-trace/src/startup-log.js +3 -3
- package/packages/dd-trace/src/supported-configurations.json +3 -0
- package/packages/dd-trace/src/telemetry/dependencies.js +3 -3
- package/packages/dd-trace/src/telemetry/endpoints.js +8 -8
- package/packages/dd-trace/src/telemetry/logs/index.js +1 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +11 -6
- package/packages/dd-trace/src/tracer.js +3 -3
- package/packages/dd-trace/src/tracer_metadata.js +19 -15
- package/packages/dd-trace/src/remote_config/manager.js +0 -368
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const path = require('path')
|
|
4
4
|
const shimmer = require('../../datadog-shimmer')
|
|
5
5
|
const log = require('../../dd-trace/src/log')
|
|
6
|
-
const path = require('path')
|
|
7
6
|
const {
|
|
8
7
|
getCoveredFilenamesFromCoverage,
|
|
9
8
|
JEST_WORKER_TRACE_PAYLOAD_CODE,
|
|
@@ -21,6 +20,7 @@ const {
|
|
|
21
20
|
getJestTestName,
|
|
22
21
|
getJestSuitesToRun
|
|
23
22
|
} = require('../../datadog-plugin-jest/src/util')
|
|
23
|
+
const { addHook, channel } = require('./helpers/instrument')
|
|
24
24
|
|
|
25
25
|
const testSessionStartCh = channel('ci:jest:session:start')
|
|
26
26
|
const testSessionFinishCh = channel('ci:jest:session:finish')
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
4
|
+
|
|
5
|
+
const log = require('../../dd-trace/src/log')
|
|
3
6
|
const {
|
|
4
7
|
channel,
|
|
5
8
|
addHook
|
|
6
9
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
|
-
|
|
9
|
-
const log = require('../../dd-trace/src/log')
|
|
10
10
|
|
|
11
11
|
const producerStartCh = channel('apm:kafkajs:produce:start')
|
|
12
12
|
const producerCommitCh = channel('apm:kafkajs:produce:commit')
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const { addHook, channel } = require('./helpers/instrument')
|
|
4
5
|
const { wrapThen } = require('./helpers/promise')
|
|
5
|
-
const shimmer = require('../../datadog-shimmer')
|
|
6
6
|
|
|
7
7
|
const startRawQueryCh = channel('datadog:knex:raw:start')
|
|
8
8
|
const rawQuerySubscribes = channel('datadog:knex:raw:subscribes')
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook,
|
|
6
7
|
AsyncResource
|
|
7
8
|
} = require('./helpers/instrument')
|
|
8
|
-
const shimmer = require('../../datadog-shimmer')
|
|
9
9
|
|
|
10
10
|
function isString (value) {
|
|
11
11
|
// eslint-disable-next-line unicorn/no-instanceof-builtins
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* light-my-request instrumentation
|
|
5
|
+
*
|
|
6
|
+
* This instrumentation enables dd-trace to capture spans for Fastify inject() calls
|
|
7
|
+
* which use light-my-request internally. Without this, inject() bypasses the HTTP
|
|
8
|
+
* server instrumentation since it doesn't go through http.Server.emit('request').
|
|
9
|
+
*
|
|
10
|
+
* This is critical for platforms like Platformatic that use undici-thread-interceptor
|
|
11
|
+
* to route requests between worker threads using Fastify inject().
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const shimmer = require('../../datadog-shimmer')
|
|
15
|
+
const {
|
|
16
|
+
channel,
|
|
17
|
+
addHook
|
|
18
|
+
} = require('./helpers/instrument')
|
|
19
|
+
|
|
20
|
+
// Reuse the same channels as HTTP server instrumentation
|
|
21
|
+
const startServerCh = channel('apm:http:server:request:start')
|
|
22
|
+
const exitServerCh = channel('apm:http:server:request:exit')
|
|
23
|
+
const errorServerCh = channel('apm:http:server:request:error')
|
|
24
|
+
const finishServerCh = channel('apm:http:server:request:finish')
|
|
25
|
+
|
|
26
|
+
addHook({ name: 'light-my-request', versions: ['>=3'] }, (lightMyRequest) => {
|
|
27
|
+
// Wrap the inject function
|
|
28
|
+
return shimmer.wrapFunction(lightMyRequest, lightMyRequest => {
|
|
29
|
+
return function wrappedInject (dispatchFunc, options, callback) {
|
|
30
|
+
// If no subscribers, use original behavior
|
|
31
|
+
if (!startServerCh.hasSubscribers) {
|
|
32
|
+
return lightMyRequest.apply(this, arguments)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Wrap the dispatch function to add tracing
|
|
36
|
+
const wrappedDispatch = wrapDispatchFunc(dispatchFunc)
|
|
37
|
+
|
|
38
|
+
// Call original with wrapped dispatch
|
|
39
|
+
return lightMyRequest.call(this, wrappedDispatch, options, callback)
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
function wrapDispatchFunc (dispatchFunc) {
|
|
45
|
+
return function tracedDispatch (req, res) {
|
|
46
|
+
const abortController = new AbortController()
|
|
47
|
+
|
|
48
|
+
// Link res.req like HTTP instrumentation does
|
|
49
|
+
res.req = req
|
|
50
|
+
|
|
51
|
+
// Publish start event (same as HTTP server)
|
|
52
|
+
startServerCh.publish({ req, res, abortController })
|
|
53
|
+
|
|
54
|
+
// Track when response finishes via 'finish' event (like HTTP instrumentation)
|
|
55
|
+
let finishCalled = false
|
|
56
|
+
const onFinish = () => {
|
|
57
|
+
if (!finishCalled) {
|
|
58
|
+
finishCalled = true
|
|
59
|
+
finishServerCh.publish({ req })
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// light-my-request Response emits 'finish' when done
|
|
64
|
+
if (res.on && typeof res.on === 'function') {
|
|
65
|
+
res.on('finish', onFinish)
|
|
66
|
+
res.on('close', onFinish)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Also wrap end() as fallback
|
|
70
|
+
const originalEnd = res.end
|
|
71
|
+
if (originalEnd) {
|
|
72
|
+
res.end = function wrappedEnd () {
|
|
73
|
+
const result = originalEnd.apply(this, arguments)
|
|
74
|
+
// Trigger finish if events don't fire
|
|
75
|
+
setImmediate(onFinish)
|
|
76
|
+
return result
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
if (abortController.signal.aborted) {
|
|
82
|
+
return
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return dispatchFunc.call(this, req, res)
|
|
86
|
+
} catch (err) {
|
|
87
|
+
errorServerCh.publish(err)
|
|
88
|
+
throw err
|
|
89
|
+
} finally {
|
|
90
|
+
exitServerCh.publish({ req })
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { channel, addHook } = require('./helpers/instrument')
|
|
4
|
-
|
|
5
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
6
5
|
|
|
7
6
|
addHook({ name: 'lodash', versions: ['>=4'] }, lodash => {
|
|
8
7
|
const lodashOperationCh = channel('datadog:lodash:operation')
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { channel, addHook } = require('./helpers/instrument')
|
|
4
|
-
|
|
5
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
6
5
|
|
|
7
6
|
const commandAddCh = channel('apm:mariadb:command:add')
|
|
8
7
|
const connectionStartCh = channel('apm:mariadb:connection:start')
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook
|
|
6
7
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
8
|
|
|
9
9
|
addHook({ name: 'memcached', versions: ['>=2.2'] }, Memcached => {
|
|
10
10
|
const startCh = channel('apm:memcached:command:start')
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook,
|
|
6
7
|
AsyncResource
|
|
7
8
|
} = require('./helpers/instrument')
|
|
8
|
-
const shimmer = require('../../datadog-shimmer')
|
|
9
9
|
|
|
10
10
|
const startCh = channel('apm:mongodb:query:start')
|
|
11
11
|
const finishCh = channel('apm:mongodb:query:finish')
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
require('./mongodb-core')
|
|
4
4
|
|
|
5
|
+
const shimmer = require('../../datadog-shimmer')
|
|
5
6
|
const {
|
|
6
7
|
channel,
|
|
7
8
|
addHook
|
|
8
9
|
} = require('./helpers/instrument')
|
|
9
|
-
const shimmer = require('../../datadog-shimmer')
|
|
10
10
|
|
|
11
11
|
// collection methods with filter
|
|
12
12
|
const collectionMethodsWithFilter = [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const { addHook, channel } = require('./helpers/instrument')
|
|
4
5
|
const { wrapThen } = require('./helpers/promise')
|
|
5
|
-
const shimmer = require('../../datadog-shimmer')
|
|
6
6
|
|
|
7
7
|
const startCh = channel('datadog:mongoose:model:filter:start')
|
|
8
8
|
const finishCh = channel('datadog:mongoose:model:filter:finish')
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const dc = require('dc-polyfill')
|
|
4
|
+
const shimmer = require('../../datadog-shimmer')
|
|
4
5
|
const {
|
|
5
6
|
channel,
|
|
6
7
|
addHook
|
|
7
8
|
} = require('./helpers/instrument')
|
|
8
|
-
const shimmer = require('../../datadog-shimmer')
|
|
9
9
|
|
|
10
10
|
const prepareCh = channel('datadog:mquery:filter:prepare')
|
|
11
11
|
const tracingCh = dc.tracingChannel('datadog:mquery:filter')
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { channel, addHook } = require('./helpers/instrument')
|
|
4
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
5
5
|
|
|
6
6
|
addHook({ name: 'mysql', file: 'lib/Connection.js', versions: ['>=2'] }, Connection => {
|
|
7
7
|
const startCh = channel('apm:mysql:query:start')
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
const { errorMonitor } = require('node:events')
|
|
4
4
|
|
|
5
|
-
const { channel, addHook } = require('./helpers/instrument')
|
|
6
5
|
const shimmer = require('../../datadog-shimmer')
|
|
7
6
|
const satisfies = require('../../../vendor/dist/semifies')
|
|
7
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
8
8
|
|
|
9
9
|
function wrapConnection (Connection, version) {
|
|
10
10
|
const startCh = channel('apm:mysql2:query:start')
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
const { errorMonitor } = require('events')
|
|
4
4
|
|
|
5
|
-
const { channel, addHook } = require('./helpers/instrument')
|
|
6
5
|
const shimmer = require('../../datadog-shimmer')
|
|
6
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
7
7
|
|
|
8
8
|
const startICPCh = channel('apm:net:ipc:start')
|
|
9
9
|
const finishICPCh = channel('apm:net:ipc:finish')
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { channel, addHook } = require('./helpers/instrument')
|
|
4
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
5
5
|
|
|
6
6
|
const startChannel = channel('apm:next:request:start')
|
|
7
7
|
const finishChannel = channel('apm:next:request:finish')
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { addHook, channel } = require('./helpers/instrument')
|
|
4
3
|
const shimmer = require('../../datadog-shimmer')
|
|
5
4
|
const { getEnvironmentVariable } = require('../../dd-trace/src/config-helper')
|
|
5
|
+
const { addHook, channel } = require('./helpers/instrument')
|
|
6
6
|
|
|
7
7
|
const codeCoverageWrapCh = channel('ci:nyc:wrap')
|
|
8
8
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const dc = require('dc-polyfill')
|
|
4
4
|
const shimmer = require('../../datadog-shimmer')
|
|
5
|
+
const { addHook } = require('./helpers/instrument')
|
|
5
6
|
|
|
6
|
-
const dc = require('dc-polyfill')
|
|
7
7
|
const ch = dc.tracingChannel('apm:openai:request')
|
|
8
8
|
const onStreamedChunkCh = dc.channel('apm:openai:request:chunk')
|
|
9
9
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { addHook } = require('./helpers/instrument')
|
|
4
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
+
const { addHook } = require('./helpers/instrument')
|
|
5
5
|
const { createWrapRequest, createWrapGetConnection } = require('./elasticsearch')
|
|
6
6
|
|
|
7
7
|
addHook({ name: '@opensearch-project/opensearch', file: 'lib/Transport.js', versions: ['>=1'] }, Transport => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook
|
|
6
7
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
8
|
|
|
9
9
|
const connectionAttributes = new WeakMap()
|
|
10
10
|
const poolAttributes = new WeakMap()
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { addHook } = require('./helpers/instrument')
|
|
4
3
|
const shimmer = require('../../datadog-shimmer')
|
|
5
4
|
const tracer = require('../../dd-trace')
|
|
6
5
|
const { getEnvironmentVariable } = require('../../dd-trace/src/config-helper')
|
|
6
|
+
const { addHook } = require('./helpers/instrument')
|
|
7
7
|
|
|
8
8
|
const otelSdkEnabled = getEnvironmentVariable('DD_TRACE_OTEL_ENABLED') ||
|
|
9
9
|
getEnvironmentVariable('OTEL_SDK_DISABLED')
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const { errorMonitor } = require('node:events')
|
|
4
|
+
|
|
5
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
6
|
const {
|
|
4
7
|
channel,
|
|
5
8
|
addHook
|
|
6
9
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
10
|
|
|
9
11
|
const startCh = channel('apm:pg:query:start')
|
|
10
12
|
const finishCh = channel('apm:pg:query:finish')
|
|
@@ -13,8 +15,6 @@ const errorCh = channel('apm:pg:query:error')
|
|
|
13
15
|
const startPoolQueryCh = channel('datadog:pg:pool:query:start')
|
|
14
16
|
const finishPoolQueryCh = channel('datadog:pg:pool:query:finish')
|
|
15
17
|
|
|
16
|
-
const { errorMonitor } = require('node:events')
|
|
17
|
-
|
|
18
18
|
addHook({ name: 'pg', versions: ['>=8.0.3'], file: 'lib/native/client.js' }, Client => {
|
|
19
19
|
shimmer.wrap(Client.prototype, 'query', query => wrapQuery(query))
|
|
20
20
|
return Client
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook
|
|
6
7
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
8
|
|
|
9
9
|
function wrapPino (symbol, wrapper, pino) {
|
|
10
10
|
return function pinoWithTrace () {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
const satisfies = require('../../../vendor/dist/semifies')
|
|
4
4
|
|
|
5
|
-
const { addHook, channel } = require('./helpers/instrument')
|
|
6
5
|
const shimmer = require('../../datadog-shimmer')
|
|
7
6
|
const {
|
|
8
7
|
parseAnnotations,
|
|
@@ -15,6 +14,7 @@ const {
|
|
|
15
14
|
getEnvironmentVariable
|
|
16
15
|
} = require('../../dd-trace/src/config-helper')
|
|
17
16
|
const { DD_MAJOR } = require('../../../version')
|
|
17
|
+
const { addHook, channel } = require('./helpers/instrument')
|
|
18
18
|
|
|
19
19
|
const testStartCh = channel('ci:playwright:test:start')
|
|
20
20
|
const testFinishCh = channel('ci:playwright:test:finish')
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
channel,
|
|
5
|
-
addHook
|
|
6
|
-
} = require('./helpers/instrument')
|
|
3
|
+
const tracingChannel = require('dc-polyfill').tracingChannel
|
|
7
4
|
|
|
5
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
8
6
|
const prismaEngineStart = channel('apm:prisma:engine:start')
|
|
9
|
-
const tracingChannel = require('dc-polyfill').tracingChannel
|
|
10
7
|
const clientCH = tracingChannel('apm:prisma:client')
|
|
11
8
|
|
|
12
9
|
const allowedClientSpanOperations = new Set([
|
|
@@ -15,14 +12,20 @@ const allowedClientSpanOperations = new Set([
|
|
|
15
12
|
'transaction'
|
|
16
13
|
])
|
|
17
14
|
|
|
18
|
-
class
|
|
15
|
+
class DatadogTracingHelper {
|
|
19
16
|
dbConfig = null
|
|
17
|
+
|
|
18
|
+
constructor (dbConfig = null) {
|
|
19
|
+
this.dbConfig = dbConfig
|
|
20
|
+
}
|
|
21
|
+
|
|
20
22
|
isEnabled () {
|
|
21
23
|
return true
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
// needs a sampled tracecontext to generate engine spans
|
|
25
27
|
getTraceParent (context) {
|
|
28
|
+
// TODO: Fix the id
|
|
26
29
|
return '00-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-bbbbbbbbbbbbbbbb-01' // valid sampled traceparent
|
|
27
30
|
}
|
|
28
31
|
|
|
@@ -34,7 +37,9 @@ class TracingHelper {
|
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
|
|
37
|
-
getActiveContext () {
|
|
40
|
+
getActiveContext () {
|
|
41
|
+
// TODO: Fix context
|
|
42
|
+
}
|
|
38
43
|
|
|
39
44
|
runInChildSpan (options, callback) {
|
|
40
45
|
if (typeof options === 'string') {
|
|
@@ -63,42 +68,52 @@ class TracingHelper {
|
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
const prismaHook = (runtime, versions, name, isIitm) => {
|
|
72
|
+
const originalGetPrismaClient = runtime.getPrismaClient
|
|
73
|
+
|
|
74
|
+
if (!originalGetPrismaClient) return runtime
|
|
75
|
+
const datadogTracingHelper = new DatadogTracingHelper()
|
|
76
|
+
|
|
77
|
+
const wrappedGetPrismaClient = function (config) {
|
|
78
|
+
const datasources = config.inlineDatasources?.db.url?.value
|
|
79
|
+
if (datasources) {
|
|
80
|
+
const dbConfig = parseDBString(datasources)
|
|
81
|
+
datadogTracingHelper.setDbString(dbConfig)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const PrismaClient = originalGetPrismaClient.call(this, config)
|
|
85
|
+
return class WrappedPrismaClientClass extends PrismaClient {
|
|
86
|
+
constructor (clientConfig) {
|
|
87
|
+
super(clientConfig)
|
|
88
|
+
this._tracingHelper = datadogTracingHelper
|
|
89
|
+
this._engine.tracingHelper = datadogTracingHelper
|
|
79
90
|
}
|
|
80
91
|
}
|
|
81
|
-
return originalRequest.apply(this, arguments)
|
|
82
92
|
}
|
|
83
93
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
* to enable OpenTelemetry.
|
|
88
|
-
*/
|
|
89
|
-
// https://github.com/prisma/prisma/blob/478293bbfce91e41ceff02f2a0b03bb8acbca03e/packages/instrumentation/src/PrismaInstrumentation.ts#L42
|
|
90
|
-
const versions = version.split('.')
|
|
91
|
-
if (versions[0] === '6' && versions[1] < 4) {
|
|
92
|
-
global.PRISMA_INSTRUMENTATION = {
|
|
93
|
-
helper: tracingHelper
|
|
94
|
-
}
|
|
95
|
-
} else {
|
|
96
|
-
global[`V${versions[0]}_PRISMA_INSTRUMENTATION`] = {
|
|
97
|
-
helper: tracingHelper
|
|
98
|
-
}
|
|
94
|
+
if (isIitm) {
|
|
95
|
+
runtime.getPrismaClient = wrappedGetPrismaClient
|
|
96
|
+
return runtime
|
|
99
97
|
}
|
|
100
98
|
|
|
101
|
-
return
|
|
99
|
+
return new Proxy(runtime, {
|
|
100
|
+
get (target, prop) {
|
|
101
|
+
if (prop === 'getPrismaClient') {
|
|
102
|
+
return wrappedGetPrismaClient
|
|
103
|
+
}
|
|
104
|
+
return target[prop]
|
|
105
|
+
}
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const prismaConfigs = [
|
|
110
|
+
{ name: '@prisma/client', versions: ['>=6.1.0 <7.0.0'], filePattern: 'runtime/library.*' },
|
|
111
|
+
{ name: './runtime/library.js', versions: ['>=6.1.0 <7.0.0'], file: 'runtime/library.js' },
|
|
112
|
+
{ name: '@prisma/client', versions: ['>=7.0.0'], filePattern: 'runtime/client.*' }
|
|
113
|
+
]
|
|
114
|
+
|
|
115
|
+
prismaConfigs.forEach(config => {
|
|
116
|
+
addHook(config, prismaHook)
|
|
102
117
|
})
|
|
103
118
|
|
|
104
119
|
function parseDBString (dbString) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const shimmer = require('../../datadog-shimmer')
|
|
4
3
|
const { channel } = require('dc-polyfill')
|
|
4
|
+
const shimmer = require('../../datadog-shimmer')
|
|
5
5
|
|
|
6
6
|
const startSetUncaughtExceptionCaptureCallback = channel('datadog:process:setUncaughtExceptionCaptureCallback:start')
|
|
7
7
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const dc = require('dc-polyfill')
|
|
3
4
|
const shimmer = require('../../datadog-shimmer')
|
|
4
5
|
const { addHook } = require('./helpers/instrument')
|
|
5
6
|
|
|
6
|
-
const dc = require('dc-polyfill')
|
|
7
7
|
const serializeChannel = dc.channel('apm:protobufjs:serialize-start')
|
|
8
8
|
const deserializeChannel = dc.channel('apm:protobufjs:deserialize-end')
|
|
9
9
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook
|
|
6
7
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
8
|
|
|
9
9
|
const startCh = channel('apm:redis:command:start')
|
|
10
10
|
const finishCh = channel('apm:redis:command:finish')
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook
|
|
6
7
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
8
|
|
|
9
9
|
const circularBufferConstructor = Symbol('circularBufferConstructor')
|
|
10
10
|
const inFlightDeliveries = Symbol('inFlightDeliveries')
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { addHook, channel } = require('./helpers/instrument')
|
|
4
3
|
const shimmer = require('../../datadog-shimmer')
|
|
5
4
|
const { getEnvironmentVariable } = require('../../dd-trace/src/config-helper')
|
|
5
|
+
const { addHook, channel } = require('./helpers/instrument')
|
|
6
6
|
|
|
7
7
|
const ciSeleniumDriverGetStartCh = channel('ci:selenium:driver:get')
|
|
8
8
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook
|
|
6
7
|
} = require('./helpers/instrument')
|
|
7
8
|
|
|
8
|
-
const shimmer = require('../../datadog-shimmer')
|
|
9
|
-
|
|
10
9
|
addHook({ name: 'sequelize', versions: ['>=4'], file: ['lib/sequelize.js'] }, Sequelize => {
|
|
11
10
|
const startCh = channel('datadog:sequelize:query:start')
|
|
12
11
|
const finishCh = channel('datadog:sequelize:query:finish')
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const shimmer = require('../../datadog-shimmer')
|
|
3
4
|
const {
|
|
4
5
|
channel,
|
|
5
6
|
addHook
|
|
6
7
|
} = require('./helpers/instrument')
|
|
7
|
-
const shimmer = require('../../datadog-shimmer')
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* @description The enum values in this map are not exposed from ShareDB, so the keys are hard-coded here.
|