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
|
@@ -107,6 +107,12 @@ class DatadogTracer {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Get the span context from a span or a span context.
|
|
112
|
+
*
|
|
113
|
+
* @param {Span|SpanContext} spanContext
|
|
114
|
+
* @returns {SpanContext}
|
|
115
|
+
*/
|
|
110
116
|
function getContext (spanContext) {
|
|
111
117
|
if (spanContext instanceof Span) {
|
|
112
118
|
spanContext = spanContext.context()
|
|
@@ -122,17 +128,14 @@ function getContext (spanContext) {
|
|
|
122
128
|
function getParent (references = []) {
|
|
123
129
|
let parent = null
|
|
124
130
|
|
|
125
|
-
for (
|
|
126
|
-
const ref = references[i]
|
|
131
|
+
for (const ref of references) {
|
|
127
132
|
const type = ref.type()
|
|
128
133
|
|
|
129
134
|
if (type === REFERENCE_CHILD_OF) {
|
|
130
135
|
parent = ref.referencedContext()
|
|
131
136
|
break
|
|
132
|
-
} else if (type === REFERENCE_FOLLOWS_FROM) {
|
|
133
|
-
|
|
134
|
-
parent = ref.referencedContext()
|
|
135
|
-
}
|
|
137
|
+
} else if (type === REFERENCE_FOLLOWS_FROM && !parent) {
|
|
138
|
+
parent = ref.referencedContext()
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
141
|
|
|
@@ -2,29 +2,25 @@ const aws = require('./aws.json')
|
|
|
2
2
|
const sdks = { aws }
|
|
3
3
|
|
|
4
4
|
function getSDKRules (sdk, requestInput, responseInput) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
)
|
|
5
|
+
const sdkServiceRules = {}
|
|
6
|
+
for (const [service, serviceRules] of Object.entries(sdk)) {
|
|
7
|
+
sdkServiceRules[service] = {
|
|
8
|
+
// Make a copy. Otherwise calling the function multiple times would append
|
|
9
|
+
// the rules to the same object.
|
|
10
|
+
request: [...serviceRules.request, ...requestInput],
|
|
11
|
+
response: [...serviceRules.response, ...responseInput],
|
|
12
|
+
expand: serviceRules.expand
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return sdkServiceRules
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
function appendRules (requestInput, responseInput) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
]
|
|
26
|
-
})
|
|
27
|
-
)
|
|
18
|
+
function appendRules (requestInput = [], responseInput = []) {
|
|
19
|
+
const sdkRules = {}
|
|
20
|
+
for (const [name, sdk] of Object.entries(sdks)) {
|
|
21
|
+
sdkRules[name] = getSDKRules(sdk, requestInput, responseInput)
|
|
22
|
+
}
|
|
23
|
+
return sdkRules
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
module.exports = { appendRules }
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
const { PAYLOAD_TAGGING_MAX_TAGS } = require('../constants')
|
|
2
2
|
|
|
3
|
-
const redactedKeys = [
|
|
3
|
+
const redactedKeys = new Set([
|
|
4
4
|
'authorization', 'x-authorization', 'password', 'token'
|
|
5
|
-
]
|
|
5
|
+
])
|
|
6
6
|
const truncated = 'truncated'
|
|
7
7
|
const redacted = 'redacted'
|
|
8
8
|
|
|
9
9
|
function escapeKey (key) {
|
|
10
|
-
return key.replaceAll('.',
|
|
10
|
+
return key.replaceAll('.', String.raw`\.`)
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -56,18 +56,18 @@ function tagsFromObject (object, opts) {
|
|
|
56
56
|
|
|
57
57
|
if (['number', 'boolean'].includes(typeof object) || Buffer.isBuffer(object)) {
|
|
58
58
|
tagCount += 1
|
|
59
|
-
result[prefix] = object.toString().
|
|
59
|
+
result[prefix] = object.toString().slice(0, 5000)
|
|
60
60
|
return
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
if (typeof object === 'string') {
|
|
64
64
|
tagCount += 1
|
|
65
|
-
result[prefix] = object.
|
|
65
|
+
result[prefix] = object.slice(0, 5000)
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
if (typeof object === 'object') {
|
|
69
69
|
for (const [key, value] of Object.entries(object)) {
|
|
70
|
-
if (redactedKeys.
|
|
70
|
+
if (redactedKeys.has(key.toLowerCase())) {
|
|
71
71
|
tagCount += 1
|
|
72
72
|
result[`${prefix}.${escapeKey(key)}`] = redacted
|
|
73
73
|
} else {
|
|
@@ -4,17 +4,18 @@ const { channel } = require('dc-polyfill')
|
|
|
4
4
|
const { isFalse } = require('./util')
|
|
5
5
|
const plugins = require('./plugins')
|
|
6
6
|
const log = require('./log')
|
|
7
|
+
const { getEnvironmentVariable } = require('../../dd-trace/src/config-helper')
|
|
7
8
|
|
|
8
9
|
const loadChannel = channel('dd-trace:instrumentation:load')
|
|
9
10
|
|
|
10
11
|
// instrument everything that needs Plugin System V2 instrumentation
|
|
11
12
|
require('../../datadog-instrumentations')
|
|
12
|
-
if (
|
|
13
|
+
if (getEnvironmentVariable('AWS_LAMBDA_FUNCTION_NAME') !== undefined) {
|
|
13
14
|
// instrument lambda environment
|
|
14
15
|
require('./lambda')
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
const
|
|
18
|
+
const DD_TRACE_DISABLED_PLUGINS = getEnvironmentVariable('DD_TRACE_DISABLED_PLUGINS')
|
|
18
19
|
|
|
19
20
|
const disabledPlugins = new Set(
|
|
20
21
|
DD_TRACE_DISABLED_PLUGINS && DD_TRACE_DISABLED_PLUGINS.split(',').map(plugin => plugin.trim())
|
|
@@ -32,7 +33,7 @@ function maybeEnable (Plugin) {
|
|
|
32
33
|
if (!Plugin || typeof Plugin !== 'function') return
|
|
33
34
|
if (!pluginClasses[Plugin.id]) {
|
|
34
35
|
const envName = `DD_TRACE_${Plugin.id.toUpperCase()}_ENABLED`
|
|
35
|
-
const enabled =
|
|
36
|
+
const enabled = getEnvironmentVariable(envName.replaceAll(/[^a-z0-9_]/ig, '_'))
|
|
36
37
|
|
|
37
38
|
// TODO: remove the need to load the plugin class in order to disable the plugin
|
|
38
39
|
if (isFalse(enabled) || disabledPlugins.has(Plugin.id)) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const { storage } = require('../../../datadog-core')
|
|
1
2
|
const {
|
|
2
3
|
getTestEnvironmentMetadata,
|
|
3
4
|
getTestSessionName,
|
|
@@ -28,7 +29,10 @@ const {
|
|
|
28
29
|
DI_DEBUG_ERROR_SNAPSHOT_ID_SUFFIX,
|
|
29
30
|
DI_DEBUG_ERROR_FILE_SUFFIX,
|
|
30
31
|
DI_DEBUG_ERROR_LINE_SUFFIX,
|
|
31
|
-
getLibraryCapabilitiesTags
|
|
32
|
+
getLibraryCapabilitiesTags,
|
|
33
|
+
getPullRequestDiff,
|
|
34
|
+
getModifiedTestsFromDiff,
|
|
35
|
+
getPullRequestBaseBranch
|
|
32
36
|
} = require('./util/test')
|
|
33
37
|
const Plugin = require('./plugin')
|
|
34
38
|
const { COMPONENT } = require('../constants')
|
|
@@ -45,10 +49,23 @@ const {
|
|
|
45
49
|
GIT_COMMIT_SHA,
|
|
46
50
|
GIT_BRANCH,
|
|
47
51
|
CI_WORKSPACE_PATH,
|
|
48
|
-
GIT_COMMIT_MESSAGE
|
|
52
|
+
GIT_COMMIT_MESSAGE,
|
|
53
|
+
GIT_TAG,
|
|
54
|
+
GIT_PULL_REQUEST_BASE_BRANCH_SHA,
|
|
55
|
+
GIT_COMMIT_HEAD_SHA,
|
|
56
|
+
GIT_PULL_REQUEST_BASE_BRANCH
|
|
49
57
|
} = require('./util/tags')
|
|
50
58
|
const { OS_VERSION, OS_PLATFORM, OS_ARCHITECTURE, RUNTIME_NAME, RUNTIME_VERSION } = require('./util/env')
|
|
51
59
|
const getDiClient = require('../ci-visibility/dynamic-instrumentation')
|
|
60
|
+
const { DD_MAJOR } = require('../../../../version')
|
|
61
|
+
|
|
62
|
+
const FRAMEWORK_TO_TRIMMED_COMMAND = {
|
|
63
|
+
vitest: 'vitest run',
|
|
64
|
+
mocha: 'mocha',
|
|
65
|
+
cucumber: 'cucumber-js',
|
|
66
|
+
playwright: 'playwright test',
|
|
67
|
+
jest: 'jest'
|
|
68
|
+
}
|
|
52
69
|
|
|
53
70
|
module.exports = class CiPlugin extends Plugin {
|
|
54
71
|
constructor (...args) {
|
|
@@ -57,7 +74,10 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
57
74
|
this.fileLineToProbeId = new Map()
|
|
58
75
|
this.rootDir = process.cwd() // fallback in case :session:start events are not emitted
|
|
59
76
|
|
|
60
|
-
this.addSub(`ci:${this.constructor.id}:library-configuration`, (
|
|
77
|
+
this.addSub(`ci:${this.constructor.id}:library-configuration`, (ctx) => {
|
|
78
|
+
const { onDone, isParallel } = ctx
|
|
79
|
+
ctx.currentStore = storage('legacy').getStore()
|
|
80
|
+
|
|
61
81
|
if (!this.tracer._exporter || !this.tracer._exporter.getLibraryConfiguration) {
|
|
62
82
|
return onDone({ err: new Error('Test optimization was not initialized correctly') })
|
|
63
83
|
}
|
|
@@ -79,6 +99,10 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
79
99
|
})
|
|
80
100
|
})
|
|
81
101
|
|
|
102
|
+
this.addBind(`ci:${this.constructor.id}:test-suite:skippable`, (ctx) => {
|
|
103
|
+
return ctx.currentStore
|
|
104
|
+
})
|
|
105
|
+
|
|
82
106
|
this.addSub(`ci:${this.constructor.id}:test-suite:skippable`, ({ onDone }) => {
|
|
83
107
|
if (!this.tracer._exporter?.getSkippableSuites) {
|
|
84
108
|
return onDone({ err: new Error('Test optimization was not initialized correctly') })
|
|
@@ -103,7 +127,11 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
103
127
|
// only for playwright
|
|
104
128
|
this.rootDir = rootDir
|
|
105
129
|
|
|
106
|
-
const testSessionName = getTestSessionName(
|
|
130
|
+
const testSessionName = getTestSessionName(
|
|
131
|
+
this.config,
|
|
132
|
+
DD_MAJOR < 6 ? this.command : FRAMEWORK_TO_TRIMMED_COMMAND[this.constructor.id],
|
|
133
|
+
this.testEnvironmentMetadata
|
|
134
|
+
)
|
|
107
135
|
|
|
108
136
|
const metadataTags = {}
|
|
109
137
|
for (const testLevel of TEST_LEVEL_EVENT_TYPES) {
|
|
@@ -138,8 +166,12 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
138
166
|
// only for vitest
|
|
139
167
|
// These are added for the worker threads to use
|
|
140
168
|
if (this.constructor.id === 'vitest') {
|
|
169
|
+
// TODO: Figure out alternative ways to pass this information to the worker threads
|
|
170
|
+
// eslint-disable-next-line eslint-rules/eslint-process-env
|
|
141
171
|
process.env.DD_CIVISIBILITY_TEST_SESSION_ID = this.testSessionSpan.context().toTraceId()
|
|
172
|
+
// eslint-disable-next-line eslint-rules/eslint-process-env
|
|
142
173
|
process.env.DD_CIVISIBILITY_TEST_MODULE_ID = this.testModuleSpan.context().toSpanId()
|
|
174
|
+
// eslint-disable-next-line eslint-rules/eslint-process-env
|
|
143
175
|
process.env.DD_CIVISIBILITY_TEST_COMMAND = this.command
|
|
144
176
|
}
|
|
145
177
|
|
|
@@ -168,6 +200,10 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
168
200
|
this.telemetry.count(TELEMETRY_ITR_SKIPPED, { testLevel: 'suite' }, skippedSuites.length)
|
|
169
201
|
})
|
|
170
202
|
|
|
203
|
+
this.addBind(`ci:${this.constructor.id}:known-tests`, (ctx) => {
|
|
204
|
+
return ctx.currentStore
|
|
205
|
+
})
|
|
206
|
+
|
|
171
207
|
this.addSub(`ci:${this.constructor.id}:known-tests`, ({ onDone }) => {
|
|
172
208
|
if (!this.tracer._exporter?.getKnownTests) {
|
|
173
209
|
return onDone({ err: new Error('Test optimization was not initialized correctly') })
|
|
@@ -182,6 +218,10 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
182
218
|
})
|
|
183
219
|
})
|
|
184
220
|
|
|
221
|
+
this.addBind(`ci:${this.constructor.id}:test-management-tests`, (ctx) => {
|
|
222
|
+
return ctx.currentStore
|
|
223
|
+
})
|
|
224
|
+
|
|
185
225
|
this.addSub(`ci:${this.constructor.id}:test-management-tests`, ({ onDone }) => {
|
|
186
226
|
if (!this.tracer._exporter?.getTestManagementTests) {
|
|
187
227
|
return onDone({ err: new Error('Test optimization was not initialized correctly') })
|
|
@@ -194,6 +234,31 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
194
234
|
onDone({ err, testManagementTests })
|
|
195
235
|
})
|
|
196
236
|
})
|
|
237
|
+
|
|
238
|
+
this.addBind(`ci:${this.constructor.id}:modified-tests`, (ctx) => {
|
|
239
|
+
return ctx.currentStore
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
this.addSub(`ci:${this.constructor.id}:modified-tests`, ({ onDone }) => {
|
|
243
|
+
const {
|
|
244
|
+
[GIT_PULL_REQUEST_BASE_BRANCH]: pullRequestBaseBranch,
|
|
245
|
+
[GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseBranchSha,
|
|
246
|
+
[GIT_COMMIT_HEAD_SHA]: commitHeadSha
|
|
247
|
+
} = this.testEnvironmentMetadata
|
|
248
|
+
|
|
249
|
+
const baseBranchSha = pullRequestBaseBranchSha || getPullRequestBaseBranch(pullRequestBaseBranch)
|
|
250
|
+
|
|
251
|
+
if (baseBranchSha) {
|
|
252
|
+
const diff = getPullRequestDiff(baseBranchSha, commitHeadSha)
|
|
253
|
+
const modifiedTests = getModifiedTestsFromDiff(diff)
|
|
254
|
+
if (modifiedTests) {
|
|
255
|
+
return onDone({ err: null, modifiedTests })
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// TODO: Add telemetry for this type of error
|
|
260
|
+
return onDone({ err: new Error('No modified tests could have been retrieved') })
|
|
261
|
+
})
|
|
197
262
|
}
|
|
198
263
|
|
|
199
264
|
get telemetry () {
|
|
@@ -240,7 +305,10 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
240
305
|
[GIT_BRANCH]: branch,
|
|
241
306
|
[CI_PROVIDER_NAME]: ciProviderName,
|
|
242
307
|
[CI_WORKSPACE_PATH]: repositoryRoot,
|
|
243
|
-
[GIT_COMMIT_MESSAGE]: commitMessage
|
|
308
|
+
[GIT_COMMIT_MESSAGE]: commitMessage,
|
|
309
|
+
[GIT_TAG]: tag,
|
|
310
|
+
[GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseSha,
|
|
311
|
+
[GIT_COMMIT_HEAD_SHA]: commitHeadSha
|
|
244
312
|
} = this.testEnvironmentMetadata
|
|
245
313
|
|
|
246
314
|
this.repositoryRoot = repositoryRoot || process.cwd()
|
|
@@ -259,7 +327,10 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
259
327
|
runtimeVersion,
|
|
260
328
|
branch,
|
|
261
329
|
testLevel: 'suite',
|
|
262
|
-
commitMessage
|
|
330
|
+
commitMessage,
|
|
331
|
+
tag,
|
|
332
|
+
pullRequestBaseSha,
|
|
333
|
+
commitHeadSha
|
|
263
334
|
}
|
|
264
335
|
}
|
|
265
336
|
|
|
@@ -372,11 +443,12 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
372
443
|
return Promise.resolve()
|
|
373
444
|
}
|
|
374
445
|
log.debug('Removing all Dynamic Instrumentation probes')
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
446
|
+
const promises = []
|
|
447
|
+
for (const fileLine of this.fileLineToProbeId.keys()) {
|
|
448
|
+
const [file, line] = fileLine.split(':')
|
|
449
|
+
promises.push(this.removeDiProbe({ file, line }))
|
|
450
|
+
}
|
|
451
|
+
return Promise.all(promises)
|
|
380
452
|
}
|
|
381
453
|
|
|
382
454
|
removeDiProbe ({ file, line }) {
|
|
@@ -387,6 +459,10 @@ module.exports = class CiPlugin extends Plugin {
|
|
|
387
459
|
}
|
|
388
460
|
|
|
389
461
|
addDiProbe (err) {
|
|
462
|
+
if (!err?.stack) {
|
|
463
|
+
log.warn('Can not add breakpoint if the test error does not have a stack')
|
|
464
|
+
return
|
|
465
|
+
}
|
|
390
466
|
const [file, line, stackIndex] = getFileAndLineNumberFromError(err, this.repositoryRoot)
|
|
391
467
|
|
|
392
468
|
if (!file || !Number.isInteger(line)) {
|
|
@@ -7,14 +7,14 @@ class ConsumerPlugin extends InboundPlugin {
|
|
|
7
7
|
static get kind () { return 'consumer' }
|
|
8
8
|
static get type () { return 'messaging' }
|
|
9
9
|
|
|
10
|
-
startSpan (options) {
|
|
10
|
+
startSpan (options, enterOrCtx) {
|
|
11
11
|
if (!options.service) {
|
|
12
12
|
options.service = this.config.service || this.serviceName()
|
|
13
13
|
}
|
|
14
14
|
if (!options.kind) {
|
|
15
15
|
options.kind = this.constructor.kind
|
|
16
16
|
}
|
|
17
|
-
return super.startSpan(this.operationName(), options)
|
|
17
|
+
return super.startSpan(this.operationName(), options, enterOrCtx)
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -84,7 +84,6 @@ module.exports = {
|
|
|
84
84
|
get nyc () { return require('../../../datadog-plugin-nyc/src') },
|
|
85
85
|
get oracledb () { return require('../../../datadog-plugin-oracledb/src') },
|
|
86
86
|
get openai () { return require('../../../datadog-plugin-openai/src') },
|
|
87
|
-
get paperplane () { return require('../../../datadog-plugin-paperplane/src') },
|
|
88
87
|
get pg () { return require('../../../datadog-plugin-pg/src') },
|
|
89
88
|
get pino () { return require('../../../datadog-plugin-pino/src') },
|
|
90
89
|
get 'pino-pretty' () { return require('../../../datadog-plugin-pino/src') },
|
|
@@ -26,6 +26,10 @@ class OutboundPlugin extends TracingPlugin {
|
|
|
26
26
|
})
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
bindFinish (ctx) {
|
|
30
|
+
return ctx.parentStore
|
|
31
|
+
}
|
|
32
|
+
|
|
29
33
|
startSpan (...args) {
|
|
30
34
|
const span = super.startSpan(...args)
|
|
31
35
|
if (
|
|
@@ -67,7 +71,6 @@ class OutboundPlugin extends TracingPlugin {
|
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
|
-
return undefined
|
|
71
74
|
}
|
|
72
75
|
|
|
73
76
|
getPeerServiceRemap (peerData) {
|
|
@@ -87,10 +90,6 @@ class OutboundPlugin extends TracingPlugin {
|
|
|
87
90
|
return peerData
|
|
88
91
|
}
|
|
89
92
|
|
|
90
|
-
bindFinish (ctx) {
|
|
91
|
-
return ctx.parentStore
|
|
92
|
-
}
|
|
93
|
-
|
|
94
93
|
finish (ctx) {
|
|
95
94
|
const span = ctx?.currentStore?.span || this.activeSpan
|
|
96
95
|
this.tagPeerService(span)
|
|
@@ -7,7 +7,7 @@ class ProducerPlugin extends OutboundPlugin {
|
|
|
7
7
|
static get kind () { return 'producer' }
|
|
8
8
|
static get type () { return 'messaging' }
|
|
9
9
|
|
|
10
|
-
startSpan (options) {
|
|
10
|
+
startSpan (options, enterOrCtx) {
|
|
11
11
|
const spanDefaults = {
|
|
12
12
|
kind: this.constructor.kind
|
|
13
13
|
}
|
|
@@ -19,7 +19,7 @@ class ProducerPlugin extends OutboundPlugin {
|
|
|
19
19
|
if (!options[key]) options[key] = spanDefaults[key]
|
|
20
20
|
}
|
|
21
21
|
)
|
|
22
|
-
return super.startSpan(this.operationName(), options)
|
|
22
|
+
return super.startSpan(this.operationName(), options, enterOrCtx)
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -11,12 +11,12 @@ class StoragePlugin extends ClientPlugin {
|
|
|
11
11
|
this.system = this.constructor.system || this.component
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
startSpan (name, options) {
|
|
14
|
+
startSpan (name, options, ctx) {
|
|
15
15
|
if (!options.service && this.system) {
|
|
16
16
|
options.service = `${this.tracer._service}-${this.system}`
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
return super.startSpan(name, options)
|
|
19
|
+
return super.startSpan(name, options, ctx)
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -27,6 +27,7 @@ const {
|
|
|
27
27
|
CI_NODE_NAME
|
|
28
28
|
} = require('./tags')
|
|
29
29
|
const { filterSensitiveInfoFromRepository } = require('./url')
|
|
30
|
+
const { getEnvironmentVariable } = require('../../config-helper')
|
|
30
31
|
|
|
31
32
|
// Receives a string with the form 'John Doe <john.doe@gmail.com>'
|
|
32
33
|
// and returns { name: 'John Doe', email: 'john.doe@gmail.com' }
|
|
@@ -67,7 +68,7 @@ function normalizeRef (ref) {
|
|
|
67
68
|
if (!ref) {
|
|
68
69
|
return ref
|
|
69
70
|
}
|
|
70
|
-
return ref.
|
|
71
|
+
return ref.replaceAll(/origin\/|refs\/heads\/|tags\//gm, '')
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
function resolveTilde (filePath) {
|
|
@@ -76,16 +77,16 @@ function resolveTilde (filePath) {
|
|
|
76
77
|
}
|
|
77
78
|
// '~/folder/path' or '~'
|
|
78
79
|
if (filePath[0] === '~' && (filePath[1] === '/' || filePath.length === 1)) {
|
|
79
|
-
return filePath.replace('~',
|
|
80
|
+
return filePath.replace('~', getEnvironmentVariable('HOME'))
|
|
80
81
|
}
|
|
81
82
|
return filePath
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
function getGitHubEventPayload () {
|
|
85
|
-
if (!
|
|
86
|
+
if (!getEnvironmentVariable('GITHUB_EVENT_PATH')) {
|
|
86
87
|
return
|
|
87
88
|
}
|
|
88
|
-
return JSON.parse(readFileSync(
|
|
89
|
+
return JSON.parse(readFileSync(getEnvironmentVariable('GITHUB_EVENT_PATH'), 'utf8'))
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
module.exports = {
|
|
@@ -128,7 +129,7 @@ module.exports = {
|
|
|
128
129
|
try {
|
|
129
130
|
nodeLabels = JSON.stringify(NODE_LABELS.split(' '))
|
|
130
131
|
tags[CI_NODE_LABELS] = nodeLabels
|
|
131
|
-
} catch
|
|
132
|
+
} catch {
|
|
132
133
|
// ignore errors
|
|
133
134
|
}
|
|
134
135
|
}
|
|
@@ -139,15 +140,12 @@ module.exports = {
|
|
|
139
140
|
|
|
140
141
|
tags[refKey] = ref
|
|
141
142
|
|
|
142
|
-
let finalPipelineName = ''
|
|
143
143
|
if (JOB_NAME) {
|
|
144
144
|
// Job names can contain parameters, e.g. jobName/KEY1=VALUE1,KEY2=VALUE2/branchName
|
|
145
145
|
const jobNameAndParams = JOB_NAME.split('/')
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
finalPipelineName = JOB_NAME.replace(`/${ref}`, '')
|
|
150
|
-
}
|
|
146
|
+
const finalPipelineName = jobNameAndParams.length > 1 && jobNameAndParams[1].includes('=')
|
|
147
|
+
? jobNameAndParams[0]
|
|
148
|
+
: JOB_NAME.replace(`/${ref}`, '')
|
|
151
149
|
tags[CI_PIPELINE_NAME] = finalPipelineName
|
|
152
150
|
}
|
|
153
151
|
}
|
|
@@ -172,7 +170,9 @@ module.exports = {
|
|
|
172
170
|
CI_PROJECT_URL: GITLAB_PROJECT_URL,
|
|
173
171
|
CI_JOB_ID: GITLAB_CI_JOB_ID,
|
|
174
172
|
CI_RUNNER_ID,
|
|
175
|
-
CI_RUNNER_TAGS
|
|
173
|
+
CI_RUNNER_TAGS,
|
|
174
|
+
CI_MERGE_REQUEST_TARGET_BRANCH_NAME,
|
|
175
|
+
CI_MERGE_REQUEST_TARGET_BRANCH_SHA
|
|
176
176
|
} = env
|
|
177
177
|
|
|
178
178
|
const { name, email } = parseEmailAndName(CI_COMMIT_AUTHOR)
|
|
@@ -201,7 +201,9 @@ module.exports = {
|
|
|
201
201
|
CI_JOB_ID: GITLAB_CI_JOB_ID
|
|
202
202
|
}),
|
|
203
203
|
[CI_NODE_LABELS]: CI_RUNNER_TAGS,
|
|
204
|
-
[CI_NODE_NAME]: CI_RUNNER_ID
|
|
204
|
+
[CI_NODE_NAME]: CI_RUNNER_ID,
|
|
205
|
+
[GIT_PULL_REQUEST_BASE_BRANCH]: CI_MERGE_REQUEST_TARGET_BRANCH_NAME,
|
|
206
|
+
[GIT_PULL_REQUEST_BASE_BRANCH_SHA]: CI_MERGE_REQUEST_TARGET_BRANCH_SHA
|
|
205
207
|
}
|
|
206
208
|
}
|
|
207
209
|
|
|
@@ -295,7 +297,7 @@ module.exports = {
|
|
|
295
297
|
const eventContent = getGitHubEventPayload()
|
|
296
298
|
tags[GIT_PULL_REQUEST_BASE_BRANCH_SHA] = eventContent.pull_request.base.sha
|
|
297
299
|
tags[GIT_COMMIT_HEAD_SHA] = eventContent.pull_request.head.sha
|
|
298
|
-
} catch
|
|
300
|
+
} catch {
|
|
299
301
|
// ignore malformed event content
|
|
300
302
|
}
|
|
301
303
|
}
|
|
@@ -330,7 +332,8 @@ module.exports = {
|
|
|
330
332
|
[CI_WORKSPACE_PATH]: APPVEYOR_BUILD_FOLDER,
|
|
331
333
|
[GIT_COMMIT_AUTHOR_NAME]: APPVEYOR_REPO_COMMIT_AUTHOR,
|
|
332
334
|
[GIT_COMMIT_AUTHOR_EMAIL]: APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL,
|
|
333
|
-
[GIT_COMMIT_MESSAGE]: APPVEYOR_REPO_COMMIT_MESSAGE + '\n' + APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED
|
|
335
|
+
[GIT_COMMIT_MESSAGE]: APPVEYOR_REPO_COMMIT_MESSAGE + '\n' + APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED,
|
|
336
|
+
[GIT_PULL_REQUEST_BASE_BRANCH]: APPVEYOR_REPO_BRANCH
|
|
334
337
|
}
|
|
335
338
|
|
|
336
339
|
if (APPVEYOR_REPO_PROVIDER === 'github') {
|
|
@@ -411,7 +414,8 @@ module.exports = {
|
|
|
411
414
|
BITBUCKET_GIT_HTTP_ORIGIN,
|
|
412
415
|
BITBUCKET_TAG,
|
|
413
416
|
BITBUCKET_PIPELINE_UUID,
|
|
414
|
-
BITBUCKET_CLONE_DIR
|
|
417
|
+
BITBUCKET_CLONE_DIR,
|
|
418
|
+
BITBUCKET_PR_DESTINATION_BRANCH
|
|
415
419
|
} = env
|
|
416
420
|
|
|
417
421
|
const url =
|
|
@@ -428,7 +432,8 @@ module.exports = {
|
|
|
428
432
|
[GIT_TAG]: BITBUCKET_TAG,
|
|
429
433
|
[GIT_REPOSITORY_URL]: BITBUCKET_GIT_SSH_ORIGIN || BITBUCKET_GIT_HTTP_ORIGIN,
|
|
430
434
|
[CI_WORKSPACE_PATH]: BITBUCKET_CLONE_DIR,
|
|
431
|
-
[CI_PIPELINE_ID]: BITBUCKET_PIPELINE_UUID && BITBUCKET_PIPELINE_UUID.
|
|
435
|
+
[CI_PIPELINE_ID]: BITBUCKET_PIPELINE_UUID && BITBUCKET_PIPELINE_UUID.replaceAll(/{|}/gm, ''),
|
|
436
|
+
[GIT_PULL_REQUEST_BASE_BRANCH]: BITBUCKET_PR_DESTINATION_BRANCH
|
|
432
437
|
}
|
|
433
438
|
}
|
|
434
439
|
|
|
@@ -459,7 +464,8 @@ module.exports = {
|
|
|
459
464
|
[CI_WORKSPACE_PATH]: BITRISE_SOURCE_DIR,
|
|
460
465
|
[GIT_TAG]: BITRISE_GIT_TAG,
|
|
461
466
|
[GIT_BRANCH]: BITRISEIO_GIT_BRANCH_DEST || BITRISE_GIT_BRANCH,
|
|
462
|
-
[GIT_COMMIT_MESSAGE]: BITRISE_GIT_MESSAGE
|
|
467
|
+
[GIT_COMMIT_MESSAGE]: BITRISE_GIT_MESSAGE,
|
|
468
|
+
[GIT_PULL_REQUEST_BASE_BRANCH]: BITRISEIO_GIT_BRANCH_DEST
|
|
463
469
|
}
|
|
464
470
|
}
|
|
465
471
|
|
|
@@ -555,7 +561,8 @@ module.exports = {
|
|
|
555
561
|
BUDDY_EXECUTION_URL,
|
|
556
562
|
BUDDY_PIPELINE_ID,
|
|
557
563
|
BUDDY_PIPELINE_NAME,
|
|
558
|
-
BUDDY_SCM_URL
|
|
564
|
+
BUDDY_SCM_URL,
|
|
565
|
+
BUDDY_RUN_PR_BASE_BRANCH
|
|
559
566
|
} = env
|
|
560
567
|
tags = {
|
|
561
568
|
[CI_PROVIDER_NAME]: 'buddy',
|
|
@@ -569,7 +576,8 @@ module.exports = {
|
|
|
569
576
|
[GIT_TAG]: BUDDY_EXECUTION_TAG,
|
|
570
577
|
[GIT_COMMIT_MESSAGE]: BUDDY_EXECUTION_REVISION_MESSAGE,
|
|
571
578
|
[GIT_COMMIT_COMMITTER_NAME]: BUDDY_EXECUTION_REVISION_COMMITTER_NAME,
|
|
572
|
-
[GIT_COMMIT_COMMITTER_EMAIL]: BUDDY_EXECUTION_REVISION_COMMITTER_EMAIL
|
|
579
|
+
[GIT_COMMIT_COMMITTER_EMAIL]: BUDDY_EXECUTION_REVISION_COMMITTER_EMAIL,
|
|
580
|
+
[GIT_PULL_REQUEST_BASE_BRANCH]: BUDDY_RUN_PR_BASE_BRANCH
|
|
573
581
|
}
|
|
574
582
|
}
|
|
575
583
|
|