dd-trace 5.53.0 → 5.54.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/index.d.ts +33 -16
- package/initialize.mjs +3 -4
- package/package.json +36 -34
- 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 +5 -4
- package/packages/datadog-instrumentations/src/child_process.js +1 -2
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +88 -73
- package/packages/datadog-instrumentations/src/couchbase.js +3 -3
- package/packages/datadog-instrumentations/src/cucumber.js +87 -40
- package/packages/datadog-instrumentations/src/cypress.js +2 -1
- package/packages/datadog-instrumentations/src/dns.js +1 -1
- package/packages/datadog-instrumentations/src/fs.js +1 -1
- package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +28 -34
- 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/helpers/extract-package-and-module-path.js +16 -10
- package/packages/datadog-instrumentations/src/helpers/hook.js +1 -1
- 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 +5 -7
- package/packages/datadog-instrumentations/src/http/client.js +14 -20
- package/packages/datadog-instrumentations/src/jest.js +137 -48
- package/packages/datadog-instrumentations/src/kafkajs.js +52 -44
- package/packages/datadog-instrumentations/src/knex.js +4 -4
- package/packages/datadog-instrumentations/src/ldapjs.js +3 -4
- package/packages/datadog-instrumentations/src/mariadb.js +38 -61
- package/packages/datadog-instrumentations/src/mocha/main.js +63 -24
- 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/mongodb-core.js +1 -1
- package/packages/datadog-instrumentations/src/mysql.js +20 -36
- 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 +1 -1
- package/packages/datadog-instrumentations/src/openai.js +21 -23
- package/packages/datadog-instrumentations/src/oracledb.js +1 -1
- package/packages/datadog-instrumentations/src/pg.js +1 -2
- package/packages/datadog-instrumentations/src/playwright.js +112 -69
- package/packages/datadog-instrumentations/src/redis.js +3 -3
- package/packages/datadog-instrumentations/src/restify.js +2 -2
- package/packages/datadog-instrumentations/src/rhea.js +42 -54
- package/packages/datadog-instrumentations/src/router.js +22 -25
- package/packages/datadog-instrumentations/src/tedious.js +1 -1
- package/packages/datadog-instrumentations/src/vitest.js +77 -28
- 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-aws-sdk/src/base.js +3 -2
- 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/dynamodb.js +24 -31
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +2 -2
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +6 -6
- package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +4 -5
- 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 +57 -2
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +97 -27
- package/packages/datadog-plugin-cypress/src/plugin.js +11 -1
- package/packages/datadog-plugin-cypress/src/support.js +24 -5
- 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 +26 -9
- package/packages/datadog-plugin-graphql/src/execute.js +2 -2
- package/packages/datadog-plugin-graphql/src/index.js +7 -6
- package/packages/datadog-plugin-graphql/src/resolve.js +2 -2
- 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 +18 -7
- package/packages/datadog-plugin-http2/src/client.js +20 -20
- package/packages/datadog-plugin-jest/src/index.js +23 -21
- 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 +33 -13
- package/packages/datadog-plugin-mongodb-core/src/index.js +1 -1
- package/packages/datadog-plugin-mysql/src/index.js +11 -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 +6 -5
- package/packages/datadog-plugin-openai/src/services.js +6 -10
- package/packages/datadog-plugin-openai/src/tracing.js +10 -14
- package/packages/datadog-plugin-oracledb/src/index.js +1 -1
- package/packages/datadog-plugin-playwright/src/index.js +22 -2
- package/packages/datadog-plugin-redis/src/index.js +1 -1
- 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 +47 -31
- 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/hardcoded-password-rules.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/header-injection-analyzer.js +4 -6
- 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 +4 -6
- 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 +6 -13
- 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 +1 -7
- 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 +5 -7
- 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 +6 -6
- package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +1 -1
- 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 -24
- 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/vulnerability-reporter.js +9 -11
- package/packages/dd-trace/src/appsec/index.js +1 -1
- 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 +233 -40
- package/packages/dd-trace/src/appsec/rule_manager.js +2 -2
- package/packages/dd-trace/src/appsec/stack_trace.js +2 -4
- 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 +2 -2
- package/packages/dd-trace/src/azure_metadata.js +2 -7
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +1 -1
- 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 +1 -1
- 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 +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +1 -1
- 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 +2 -2
- 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 +1 -1
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +1 -1
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +8 -5
- 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 +1 -1
- package/packages/dd-trace/src/config.js +82 -51
- package/packages/dd-trace/src/config_stable.js +3 -3
- package/packages/dd-trace/src/datastreams/encoding.js +9 -9
- package/packages/dd-trace/src/datastreams/fnv.js +1 -1
- 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 +1 -1
- 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 +74 -67
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +6 -8
- package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/index.js +7 -1
- package/packages/dd-trace/src/debugger/devtools_client/remote_config.js +18 -38
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +8 -10
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +3 -3
- 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/dogstatsd.js +5 -4
- package/packages/dd-trace/src/encode/0.4.js +9 -9
- package/packages/dd-trace/src/encode/0.5.js +1 -1
- package/packages/dd-trace/src/encode/agentless-ci-visibility.js +3 -3
- 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 +6 -6
- package/packages/dd-trace/src/exporters/agent/writer.js +1 -5
- package/packages/dd-trace/src/exporters/common/docker.js +1 -1
- package/packages/dd-trace/src/exporters/common/form-data.js +6 -4
- package/packages/dd-trace/src/exporters/common/request.js +1 -1
- package/packages/dd-trace/src/exporters/common/util.js +1 -1
- 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 +12 -6
- package/packages/dd-trace/src/iitm.js +10 -22
- package/packages/dd-trace/src/lambda/handler.js +6 -6
- 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/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/index.js +6 -6
- package/packages/dd-trace/src/llmobs/plugins/openai.js +1 -1
- package/packages/dd-trace/src/llmobs/sdk.js +2 -2
- package/packages/dd-trace/src/llmobs/tagger.js +110 -96
- 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 +4 -4
- package/packages/dd-trace/src/log/log.js +1 -1
- package/packages/dd-trace/src/log/writer.js +2 -2
- package/packages/dd-trace/src/msgpack/chunk.js +3 -3
- package/packages/dd-trace/src/msgpack/encoder.js +28 -28
- package/packages/dd-trace/src/noop/dogstatsd.js +6 -6
- package/packages/dd-trace/src/noop/span.js +3 -5
- 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 +6 -5
- package/packages/dd-trace/src/opentracing/propagation/log.js +6 -8
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +27 -23
- package/packages/dd-trace/src/opentracing/propagation/tracestate.js +8 -4
- package/packages/dd-trace/src/opentracing/span.js +9 -14
- package/packages/dd-trace/src/opentracing/tracer.js +9 -6
- 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/plugins/ci_plugin.js +62 -10
- 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 +23 -15
- package/packages/dd-trace/src/plugins/util/git.js +165 -11
- 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 +1 -1
- package/packages/dd-trace/src/plugins/util/test.js +311 -48
- 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 +12 -3
- package/packages/dd-trace/src/plugins/util/web.js +5 -4
- package/packages/dd-trace/src/priority_sampler.js +22 -22
- package/packages/dd-trace/src/profiling/config.js +44 -8
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +5 -5
- package/packages/dd-trace/src/profiling/exporters/file.js +2 -1
- package/packages/dd-trace/src/profiling/profiler.js +37 -2
- 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/tagger.js +3 -5
- package/packages/dd-trace/src/profiling/webspan-utils.js +1 -1
- package/packages/dd-trace/src/proxy.js +7 -9
- 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 +4 -4
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +2 -2
- package/packages/dd-trace/src/sampler.js +33 -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/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 +3 -3
- package/packages/dd-trace/src/span_sampler.js +4 -1
- package/packages/dd-trace/src/standalone/tracesource.js +1 -1
- package/packages/dd-trace/src/startup-log.js +2 -2
- package/packages/dd-trace/src/telemetry/dependencies.js +4 -4
- 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 +1 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +23 -24
- package/packages/dd-trace/src/util.js +1 -1
- 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
|
@@ -86,23 +86,23 @@ class LLMObsTagger {
|
|
|
86
86
|
// TODO: similarly for the following `tag` methods,
|
|
87
87
|
// how can we transition from a span weakmap to core API functionality
|
|
88
88
|
tagLLMIO (span, inputData, outputData) {
|
|
89
|
-
this
|
|
90
|
-
this
|
|
89
|
+
this.#tagMessages(span, inputData, INPUT_MESSAGES)
|
|
90
|
+
this.#tagMessages(span, outputData, OUTPUT_MESSAGES)
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
tagEmbeddingIO (span, inputData, outputData) {
|
|
94
|
-
this
|
|
95
|
-
this
|
|
94
|
+
this.#tagDocuments(span, inputData, INPUT_DOCUMENTS)
|
|
95
|
+
this.#tagText(span, outputData, OUTPUT_VALUE)
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
tagRetrievalIO (span, inputData, outputData) {
|
|
99
|
-
this
|
|
100
|
-
this
|
|
99
|
+
this.#tagText(span, inputData, INPUT_VALUE)
|
|
100
|
+
this.#tagDocuments(span, outputData, OUTPUT_DOCUMENTS)
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
tagTextIO (span, inputData, outputData) {
|
|
104
|
-
this
|
|
105
|
-
this
|
|
104
|
+
this.#tagText(span, inputData, INPUT_VALUE)
|
|
105
|
+
this.#tagText(span, outputData, OUTPUT_VALUE)
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
tagMetadata (span, metadata) {
|
|
@@ -135,7 +135,7 @@ class LLMObsTagger {
|
|
|
135
135
|
if (typeof value === 'number') {
|
|
136
136
|
filterdMetrics[processedKey] = value
|
|
137
137
|
} else {
|
|
138
|
-
this
|
|
138
|
+
this.#handleFailure(`Value for metric '${key}' must be a number, instead got ${value}`, 'invalid_metrics')
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
|
|
@@ -160,7 +160,7 @@ class LLMObsTagger {
|
|
|
160
160
|
this._setTag(span, SPAN_KIND, newKind)
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
#tagText (span, data, key) {
|
|
164
164
|
if (data) {
|
|
165
165
|
if (typeof data === 'string') {
|
|
166
166
|
this._setTag(span, key, data)
|
|
@@ -169,142 +169,156 @@ class LLMObsTagger {
|
|
|
169
169
|
this._setTag(span, key, JSON.stringify(data))
|
|
170
170
|
} catch {
|
|
171
171
|
const type = key === INPUT_VALUE ? 'input' : 'output'
|
|
172
|
-
this
|
|
172
|
+
this.#handleFailure(`Failed to parse ${type} value, must be JSON serializable.`, 'invalid_io_text')
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
if (data) {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
178
|
+
#tagDocuments (span, data, key) {
|
|
179
|
+
if (!data) {
|
|
180
|
+
return
|
|
181
|
+
}
|
|
183
182
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
183
|
+
if (!Array.isArray(data)) {
|
|
184
|
+
data = [data]
|
|
185
|
+
}
|
|
188
186
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}
|
|
187
|
+
const documents = []
|
|
188
|
+
for (const document of data) {
|
|
189
|
+
if (typeof document === 'string') {
|
|
190
|
+
documents.push({ text: document })
|
|
191
|
+
continue
|
|
192
|
+
}
|
|
193
193
|
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
if (document == null || typeof document !== 'object') {
|
|
195
|
+
this.#handleFailure('Documents must be a string, object, or list of objects.', 'invalid_embedding_io')
|
|
196
|
+
continue
|
|
197
|
+
}
|
|
196
198
|
|
|
197
|
-
|
|
198
|
-
this._handleFailure('Document text must be a string.', 'invalid_embedding_io')
|
|
199
|
-
validDocument = false
|
|
200
|
-
}
|
|
199
|
+
const { text, name, id, score } = document
|
|
201
200
|
|
|
202
|
-
|
|
201
|
+
const valid = typeof text === 'string'
|
|
202
|
+
if (!valid) {
|
|
203
|
+
this.#handleFailure('Document text must be a string.', 'invalid_embedding_io')
|
|
204
|
+
}
|
|
203
205
|
|
|
204
|
-
|
|
205
|
-
validDocument = this._tagConditionalString(id, 'Document ID', documentObj, 'id') && validDocument
|
|
206
|
-
validDocument = this._tagConditionalNumber(score, 'Document score', documentObj, 'score') && validDocument
|
|
206
|
+
const documentObj = { text }
|
|
207
207
|
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
const condition1 = this.#tagConditionalString(name, 'Document name', documentObj, 'name')
|
|
209
|
+
const condition2 = this.#tagConditionalString(id, 'Document ID', documentObj, 'id')
|
|
210
|
+
const condition3 = this.#tagConditionalNumber(score, 'Document score', documentObj, 'score')
|
|
210
211
|
|
|
211
|
-
if (
|
|
212
|
-
|
|
212
|
+
if (valid && condition1 && condition2 && condition3) {
|
|
213
|
+
documents.push(documentObj)
|
|
213
214
|
}
|
|
214
215
|
}
|
|
215
|
-
}
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}
|
|
217
|
+
if (documents.length) {
|
|
218
|
+
this._setTag(span, key, documents)
|
|
219
|
+
}
|
|
220
|
+
}
|
|
222
221
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
222
|
+
#filterToolCalls (toolCalls) {
|
|
223
|
+
if (!Array.isArray(toolCalls)) {
|
|
224
|
+
toolCalls = [toolCalls]
|
|
225
|
+
}
|
|
227
226
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
const filteredToolCalls = []
|
|
228
|
+
for (const toolCall of toolCalls) {
|
|
229
|
+
if (typeof toolCall !== 'object') {
|
|
230
|
+
this.#handleFailure('Tool call must be an object.', 'invalid_io_messages')
|
|
231
|
+
continue
|
|
232
|
+
}
|
|
232
233
|
|
|
233
|
-
|
|
234
|
+
const { name, arguments: args, toolId, type } = toolCall
|
|
235
|
+
const toolCallObj = {}
|
|
234
236
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
237
|
+
const condition1 = this.#tagConditionalString(name, 'Tool name', toolCallObj, 'name')
|
|
238
|
+
const condition2 = this.#tagConditionalObject(args, 'Tool arguments', toolCallObj, 'arguments')
|
|
239
|
+
const condition3 = this.#tagConditionalString(toolId, 'Tool ID', toolCallObj, 'tool_id')
|
|
240
|
+
const condition4 = this.#tagConditionalString(type, 'Tool type', toolCallObj, 'type')
|
|
238
241
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
242
|
+
if (condition1 && condition2 && condition3 && condition4) {
|
|
243
|
+
filteredToolCalls.push(toolCallObj)
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return filteredToolCalls
|
|
247
|
+
}
|
|
243
248
|
|
|
244
|
-
|
|
249
|
+
#tagMessages (span, data, key) {
|
|
250
|
+
if (!data) {
|
|
251
|
+
return
|
|
252
|
+
}
|
|
253
|
+
if (!Array.isArray(data)) {
|
|
254
|
+
data = [data]
|
|
255
|
+
}
|
|
245
256
|
|
|
246
|
-
|
|
247
|
-
if (!Array.isArray(toolCalls)) {
|
|
248
|
-
toolCalls = [toolCalls]
|
|
249
|
-
}
|
|
257
|
+
const messages = []
|
|
250
258
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
259
|
+
for (const message of data) {
|
|
260
|
+
if (typeof message === 'string') {
|
|
261
|
+
messages.push({ content: message })
|
|
262
|
+
continue
|
|
263
|
+
}
|
|
264
|
+
if (message == null || typeof message !== 'object') {
|
|
265
|
+
this.#handleFailure('Messages must be a string, object, or list of objects', 'invalid_io_messages')
|
|
266
|
+
continue
|
|
267
|
+
}
|
|
256
268
|
|
|
257
|
-
|
|
269
|
+
const { content = '', role } = message
|
|
270
|
+
const toolCalls = message.toolCalls
|
|
271
|
+
const messageObj = { content }
|
|
258
272
|
|
|
259
|
-
|
|
260
|
-
|
|
273
|
+
const valid = typeof content === 'string'
|
|
274
|
+
if (!valid) {
|
|
275
|
+
this.#handleFailure('Message content must be a string.', 'invalid_io_messages')
|
|
276
|
+
}
|
|
261
277
|
|
|
262
|
-
|
|
263
|
-
validTool = this._tagConditionalObject(args, 'Tool arguments', toolCallObj, 'arguments') && validTool
|
|
264
|
-
validTool = this._tagConditionalString(toolId, 'Tool ID', toolCallObj, 'tool_id') && validTool
|
|
265
|
-
validTool = this._tagConditionalString(type, 'Tool type', toolCallObj, 'type') && validTool
|
|
278
|
+
const condition = this.#tagConditionalString(role, 'Message role', messageObj, 'role')
|
|
266
279
|
|
|
267
|
-
|
|
268
|
-
|
|
280
|
+
if (toolCalls) {
|
|
281
|
+
const filteredToolCalls = this.#filterToolCalls(toolCalls)
|
|
269
282
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}
|
|
283
|
+
if (filteredToolCalls.length) {
|
|
284
|
+
messageObj.tool_calls = filteredToolCalls
|
|
273
285
|
}
|
|
286
|
+
}
|
|
274
287
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
if (messages.length) {
|
|
279
|
-
this._setTag(span, key, messages)
|
|
288
|
+
if (valid && condition) {
|
|
289
|
+
messages.push(messageObj)
|
|
280
290
|
}
|
|
281
291
|
}
|
|
292
|
+
|
|
293
|
+
if (messages.length) {
|
|
294
|
+
this._setTag(span, key, messages)
|
|
295
|
+
}
|
|
282
296
|
}
|
|
283
297
|
|
|
284
|
-
|
|
298
|
+
#tagConditionalString (data, type, carrier, key) {
|
|
285
299
|
if (!data) return true
|
|
286
300
|
if (typeof data !== 'string') {
|
|
287
|
-
this
|
|
301
|
+
this.#handleFailure(`"${type}" must be a string.`)
|
|
288
302
|
return false
|
|
289
303
|
}
|
|
290
304
|
carrier[key] = data
|
|
291
305
|
return true
|
|
292
306
|
}
|
|
293
307
|
|
|
294
|
-
|
|
308
|
+
#tagConditionalNumber (data, type, carrier, key) {
|
|
295
309
|
if (!data) return true
|
|
296
310
|
if (typeof data !== 'number') {
|
|
297
|
-
this
|
|
311
|
+
this.#handleFailure(`"${type}" must be a number.`)
|
|
298
312
|
return false
|
|
299
313
|
}
|
|
300
314
|
carrier[key] = data
|
|
301
315
|
return true
|
|
302
316
|
}
|
|
303
317
|
|
|
304
|
-
|
|
318
|
+
#tagConditionalObject (data, type, carrier, key) {
|
|
305
319
|
if (!data) return true
|
|
306
320
|
if (typeof data !== 'object') {
|
|
307
|
-
this
|
|
321
|
+
this.#handleFailure(`"${type}" must be an object.`)
|
|
308
322
|
return false
|
|
309
323
|
}
|
|
310
324
|
carrier[key] = data
|
|
@@ -313,7 +327,7 @@ class LLMObsTagger {
|
|
|
313
327
|
|
|
314
328
|
// any public-facing LLMObs APIs using this tagger should not soft fail
|
|
315
329
|
// auto-instrumentation should soft fail
|
|
316
|
-
|
|
330
|
+
#handleFailure (msg, errorTag) {
|
|
317
331
|
if (this.softFail) {
|
|
318
332
|
log.warn(msg)
|
|
319
333
|
} else {
|
|
@@ -328,7 +342,7 @@ class LLMObsTagger {
|
|
|
328
342
|
_register (span) {
|
|
329
343
|
if (!this._config.llmobs.enabled) return
|
|
330
344
|
if (registry.has(span)) {
|
|
331
|
-
this
|
|
345
|
+
this.#handleFailure(`LLMObs Span "${span._name}" already registered.`)
|
|
332
346
|
return
|
|
333
347
|
}
|
|
334
348
|
|
|
@@ -338,7 +352,7 @@ class LLMObsTagger {
|
|
|
338
352
|
_setTag (span, key, value) {
|
|
339
353
|
if (!this._config.llmobs.enabled) return
|
|
340
354
|
if (!registry.has(span)) {
|
|
341
|
-
this
|
|
355
|
+
this.#handleFailure(`Span "${span._name}" must be an LLMObs generated span.`)
|
|
342
356
|
return
|
|
343
357
|
}
|
|
344
358
|
|
|
@@ -2,15 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
const { SPAN_KINDS } = require('./constants/tags')
|
|
4
4
|
|
|
5
|
-
function encodeUnicode (str) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const code =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return char
|
|
13
|
-
}).join('')
|
|
5
|
+
function encodeUnicode (str = '') {
|
|
6
|
+
let result = ''
|
|
7
|
+
for (let i = 0; i < str.length; i++) {
|
|
8
|
+
const code = str.charCodeAt(i)
|
|
9
|
+
result += code > 127 ? `\\u${code.toString(16).padStart(4, '0')}` : str[i]
|
|
10
|
+
}
|
|
11
|
+
return result
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
function validateKind (kind) {
|
|
@@ -107,6 +105,8 @@ function findArgumentsBounds (str) {
|
|
|
107
105
|
let end = -1
|
|
108
106
|
let closerCount = 0
|
|
109
107
|
|
|
108
|
+
// TODO(BridgeAR): This "breaks" up codePoints.
|
|
109
|
+
// Investigate if this is a problem.
|
|
110
110
|
for (let i = 0; i < str.length; i++) {
|
|
111
111
|
const char = str[i]
|
|
112
112
|
|
|
@@ -157,7 +157,7 @@ class BaseLLMObsWriter {
|
|
|
157
157
|
return encodeUnicode(value) // serialize unicode characters
|
|
158
158
|
}
|
|
159
159
|
return value
|
|
160
|
-
}).replace(/\\\\u/g,
|
|
160
|
+
}).replace(/\\\\u/g, String.raw`\u`) // remove double escaping
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -27,7 +27,7 @@ function setAgentStrategy (config, setWritersAgentlessValue) {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
const endpoints = agentInfo.endpoints
|
|
30
|
-
const hasEndpoint = Array.isArray(endpoints) && endpoints.
|
|
30
|
+
const hasEndpoint = Array.isArray(endpoints) && endpoints.includes(EVP_PROXY_AGENT_BASE_PATH)
|
|
31
31
|
setWritersAgentlessValue(!hasEndpoint)
|
|
32
32
|
})
|
|
33
33
|
}
|
|
@@ -95,7 +95,7 @@ const log = {
|
|
|
95
95
|
return this._deprecate(code, message)
|
|
96
96
|
},
|
|
97
97
|
|
|
98
|
-
isEnabled (fleetStableConfigValue
|
|
98
|
+
isEnabled (fleetStableConfigValue, localStableConfigValue) {
|
|
99
99
|
return isTrue(coalesce(
|
|
100
100
|
fleetStableConfigValue,
|
|
101
101
|
process.env?.DD_TRACE_DEBUG,
|
|
@@ -106,9 +106,9 @@ const log = {
|
|
|
106
106
|
},
|
|
107
107
|
|
|
108
108
|
getLogLevel (
|
|
109
|
-
optionsValue
|
|
110
|
-
fleetStableConfigValue
|
|
111
|
-
localStableConfigValue
|
|
109
|
+
optionsValue,
|
|
110
|
+
fleetStableConfigValue,
|
|
111
|
+
localStableConfigValue
|
|
112
112
|
) {
|
|
113
113
|
return coalesce(
|
|
114
114
|
optionsValue,
|
|
@@ -23,7 +23,7 @@ class Log {
|
|
|
23
23
|
static parse (...args) {
|
|
24
24
|
let message, cause, delegate
|
|
25
25
|
|
|
26
|
-
const lastArg = args
|
|
26
|
+
const lastArg = args.at(-1)
|
|
27
27
|
if (lastArg && typeof lastArg === 'object' && lastArg.stack) { // lastArg instanceof Error?
|
|
28
28
|
cause = args.pop()
|
|
29
29
|
}
|
|
@@ -42,7 +42,7 @@ function toggle (enable, level) {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
function use (newLogger) {
|
|
45
|
-
if (
|
|
45
|
+
if (typeof newLogger?.debug === 'function' && typeof newLogger.error === 'function') {
|
|
46
46
|
logger = newLogger
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -54,7 +54,7 @@ function reset () {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
function getErrorLog (err) {
|
|
57
|
-
if (
|
|
57
|
+
if (typeof err?.delegate === 'function') {
|
|
58
58
|
const result = err.delegate()
|
|
59
59
|
return Array.isArray(result) ? Log.parse(...result) : Log.parse(result)
|
|
60
60
|
} else {
|
|
@@ -21,10 +21,10 @@ class Chunk {
|
|
|
21
21
|
|
|
22
22
|
if (length < 0x20) { // fixstr
|
|
23
23
|
this.reserve(length + 1)
|
|
24
|
-
this.buffer[offset] = length |
|
|
25
|
-
} else if (length <
|
|
24
|
+
this.buffer[offset] = length | 0xA0
|
|
25
|
+
} else if (length < 0x1_00_00_00_00) { // str 32
|
|
26
26
|
this.reserve(length + 5)
|
|
27
|
-
this.buffer[offset] =
|
|
27
|
+
this.buffer[offset] = 0xDB
|
|
28
28
|
this.buffer[offset + 1] = length >> 24
|
|
29
29
|
this.buffer[offset + 2] = length >> 16
|
|
30
30
|
this.buffer[offset + 3] = length >> 8
|
|
@@ -49,14 +49,14 @@ class MsgpackEncoder {
|
|
|
49
49
|
const offset = bytes.length
|
|
50
50
|
|
|
51
51
|
bytes.reserve(1)
|
|
52
|
-
bytes.buffer[offset] =
|
|
52
|
+
bytes.buffer[offset] = 0xC0
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
encodeBoolean (bytes, value) {
|
|
56
56
|
const offset = bytes.length
|
|
57
57
|
|
|
58
58
|
bytes.reserve(1)
|
|
59
|
-
bytes.buffer[offset] = value ?
|
|
59
|
+
bytes.buffer[offset] = value ? 0xC3 : 0xC2
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
encodeString (bytes, value) {
|
|
@@ -75,7 +75,7 @@ class MsgpackEncoder {
|
|
|
75
75
|
const offset = bytes.length
|
|
76
76
|
|
|
77
77
|
bytes.reserve(5)
|
|
78
|
-
bytes.buffer[offset] =
|
|
78
|
+
bytes.buffer[offset] = 0xDD
|
|
79
79
|
bytes.buffer[offset + 1] = length >> 24
|
|
80
80
|
bytes.buffer[offset + 2] = length >> 16
|
|
81
81
|
bytes.buffer[offset + 3] = length >> 8
|
|
@@ -105,7 +105,7 @@ class MsgpackEncoder {
|
|
|
105
105
|
const offset = bytes.length
|
|
106
106
|
|
|
107
107
|
bytes.reserve(5)
|
|
108
|
-
bytes.buffer[offset] =
|
|
108
|
+
bytes.buffer[offset] = 0xDF
|
|
109
109
|
bytes.buffer[offset + 1] = keysLength >> 24
|
|
110
110
|
bytes.buffer[offset + 2] = keysLength >> 16
|
|
111
111
|
bytes.buffer[offset + 3] = keysLength >> 8
|
|
@@ -122,16 +122,16 @@ class MsgpackEncoder {
|
|
|
122
122
|
|
|
123
123
|
if (value.byteLength < 256) {
|
|
124
124
|
bytes.reserve(2)
|
|
125
|
-
bytes.buffer[offset] =
|
|
125
|
+
bytes.buffer[offset] = 0xC4
|
|
126
126
|
bytes.buffer[offset + 1] = value.byteLength
|
|
127
|
-
} else if (value.byteLength <
|
|
127
|
+
} else if (value.byteLength < 65_536) {
|
|
128
128
|
bytes.reserve(3)
|
|
129
|
-
bytes.buffer[offset] =
|
|
129
|
+
bytes.buffer[offset] = 0xC5
|
|
130
130
|
bytes.buffer[offset + 1] = value.byteLength >> 8
|
|
131
131
|
bytes.buffer[offset + 2] = value.byteLength
|
|
132
132
|
} else {
|
|
133
133
|
bytes.reserve(5)
|
|
134
|
-
bytes.buffer[offset] =
|
|
134
|
+
bytes.buffer[offset] = 0xC6
|
|
135
135
|
bytes.buffer[offset + 1] = value.byteLength >> 24
|
|
136
136
|
bytes.buffer[offset + 2] = value.byteLength >> 16
|
|
137
137
|
bytes.buffer[offset + 3] = value.byteLength >> 8
|
|
@@ -145,7 +145,7 @@ class MsgpackEncoder {
|
|
|
145
145
|
const offset = bytes.length
|
|
146
146
|
|
|
147
147
|
bytes.reserve(5)
|
|
148
|
-
bytes.buffer[offset] =
|
|
148
|
+
bytes.buffer[offset] = 0xCE
|
|
149
149
|
bytes.buffer[offset + 1] = value >> 24
|
|
150
150
|
bytes.buffer[offset + 2] = value >> 16
|
|
151
151
|
bytes.buffer[offset + 3] = value >> 8
|
|
@@ -156,7 +156,7 @@ class MsgpackEncoder {
|
|
|
156
156
|
const offset = bytes.length
|
|
157
157
|
|
|
158
158
|
bytes.reserve(3)
|
|
159
|
-
bytes.buffer[offset] =
|
|
159
|
+
bytes.buffer[offset] = 0xCD
|
|
160
160
|
bytes.buffer[offset + 1] = value >> 8
|
|
161
161
|
bytes.buffer[offset + 2] = value
|
|
162
162
|
}
|
|
@@ -167,7 +167,7 @@ class MsgpackEncoder {
|
|
|
167
167
|
const lo = value >>> 0
|
|
168
168
|
|
|
169
169
|
bytes.reserve(9)
|
|
170
|
-
bytes.buffer[offset] =
|
|
170
|
+
bytes.buffer[offset] = 0xCF
|
|
171
171
|
bytes.buffer[offset + 1] = hi >> 24
|
|
172
172
|
bytes.buffer[offset + 2] = hi >> 16
|
|
173
173
|
bytes.buffer[offset + 3] = hi >> 8
|
|
@@ -201,16 +201,16 @@ class MsgpackEncoder {
|
|
|
201
201
|
bytes.buffer[offset] = value
|
|
202
202
|
} else if (value >= -0x80) {
|
|
203
203
|
bytes.reserve(2)
|
|
204
|
-
bytes.buffer[offset] =
|
|
204
|
+
bytes.buffer[offset] = 0xD0
|
|
205
205
|
bytes.buffer[offset + 1] = value
|
|
206
|
-
} else if (value >= -
|
|
206
|
+
} else if (value >= -0x80_00) {
|
|
207
207
|
bytes.reserve(3)
|
|
208
|
-
bytes.buffer[offset] =
|
|
208
|
+
bytes.buffer[offset] = 0xD1
|
|
209
209
|
bytes.buffer[offset + 1] = value >> 8
|
|
210
210
|
bytes.buffer[offset + 2] = value
|
|
211
|
-
} else if (value >= -
|
|
211
|
+
} else if (value >= -0x80_00_00_00) {
|
|
212
212
|
bytes.reserve(5)
|
|
213
|
-
bytes.buffer[offset] =
|
|
213
|
+
bytes.buffer[offset] = 0xD2
|
|
214
214
|
bytes.buffer[offset + 1] = value >> 24
|
|
215
215
|
bytes.buffer[offset + 2] = value >> 16
|
|
216
216
|
bytes.buffer[offset + 3] = value >> 8
|
|
@@ -220,7 +220,7 @@ class MsgpackEncoder {
|
|
|
220
220
|
const lo = value >>> 0
|
|
221
221
|
|
|
222
222
|
bytes.reserve(9)
|
|
223
|
-
bytes.buffer[offset] =
|
|
223
|
+
bytes.buffer[offset] = 0xD3
|
|
224
224
|
bytes.buffer[offset + 1] = hi >> 24
|
|
225
225
|
bytes.buffer[offset + 2] = hi >> 16
|
|
226
226
|
bytes.buffer[offset + 3] = hi >> 8
|
|
@@ -235,21 +235,21 @@ class MsgpackEncoder {
|
|
|
235
235
|
encodeUnsigned (bytes, value) {
|
|
236
236
|
const offset = bytes.length
|
|
237
237
|
|
|
238
|
-
if (value <=
|
|
238
|
+
if (value <= 0x7F) {
|
|
239
239
|
bytes.reserve(1)
|
|
240
240
|
bytes.buffer[offset] = value
|
|
241
|
-
} else if (value <=
|
|
241
|
+
} else if (value <= 0xFF) {
|
|
242
242
|
bytes.reserve(2)
|
|
243
|
-
bytes.buffer[offset] =
|
|
243
|
+
bytes.buffer[offset] = 0xCC
|
|
244
244
|
bytes.buffer[offset + 1] = value
|
|
245
|
-
} else if (value <=
|
|
245
|
+
} else if (value <= 0xFF_FF) {
|
|
246
246
|
bytes.reserve(3)
|
|
247
|
-
bytes.buffer[offset] =
|
|
247
|
+
bytes.buffer[offset] = 0xCD
|
|
248
248
|
bytes.buffer[offset + 1] = value >> 8
|
|
249
249
|
bytes.buffer[offset + 2] = value
|
|
250
|
-
} else if (value <=
|
|
250
|
+
} else if (value <= 0xFF_FF_FF_FF) {
|
|
251
251
|
bytes.reserve(5)
|
|
252
|
-
bytes.buffer[offset] =
|
|
252
|
+
bytes.buffer[offset] = 0xCE
|
|
253
253
|
bytes.buffer[offset + 1] = value >> 24
|
|
254
254
|
bytes.buffer[offset + 2] = value >> 16
|
|
255
255
|
bytes.buffer[offset + 3] = value >> 8
|
|
@@ -259,7 +259,7 @@ class MsgpackEncoder {
|
|
|
259
259
|
const lo = value >>> 0
|
|
260
260
|
|
|
261
261
|
bytes.reserve(9)
|
|
262
|
-
bytes.buffer[offset] =
|
|
262
|
+
bytes.buffer[offset] = 0xCF
|
|
263
263
|
bytes.buffer[offset + 1] = hi >> 24
|
|
264
264
|
bytes.buffer[offset + 2] = hi >> 16
|
|
265
265
|
bytes.buffer[offset + 3] = hi >> 8
|
|
@@ -278,10 +278,10 @@ class MsgpackEncoder {
|
|
|
278
278
|
bytes.reserve(9)
|
|
279
279
|
|
|
280
280
|
if (value >= 0n) {
|
|
281
|
-
bytes.buffer[offset] =
|
|
281
|
+
bytes.buffer[offset] = 0xCF
|
|
282
282
|
bytes.view.setBigUint64(offset + 1, value)
|
|
283
283
|
} else {
|
|
284
|
-
bytes.buffer[offset] =
|
|
284
|
+
bytes.buffer[offset] = 0xD3
|
|
285
285
|
bytes.view.setBigInt64(offset + 1, value)
|
|
286
286
|
}
|
|
287
287
|
}
|
|
@@ -301,7 +301,7 @@ class MsgpackEncoder {
|
|
|
301
301
|
const offset = bytes.length
|
|
302
302
|
|
|
303
303
|
bytes.reserve(9)
|
|
304
|
-
bytes.buffer[offset] =
|
|
304
|
+
bytes.buffer[offset] = 0xCB
|
|
305
305
|
bytes.view.setFloat64(offset + 1, value)
|
|
306
306
|
}
|
|
307
307
|
}
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
* @implements {DogStatsD}
|
|
4
4
|
*/
|
|
5
5
|
module.exports = class NoopDogStatsDClient {
|
|
6
|
-
increment () {
|
|
6
|
+
increment () {}
|
|
7
7
|
|
|
8
|
-
decrement () {
|
|
8
|
+
decrement () {}
|
|
9
9
|
|
|
10
|
-
gauge () {
|
|
10
|
+
gauge () {}
|
|
11
11
|
|
|
12
|
-
distribution () {
|
|
12
|
+
distribution () {}
|
|
13
13
|
|
|
14
|
-
histogram () {
|
|
14
|
+
histogram () {}
|
|
15
15
|
|
|
16
|
-
flush () {
|
|
16
|
+
flush () {}
|
|
17
17
|
}
|
|
@@ -30,21 +30,19 @@ class NoopSpan {
|
|
|
30
30
|
_createContext (parent) {
|
|
31
31
|
const spanId = id()
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
return parent
|
|
34
|
+
? new NoopSpanContext({
|
|
35
35
|
noop: this,
|
|
36
36
|
traceId: parent._traceId,
|
|
37
37
|
spanId,
|
|
38
38
|
parentId: parent._spanId,
|
|
39
39
|
baggageItems: Object.assign({}, parent._baggageItems)
|
|
40
40
|
})
|
|
41
|
-
|
|
42
|
-
return new NoopSpanContext({
|
|
41
|
+
: new NoopSpanContext({
|
|
43
42
|
noop: this,
|
|
44
43
|
traceId: spanId,
|
|
45
44
|
spanId
|
|
46
45
|
})
|
|
47
|
-
}
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
48
|
|