dd-trace 5.53.0 → 5.55.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/LICENSE-3rdparty.csv +2 -1
- package/ci/cypress/plugin.js +8 -0
- package/ci/cypress/polyfills.js +23 -0
- package/ci/init.js +8 -7
- package/index.d.ts +33 -16
- package/initialize.mjs +5 -6
- package/package.json +40 -38
- package/packages/datadog-code-origin/index.js +22 -4
- package/packages/datadog-core/src/utils/src/get.js +1 -1
- package/packages/datadog-core/src/utils/src/has.js +1 -1
- package/packages/datadog-core/src/utils/src/kebabcase.js +4 -6
- package/packages/datadog-core/src/utils/src/parse-tags.js +1 -1
- package/packages/datadog-core/src/utils/src/pick.js +2 -2
- package/packages/datadog-core/src/utils/src/set.js +1 -1
- package/packages/datadog-core/src/utils/src/uniq.js +1 -1
- package/packages/datadog-instrumentations/src/amqp10.js +19 -17
- package/packages/datadog-instrumentations/src/amqplib.js +52 -35
- package/packages/datadog-instrumentations/src/apollo.js +2 -2
- package/packages/datadog-instrumentations/src/aws-sdk.js +1 -1
- package/packages/datadog-instrumentations/src/cassandra-driver.js +10 -10
- package/packages/datadog-instrumentations/src/child_process.js +1 -2
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +89 -75
- package/packages/datadog-instrumentations/src/cookie-parser.js +1 -1
- package/packages/datadog-instrumentations/src/couchbase.js +6 -9
- package/packages/datadog-instrumentations/src/cucumber.js +108 -68
- package/packages/datadog-instrumentations/src/cypress.js +2 -1
- package/packages/datadog-instrumentations/src/dns.js +5 -5
- package/packages/datadog-instrumentations/src/elasticsearch.js +9 -10
- package/packages/datadog-instrumentations/src/fastify.js +7 -9
- package/packages/datadog-instrumentations/src/fs.js +1 -1
- package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +35 -43
- package/packages/datadog-instrumentations/src/graphql.js +7 -10
- package/packages/datadog-instrumentations/src/grpc/client.js +11 -23
- package/packages/datadog-instrumentations/src/grpc/server.js +7 -20
- package/packages/datadog-instrumentations/src/hapi.js +10 -11
- package/packages/datadog-instrumentations/src/helpers/extract-package-and-module-path.js +16 -10
- package/packages/datadog-instrumentations/src/helpers/fetch.js +4 -5
- package/packages/datadog-instrumentations/src/helpers/hook.js +2 -3
- package/packages/datadog-instrumentations/src/helpers/hooks.js +0 -1
- package/packages/datadog-instrumentations/src/helpers/instrument.js +1 -41
- package/packages/datadog-instrumentations/src/helpers/register.js +11 -12
- package/packages/datadog-instrumentations/src/http/client.js +14 -20
- package/packages/datadog-instrumentations/src/jest.js +201 -143
- package/packages/datadog-instrumentations/src/kafkajs.js +52 -44
- package/packages/datadog-instrumentations/src/knex.js +4 -4
- package/packages/datadog-instrumentations/src/koa.js +2 -3
- package/packages/datadog-instrumentations/src/ldapjs.js +3 -4
- package/packages/datadog-instrumentations/src/mariadb.js +49 -65
- package/packages/datadog-instrumentations/src/mocha/main.js +116 -73
- package/packages/datadog-instrumentations/src/mocha/utils.js +36 -12
- package/packages/datadog-instrumentations/src/mocha/worker.js +6 -0
- package/packages/datadog-instrumentations/src/mocha.js +3 -1
- package/packages/datadog-instrumentations/src/mongodb-core.js +1 -1
- package/packages/datadog-instrumentations/src/mysql.js +30 -37
- package/packages/datadog-instrumentations/src/mysql2.js +53 -47
- package/packages/datadog-instrumentations/src/net.js +1 -1
- package/packages/datadog-instrumentations/src/next.js +1 -0
- package/packages/datadog-instrumentations/src/nyc.js +3 -2
- package/packages/datadog-instrumentations/src/openai.js +22 -24
- package/packages/datadog-instrumentations/src/oracledb.js +1 -1
- package/packages/datadog-instrumentations/src/otel-sdk-trace.js +4 -3
- package/packages/datadog-instrumentations/src/pg.js +3 -5
- package/packages/datadog-instrumentations/src/playwright.js +123 -83
- package/packages/datadog-instrumentations/src/protobufjs.js +3 -4
- package/packages/datadog-instrumentations/src/redis.js +4 -4
- package/packages/datadog-instrumentations/src/restify.js +9 -13
- package/packages/datadog-instrumentations/src/rhea.js +42 -54
- package/packages/datadog-instrumentations/src/router.js +30 -32
- package/packages/datadog-instrumentations/src/tedious.js +2 -3
- package/packages/datadog-instrumentations/src/vitest.js +87 -52
- package/packages/datadog-plugin-amqp10/src/consumer.js +7 -3
- package/packages/datadog-plugin-amqp10/src/producer.js +7 -3
- package/packages/datadog-plugin-amqplib/src/client.js +6 -2
- package/packages/datadog-plugin-amqplib/src/consumer.js +7 -3
- package/packages/datadog-plugin-amqplib/src/producer.js +7 -3
- package/packages/datadog-plugin-amqplib/src/util.js +1 -1
- package/packages/datadog-plugin-apollo/src/gateway/request.js +5 -6
- package/packages/datadog-plugin-apollo/src/gateway/validate.js +2 -3
- package/packages/datadog-plugin-avsc/src/schema_iterator.js +12 -12
- package/packages/datadog-plugin-aws-sdk/src/base.js +15 -10
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +2 -2
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +13 -13
- package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +3 -5
- package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +28 -43
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +2 -2
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +10 -11
- package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +4 -6
- package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +3 -5
- package/packages/datadog-plugin-aws-sdk/src/services/s3.js +3 -5
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +2 -3
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +11 -15
- package/packages/datadog-plugin-aws-sdk/src/services/stepfunctions.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/util.js +5 -6
- package/packages/datadog-plugin-cassandra-driver/src/index.js +1 -1
- package/packages/datadog-plugin-child_process/src/index.js +4 -4
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +23 -23
- package/packages/datadog-plugin-cucumber/src/index.js +60 -4
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +99 -28
- package/packages/datadog-plugin-cypress/src/plugin.js +11 -1
- package/packages/datadog-plugin-cypress/src/support.js +24 -5
- package/packages/datadog-plugin-dd-trace-api/src/index.js +2 -1
- package/packages/datadog-plugin-elasticsearch/src/index.js +1 -1
- package/packages/datadog-plugin-express/src/code_origin.js +30 -0
- package/packages/datadog-plugin-express/src/index.js +10 -12
- package/packages/datadog-plugin-express/src/tracing.js +19 -0
- package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +7 -3
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +12 -7
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +6 -2
- package/packages/datadog-plugin-google-cloud-vertexai/src/tracing.js +27 -10
- package/packages/datadog-plugin-graphql/src/execute.js +2 -2
- package/packages/datadog-plugin-graphql/src/index.js +10 -8
- package/packages/datadog-plugin-graphql/src/resolve.js +19 -12
- package/packages/datadog-plugin-graphql/src/tools/index.js +1 -0
- package/packages/datadog-plugin-graphql/src/tools/signature.js +1 -0
- package/packages/datadog-plugin-graphql/src/tools/transforms.js +1 -0
- package/packages/datadog-plugin-grpc/src/client.js +2 -2
- package/packages/datadog-plugin-grpc/src/util.js +2 -2
- package/packages/datadog-plugin-http/src/client.js +23 -13
- package/packages/datadog-plugin-http2/src/client.js +24 -25
- package/packages/datadog-plugin-jest/src/index.js +26 -23
- package/packages/datadog-plugin-jest/src/util.js +8 -8
- package/packages/datadog-plugin-kafkajs/src/batch-consumer.js +3 -1
- package/packages/datadog-plugin-kafkajs/src/consumer.js +9 -5
- package/packages/datadog-plugin-kafkajs/src/producer.js +8 -3
- package/packages/datadog-plugin-kafkajs/src/utils.js +1 -1
- package/packages/datadog-plugin-langchain/src/handlers/chain.js +7 -7
- package/packages/datadog-plugin-langchain/src/handlers/embedding.js +2 -2
- package/packages/datadog-plugin-langchain/src/handlers/language_models/chat_model.js +6 -4
- package/packages/datadog-plugin-langchain/src/handlers/language_models/llm.js +5 -4
- package/packages/datadog-plugin-langchain/src/tracing.js +11 -10
- package/packages/datadog-plugin-mariadb/src/index.js +3 -9
- package/packages/datadog-plugin-mocha/src/index.js +39 -14
- package/packages/datadog-plugin-mongodb-core/src/index.js +3 -2
- package/packages/datadog-plugin-mysql/src/index.js +22 -9
- package/packages/datadog-plugin-mysql2/src/index.js +16 -0
- package/packages/datadog-plugin-net/src/tcp.js +1 -1
- package/packages/datadog-plugin-next/src/index.js +7 -6
- package/packages/datadog-plugin-openai/src/services.js +6 -10
- package/packages/datadog-plugin-openai/src/tracing.js +12 -18
- package/packages/datadog-plugin-oracledb/src/index.js +1 -1
- package/packages/datadog-plugin-playwright/src/index.js +25 -4
- package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +8 -9
- package/packages/datadog-plugin-redis/src/index.js +2 -4
- package/packages/datadog-plugin-rhea/src/consumer.js +8 -6
- package/packages/datadog-plugin-rhea/src/producer.js +5 -2
- package/packages/datadog-plugin-router/src/index.js +1 -1
- package/packages/datadog-plugin-selenium/src/index.js +1 -6
- package/packages/datadog-plugin-vitest/src/index.js +52 -35
- package/packages/datadog-shimmer/src/shimmer.js +4 -8
- package/packages/dd-trace/src/appsec/api_security_sampler.js +2 -2
- package/packages/dd-trace/src/appsec/blocked_templates.js +1 -1
- package/packages/dd-trace/src/appsec/blocking.js +6 -20
- package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +0 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +0 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +0 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +0 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hsts-header-missing-analyzer.js +7 -12
- package/packages/dd-trace/src/appsec/iast/analyzers/missing-header-analyzer.js +5 -8
- package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +4 -0
- package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +9 -12
- package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +5 -4
- package/packages/dd-trace/src/appsec/iast/context/context-plugin.js +2 -3
- package/packages/dd-trace/src/appsec/iast/iast-plugin.js +3 -3
- package/packages/dd-trace/src/appsec/iast/index.js +1 -0
- package/packages/dd-trace/src/appsec/iast/overhead-controller.js +102 -7
- package/packages/dd-trace/src/appsec/iast/path-line.js +7 -8
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +16 -24
- package/packages/dd-trace/src/appsec/iast/security-controls/parser.js +6 -6
- package/packages/dd-trace/src/appsec/iast/taint-tracking/filter.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +3 -3
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +4 -28
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +2 -8
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugins/kafka.js +3 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +7 -8
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +2 -2
- package/packages/dd-trace/src/appsec/iast/telemetry/span-tags.js +7 -7
- package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +2 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +10 -11
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/command-sensitive-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/ldap-sensitive-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +7 -7
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +23 -28
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +3 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +4 -4
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +6 -11
- package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +0 -1
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +9 -11
- package/packages/dd-trace/src/appsec/index.js +5 -5
- package/packages/dd-trace/src/appsec/rasp/index.js +15 -15
- package/packages/dd-trace/src/appsec/rasp/lfi.js +2 -1
- package/packages/dd-trace/src/appsec/reporter.js +232 -41
- package/packages/dd-trace/src/appsec/rule_manager.js +2 -2
- package/packages/dd-trace/src/appsec/sdk/set_user.js +2 -2
- package/packages/dd-trace/src/appsec/sdk/track_event.js +3 -3
- package/packages/dd-trace/src/appsec/stack_trace.js +2 -4
- package/packages/dd-trace/src/appsec/telemetry/index.js +31 -1
- package/packages/dd-trace/src/appsec/telemetry/rasp.js +3 -5
- package/packages/dd-trace/src/appsec/telemetry/waf.js +3 -5
- package/packages/dd-trace/src/appsec/user_tracking.js +3 -5
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +8 -4
- package/packages/dd-trace/src/azure_metadata.js +9 -9
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +9 -8
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +2 -2
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +3 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +3 -3
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +3 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +3 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +3 -2
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +6 -4
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +6 -5
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +7 -6
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +0 -2
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +3 -2
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +5 -4
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +12 -8
- package/packages/dd-trace/src/ci-visibility/telemetry.js +4 -0
- package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +3 -2
- package/packages/dd-trace/src/config-helper.js +89 -0
- package/packages/dd-trace/src/config.js +159 -129
- package/packages/dd-trace/src/config_stable.js +10 -7
- package/packages/dd-trace/src/datastreams/encoding.js +9 -9
- package/packages/dd-trace/src/datastreams/fnv.js +2 -2
- package/packages/dd-trace/src/datastreams/pathway.js +4 -4
- package/packages/dd-trace/src/datastreams/processor.js +5 -7
- package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +7 -7
- package/packages/dd-trace/src/datastreams/schemas/schema_sampler.js +4 -6
- package/packages/dd-trace/src/datastreams/size.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +75 -69
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +7 -10
- package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/index.js +9 -2
- package/packages/dd-trace/src/debugger/devtools_client/remote_config.js +18 -38
- package/packages/dd-trace/src/debugger/devtools_client/send.js +3 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +1 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +11 -14
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +4 -4
- package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +2 -10
- package/packages/dd-trace/src/debugger/devtools_client/state.js +10 -3
- package/packages/dd-trace/src/debugger/index.js +1 -0
- package/packages/dd-trace/src/dogstatsd.js +7 -6
- package/packages/dd-trace/src/encode/0.4.js +14 -11
- package/packages/dd-trace/src/encode/0.5.js +4 -6
- package/packages/dd-trace/src/encode/agentless-ci-visibility.js +8 -8
- package/packages/dd-trace/src/encode/coverage-ci-visibility.js +1 -1
- package/packages/dd-trace/src/encode/tags-processors.js +1 -1
- package/packages/dd-trace/src/exporter.js +7 -6
- package/packages/dd-trace/src/exporters/agent/writer.js +1 -5
- package/packages/dd-trace/src/exporters/common/docker.js +4 -3
- package/packages/dd-trace/src/exporters/common/form-data.js +6 -4
- package/packages/dd-trace/src/exporters/common/request.js +5 -2
- package/packages/dd-trace/src/exporters/common/util.js +4 -2
- package/packages/dd-trace/src/external-logger/src/index.js +5 -5
- package/packages/dd-trace/src/flare/file.js +1 -5
- package/packages/dd-trace/src/format.js +1 -1
- package/packages/dd-trace/src/git_properties.js +1 -1
- package/packages/dd-trace/src/id.js +15 -9
- package/packages/dd-trace/src/iitm.js +10 -22
- package/packages/dd-trace/src/index.js +4 -3
- package/packages/dd-trace/src/lambda/handler.js +7 -6
- package/packages/dd-trace/src/lambda/index.js +2 -1
- package/packages/dd-trace/src/lambda/runtime/patch.js +7 -6
- package/packages/dd-trace/src/lambda/runtime/ritm.js +4 -3
- package/packages/dd-trace/src/llmobs/constants/tags.js +1 -0
- package/packages/dd-trace/src/llmobs/index.js +21 -5
- package/packages/dd-trace/src/llmobs/noop.js +18 -20
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +6 -6
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chain.js +2 -6
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +3 -3
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +11 -13
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +6 -6
- package/packages/dd-trace/src/llmobs/plugins/openai.js +2 -3
- package/packages/dd-trace/src/llmobs/sdk.js +4 -3
- package/packages/dd-trace/src/llmobs/span_processor.js +1 -1
- package/packages/dd-trace/src/llmobs/tagger.js +129 -102
- package/packages/dd-trace/src/llmobs/util.js +9 -9
- package/packages/dd-trace/src/llmobs/writers/base.js +1 -1
- package/packages/dd-trace/src/llmobs/writers/util.js +1 -1
- package/packages/dd-trace/src/log/index.js +9 -8
- package/packages/dd-trace/src/log/log.js +1 -1
- package/packages/dd-trace/src/log/writer.js +3 -4
- package/packages/dd-trace/src/msgpack/chunk.js +3 -3
- package/packages/dd-trace/src/msgpack/encoder.js +31 -31
- package/packages/dd-trace/src/noop/dogstatsd.js +6 -6
- package/packages/dd-trace/src/noop/span.js +4 -6
- package/packages/dd-trace/src/noop/tracer.js +1 -2
- package/packages/dd-trace/src/opentelemetry/span_processor.js +2 -2
- package/packages/dd-trace/src/opentelemetry/tracer.js +7 -6
- package/packages/dd-trace/src/opentracing/propagation/log.js +10 -13
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +40 -37
- package/packages/dd-trace/src/opentracing/propagation/tracestate.js +8 -4
- package/packages/dd-trace/src/opentracing/span.js +16 -20
- package/packages/dd-trace/src/opentracing/tracer.js +9 -6
- package/packages/dd-trace/src/payload-tagging/config/index.js +17 -21
- package/packages/dd-trace/src/payload-tagging/index.js +1 -1
- package/packages/dd-trace/src/payload-tagging/tagging.js +6 -6
- package/packages/dd-trace/src/pkg.js +1 -1
- package/packages/dd-trace/src/plugin_manager.js +4 -3
- package/packages/dd-trace/src/plugins/ci_plugin.js +87 -11
- package/packages/dd-trace/src/plugins/consumer.js +2 -2
- package/packages/dd-trace/src/plugins/inbound.js +5 -1
- package/packages/dd-trace/src/plugins/index.js +0 -1
- package/packages/dd-trace/src/plugins/outbound.js +4 -5
- package/packages/dd-trace/src/plugins/plugin.js +1 -1
- package/packages/dd-trace/src/plugins/producer.js +2 -2
- package/packages/dd-trace/src/plugins/storage.js +2 -2
- package/packages/dd-trace/src/plugins/util/ci.js +28 -20
- package/packages/dd-trace/src/plugins/util/git.js +166 -12
- package/packages/dd-trace/src/plugins/util/inferred_proxy.js +1 -1
- package/packages/dd-trace/src/plugins/util/ip_extractor.js +1 -1
- package/packages/dd-trace/src/plugins/util/llm.js +27 -10
- package/packages/dd-trace/src/plugins/util/stacktrace.js +9 -2
- package/packages/dd-trace/src/plugins/util/test.js +315 -51
- package/packages/dd-trace/src/plugins/util/url.js +1 -1
- package/packages/dd-trace/src/plugins/util/urlfilter.js +13 -17
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +14 -4
- package/packages/dd-trace/src/plugins/util/web.js +8 -8
- package/packages/dd-trace/src/priority_sampler.js +64 -53
- package/packages/dd-trace/src/profiling/config.js +51 -35
- package/packages/dd-trace/src/profiling/exporter_cli.js +20 -20
- package/packages/dd-trace/src/profiling/exporters/agent.js +1 -1
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +7 -6
- package/packages/dd-trace/src/profiling/exporters/file.js +2 -1
- package/packages/dd-trace/src/profiling/index.js +2 -1
- package/packages/dd-trace/src/profiling/profiler.js +44 -6
- package/packages/dd-trace/src/profiling/profilers/events.js +14 -17
- package/packages/dd-trace/src/profiling/profilers/shared.js +6 -1
- package/packages/dd-trace/src/profiling/profilers/space.js +3 -3
- package/packages/dd-trace/src/profiling/profilers/wall.js +6 -7
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +3 -5
- package/packages/dd-trace/src/profiling/ssi-telemetry-mock-profiler.js +3 -1
- package/packages/dd-trace/src/profiling/tagger.js +21 -13
- package/packages/dd-trace/src/profiling/webspan-utils.js +1 -1
- package/packages/dd-trace/src/proxy.js +9 -10
- package/packages/dd-trace/src/random_sampler.js +40 -0
- package/packages/dd-trace/src/rate_limiter.js +4 -4
- package/packages/dd-trace/src/remote_config/index.js +3 -7
- package/packages/dd-trace/src/remote_config/manager.js +25 -13
- package/packages/dd-trace/src/require-package-json.js +1 -1
- package/packages/dd-trace/src/ritm.js +8 -8
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +5 -4
- package/packages/dd-trace/src/sampler.js +41 -4
- package/packages/dd-trace/src/sampling_rule.js +12 -3
- package/packages/dd-trace/src/scope.js +1 -1
- package/packages/dd-trace/src/serverless.js +11 -4
- package/packages/dd-trace/src/service-naming/schemas/util.js +1 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/web.js +2 -3
- package/packages/dd-trace/src/span_processor.js +5 -4
- package/packages/dd-trace/src/span_sampler.js +4 -1
- package/packages/dd-trace/src/standalone/tracesource.js +2 -3
- package/packages/dd-trace/src/standalone/tracesource_priority_sampler.js +1 -2
- package/packages/dd-trace/src/startup-log.js +6 -18
- package/packages/dd-trace/src/supported-configurations.json +439 -0
- package/packages/dd-trace/src/telemetry/dependencies.js +64 -59
- package/packages/dd-trace/src/telemetry/logs/log-collector.js +9 -10
- package/packages/dd-trace/src/telemetry/metrics.js +10 -5
- package/packages/dd-trace/src/telemetry/send-data.js +8 -7
- package/packages/dd-trace/src/telemetry/telemetry.js +31 -45
- package/packages/dd-trace/src/tracer.js +3 -7
- package/packages/dd-trace/src/util.js +1 -6
- package/version.js +1 -0
- package/packages/datadog-instrumentations/src/paperplane.js +0 -77
- package/packages/datadog-plugin-paperplane/src/index.js +0 -25
- package/packages/datadog-plugin-paperplane/src/logger.js +0 -11
- package/packages/datadog-plugin-paperplane/src/server.js +0 -24
- package/packages/dd-trace/src/appsec/iast/analyzers/header-injection-analyzer.js +0 -122
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/header-sensitive-analyzer.js +0 -20
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { errorMonitor } = require('node:events')
|
|
4
4
|
|
|
5
|
-
const {
|
|
6
|
-
channel,
|
|
7
|
-
addHook,
|
|
8
|
-
AsyncResource
|
|
9
|
-
} = require('./helpers/instrument')
|
|
5
|
+
const { channel, addHook } = require('./helpers/instrument')
|
|
10
6
|
const shimmer = require('../../datadog-shimmer')
|
|
11
7
|
const satisfies = require('semifies')
|
|
12
8
|
|
|
@@ -15,22 +11,25 @@ function wrapConnection (Connection, version) {
|
|
|
15
11
|
const finishCh = channel('apm:mysql2:query:finish')
|
|
16
12
|
const errorCh = channel('apm:mysql2:query:error')
|
|
17
13
|
const startOuterQueryCh = channel('datadog:mysql2:outerquery:start')
|
|
14
|
+
const commandAddCh = channel('apm:mysql2:command:add')
|
|
15
|
+
const commandStartCh = channel('apm:mysql2:command:start')
|
|
16
|
+
const commandFinishCh = channel('apm:mysql2:command:finish')
|
|
18
17
|
const shouldEmitEndAfterQueryAbort = satisfies(version, '>=1.3.3')
|
|
19
18
|
|
|
20
19
|
shimmer.wrap(Connection.prototype, 'addCommand', addCommand => function (cmd) {
|
|
21
20
|
if (!startCh.hasSubscribers) return addCommand.apply(this, arguments)
|
|
22
21
|
|
|
23
|
-
const asyncResource = new AsyncResource('bound-anonymous-fn')
|
|
24
22
|
const name = cmd && cmd.constructor && cmd.constructor.name
|
|
25
23
|
const isCommand = typeof cmd.execute === 'function'
|
|
26
24
|
const isQuery = isCommand && (name === 'Execute' || name === 'Query')
|
|
25
|
+
const ctx = {}
|
|
27
26
|
|
|
28
27
|
// TODO: consider supporting all commands and not just queries
|
|
29
28
|
cmd.execute = isQuery
|
|
30
|
-
? wrapExecute(cmd, cmd.execute,
|
|
31
|
-
: bindExecute(cmd
|
|
29
|
+
? wrapExecute(cmd, cmd.execute, ctx, this.config)
|
|
30
|
+
: bindExecute(cmd.execute, ctx)
|
|
32
31
|
|
|
33
|
-
return
|
|
32
|
+
return commandAddCh.runStores(ctx, addCommand, this, ...arguments)
|
|
34
33
|
})
|
|
35
34
|
|
|
36
35
|
shimmer.wrap(Connection.prototype, 'query', query => function (sql, values, cb) {
|
|
@@ -105,53 +104,60 @@ function wrapConnection (Connection, version) {
|
|
|
105
104
|
|
|
106
105
|
return Connection
|
|
107
106
|
|
|
108
|
-
function bindExecute (
|
|
109
|
-
return shimmer.wrapFunction(execute, execute =>
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
function bindExecute (execute, ctx) {
|
|
108
|
+
return shimmer.wrapFunction(execute, execute => function executeWithTrace (packet, connection) {
|
|
109
|
+
const onResult = this.onResult
|
|
110
|
+
|
|
111
|
+
if (onResult) {
|
|
112
|
+
this.onResult = function () {
|
|
113
|
+
return commandFinishCh.runStores(ctx, onResult, this, ...arguments)
|
|
114
|
+
}
|
|
112
115
|
}
|
|
113
116
|
|
|
114
|
-
return
|
|
115
|
-
}
|
|
117
|
+
return commandStartCh.runStores(ctx, execute, this, ...arguments)
|
|
118
|
+
})
|
|
116
119
|
}
|
|
117
120
|
|
|
118
|
-
function wrapExecute (cmd, execute,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const sql = cmd.statement ? cmd.statement.query : cmd.sql
|
|
123
|
-
const payload = { sql, conf: config }
|
|
124
|
-
startCh.publish(payload)
|
|
121
|
+
function wrapExecute (cmd, execute, ctx, config) {
|
|
122
|
+
return shimmer.wrapFunction(execute, execute => function executeWithTrace (packet, connection) {
|
|
123
|
+
ctx.sql = cmd.statement ? cmd.statement.query : cmd.sql
|
|
124
|
+
ctx.conf = config
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
cmd.statement
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
return startCh.runStores(ctx, () => {
|
|
127
|
+
if (cmd.statement) {
|
|
128
|
+
cmd.statement.query = ctx.sql
|
|
129
|
+
} else {
|
|
130
|
+
cmd.sql = ctx.sql
|
|
131
|
+
}
|
|
131
132
|
|
|
132
|
-
|
|
133
|
-
|
|
133
|
+
if (this.onResult) {
|
|
134
|
+
const onResult = this.onResult
|
|
134
135
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
136
|
+
this.onResult = shimmer.wrapFunction(onResult, onResult => function (error) {
|
|
137
|
+
if (error) {
|
|
138
|
+
ctx.error = error
|
|
139
|
+
errorCh.publish(ctx)
|
|
140
|
+
}
|
|
141
|
+
finishCh.runStores(ctx, onResult, this, ...arguments)
|
|
142
|
+
})
|
|
143
|
+
} else {
|
|
144
|
+
this.on(errorMonitor, error => {
|
|
145
|
+
ctx.error = error
|
|
146
|
+
errorCh.publish(ctx)
|
|
147
|
+
})
|
|
148
|
+
this.on('end', () => finishCh.publish(ctx))
|
|
149
|
+
}
|
|
146
150
|
|
|
147
|
-
|
|
151
|
+
this.execute = execute
|
|
148
152
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
try {
|
|
154
|
+
return execute.apply(this, arguments)
|
|
155
|
+
} catch (err) {
|
|
156
|
+
ctx.error = err
|
|
157
|
+
errorCh.publish(ctx)
|
|
158
|
+
}
|
|
159
|
+
})
|
|
160
|
+
}, cmd)
|
|
155
161
|
}
|
|
156
162
|
}
|
|
157
163
|
function wrapPool (Pool, version) {
|
|
@@ -108,6 +108,7 @@ function getPagePath (maybePage) {
|
|
|
108
108
|
|
|
109
109
|
function getPageFromPath (page, dynamicRoutes = []) {
|
|
110
110
|
for (const dynamicRoute of dynamicRoutes) {
|
|
111
|
+
// eslint-disable-next-line unicorn/prefer-regexp-test
|
|
111
112
|
if (dynamicRoute.page.startsWith('/api') && dynamicRoute.match(page)) {
|
|
112
113
|
return getPagePath(dynamicRoute.page)
|
|
113
114
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const { addHook, channel } = require('./helpers/instrument')
|
|
2
2
|
const shimmer = require('../../datadog-shimmer')
|
|
3
|
+
const { getEnvironmentVariable } = require('../../dd-trace/src/config-helper')
|
|
3
4
|
|
|
4
5
|
const codeCoverageWrapCh = channel('ci:nyc:wrap')
|
|
5
6
|
|
|
@@ -11,10 +12,10 @@ addHook({
|
|
|
11
12
|
shimmer.wrap(nycPackage.prototype, 'wrap', wrap => function () {
|
|
12
13
|
// Only relevant if the config `all` is set to true
|
|
13
14
|
try {
|
|
14
|
-
if (JSON.parse(
|
|
15
|
+
if (JSON.parse(getEnvironmentVariable('NYC_CONFIG')).all) {
|
|
15
16
|
codeCoverageWrapCh.publish(this)
|
|
16
17
|
}
|
|
17
|
-
} catch
|
|
18
|
+
} catch {
|
|
18
19
|
// ignore errors
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -137,10 +137,7 @@ function addStreamedChunk (content, chunk) {
|
|
|
137
137
|
for (const choice of chunk.choices) {
|
|
138
138
|
const choiceIdx = choice.index
|
|
139
139
|
const oldChoice = content.choices.find(choice => choice?.index === choiceIdx)
|
|
140
|
-
if (
|
|
141
|
-
// we don't know which choices arrive in which order
|
|
142
|
-
content.choices[choiceIdx] = choice
|
|
143
|
-
} else {
|
|
140
|
+
if (oldChoice) {
|
|
144
141
|
if (!oldChoice.finish_reason) {
|
|
145
142
|
oldChoice.finish_reason = choice.finish_reason
|
|
146
143
|
}
|
|
@@ -177,24 +174,25 @@ function addStreamedChunk (content, chunk) {
|
|
|
177
174
|
|
|
178
175
|
if (oldTool) {
|
|
179
176
|
oldTool.function.arguments += newTool.function.arguments
|
|
180
|
-
|
|
181
|
-
return newTool
|
|
177
|
+
return oldTool
|
|
182
178
|
}
|
|
183
179
|
|
|
184
|
-
return
|
|
180
|
+
return newTool
|
|
185
181
|
})
|
|
186
182
|
}
|
|
183
|
+
} else {
|
|
184
|
+
// we don't know which choices arrive in which order
|
|
185
|
+
content.choices[choiceIdx] = choice
|
|
187
186
|
}
|
|
188
187
|
}
|
|
189
188
|
}
|
|
190
189
|
|
|
191
|
-
function convertBufferstoObjects (chunks
|
|
190
|
+
function convertBufferstoObjects (chunks) {
|
|
192
191
|
return Buffer
|
|
193
192
|
.concat(chunks) // combine the buffers
|
|
194
193
|
.toString() // stringify
|
|
195
194
|
.split(/(?=data:)/) // split on "data:"
|
|
196
|
-
.map(chunk => chunk.
|
|
197
|
-
.map(chunk => chunk.substring(6)) // remove 'data: ' from the front
|
|
195
|
+
.map(chunk => chunk.replaceAll('\n', '').slice(6)) // remove newlines and 'data: ' from the front
|
|
198
196
|
.slice(0, -1) // remove the last [DONE] message
|
|
199
197
|
.map(JSON.parse) // parse all of the returned objects
|
|
200
198
|
}
|
|
@@ -217,6 +215,10 @@ function wrapStreamIterator (response, options, n, ctx) {
|
|
|
217
215
|
|
|
218
216
|
if (chunk) {
|
|
219
217
|
chunks.push(chunk)
|
|
218
|
+
// TODO(BridgeAR): It likely depends on the options being passed
|
|
219
|
+
// through if the stream returns buffers or not. By reading that,
|
|
220
|
+
// we don't have to do the instanceof check anymore, which is
|
|
221
|
+
// relatively expensive.
|
|
220
222
|
if (chunk instanceof Buffer) {
|
|
221
223
|
// this operation should be safe
|
|
222
224
|
// if one chunk is a buffer (versus a plain object), the rest should be as well
|
|
@@ -226,21 +228,17 @@ function wrapStreamIterator (response, options, n, ctx) {
|
|
|
226
228
|
|
|
227
229
|
if (done) {
|
|
228
230
|
let body = {}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (processChunksAsBuffers) {
|
|
233
|
-
chunks = convertBufferstoObjects(chunks)
|
|
234
|
-
}
|
|
231
|
+
if (processChunksAsBuffers) {
|
|
232
|
+
chunks = convertBufferstoObjects(chunks)
|
|
233
|
+
}
|
|
235
234
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
235
|
+
if (chunks.length) {
|
|
236
|
+
// Define the initial body having all the content outside of choices from the first chunk
|
|
237
|
+
// this will include import data like created, id, model, etc.
|
|
238
|
+
body = { ...chunks[0], choices: Array.from({ length: n }) }
|
|
239
|
+
// Start from the first chunk, and add its choices into the body
|
|
240
|
+
for (const chunk_ of chunks) {
|
|
241
|
+
addStreamedChunk(body, chunk_)
|
|
244
242
|
}
|
|
245
243
|
}
|
|
246
244
|
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
const { addHook } = require('./helpers/instrument')
|
|
4
4
|
const shimmer = require('../../datadog-shimmer')
|
|
5
5
|
const tracer = require('../../dd-trace')
|
|
6
|
+
const { getEnvironmentVariable } = require('../../dd-trace/src/config-helper')
|
|
6
7
|
|
|
7
|
-
const otelSdkEnabled =
|
|
8
|
-
|
|
9
|
-
? !
|
|
8
|
+
const otelSdkEnabled = getEnvironmentVariable('DD_TRACE_OTEL_ENABLED') ||
|
|
9
|
+
getEnvironmentVariable('OTEL_SDK_DISABLED')
|
|
10
|
+
? !getEnvironmentVariable('OTEL_SDK_DISABLED')
|
|
10
11
|
: undefined
|
|
11
12
|
|
|
12
13
|
if (otelSdkEnabled) {
|
|
@@ -77,7 +77,6 @@ function wrapQuery (query) {
|
|
|
77
77
|
if (abortController.signal.aborted) {
|
|
78
78
|
const error = abortController.signal.reason || new Error('Aborted')
|
|
79
79
|
|
|
80
|
-
// eslint-disable-next-line @stylistic/js/max-len
|
|
81
80
|
// Based on: https://github.com/brianc/node-postgres/blob/54eb0fa216aaccd727765641e7d1cf5da2bc483d/packages/pg/lib/client.js#L510
|
|
82
81
|
const reusingQuery = typeof pgQuery.submit === 'function'
|
|
83
82
|
const callback = arguments[arguments.length - 1]
|
|
@@ -115,7 +114,7 @@ function wrapQuery (query) {
|
|
|
115
114
|
const queryQueue = this.queryQueue || this._queryQueue
|
|
116
115
|
const activeQuery = this.activeQuery || this._activeQuery
|
|
117
116
|
|
|
118
|
-
const newQuery = queryQueue
|
|
117
|
+
const newQuery = queryQueue.at(-1) || activeQuery
|
|
119
118
|
|
|
120
119
|
if (!newQuery) {
|
|
121
120
|
return retval
|
|
@@ -179,9 +178,8 @@ function wrapPoolQuery (query) {
|
|
|
179
178
|
cb(error)
|
|
180
179
|
|
|
181
180
|
return
|
|
182
|
-
} else {
|
|
183
|
-
return Promise.reject(error)
|
|
184
181
|
}
|
|
182
|
+
return Promise.reject(error)
|
|
185
183
|
}
|
|
186
184
|
|
|
187
185
|
if (typeof cb === 'function') {
|
|
@@ -193,7 +191,7 @@ function wrapPoolQuery (query) {
|
|
|
193
191
|
|
|
194
192
|
const retval = query.apply(this, arguments)
|
|
195
193
|
|
|
196
|
-
if (retval
|
|
194
|
+
if (retval?.then) {
|
|
197
195
|
retval.then(() => {
|
|
198
196
|
finish()
|
|
199
197
|
}).catch(() => {
|