dd-trace 5.55.0 → 5.57.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 +1 -0
- package/index.d.ts +44 -2
- package/init.js +4 -1
- package/package.json +24 -23
- package/packages/datadog-core/src/utils/src/set.js +8 -10
- package/packages/datadog-esbuild/index.js +22 -0
- package/packages/datadog-instrumentations/src/cassandra-driver.js +43 -60
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +12 -12
- package/packages/datadog-instrumentations/src/cucumber.js +4 -6
- package/packages/datadog-instrumentations/src/elasticsearch.js +16 -19
- package/packages/datadog-instrumentations/src/fastify.js +91 -9
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +20 -5
- package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/register.js +17 -5
- package/packages/datadog-instrumentations/src/ioredis.js +8 -13
- package/packages/datadog-instrumentations/src/iovalkey.js +10 -14
- package/packages/datadog-instrumentations/src/jest.js +423 -325
- package/packages/datadog-instrumentations/src/memcached.js +17 -24
- package/packages/datadog-instrumentations/src/mocha/main.js +7 -6
- package/packages/datadog-instrumentations/src/moleculer/client.js +9 -10
- package/packages/datadog-instrumentations/src/moleculer/server.js +12 -13
- package/packages/datadog-instrumentations/src/openai.js +30 -2
- package/packages/datadog-instrumentations/src/playwright.js +4 -1
- package/packages/datadog-instrumentations/src/prisma.js +116 -0
- package/packages/datadog-instrumentations/src/redis.js +32 -43
- package/packages/datadog-instrumentations/src/router.js +1 -1
- package/packages/datadog-instrumentations/src/sharedb.js +10 -16
- package/packages/datadog-instrumentations/src/vitest.js +4 -4
- package/packages/datadog-plugin-aws-sdk/src/base.js +6 -1
- package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +9 -4
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +3 -2
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +2 -1
- package/packages/datadog-plugin-aws-sdk/src/util.js +2 -2
- package/packages/datadog-plugin-azure-functions/src/index.js +5 -4
- package/packages/datadog-plugin-bunyan/src/index.js +2 -2
- package/packages/datadog-plugin-cassandra-driver/src/index.js +6 -2
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/batch-consumer.js +1 -1
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/consumer.js +1 -1
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/producer.js +1 -1
- package/packages/datadog-plugin-cucumber/src/index.js +4 -2
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +9 -5
- package/packages/datadog-plugin-elasticsearch/src/index.js +12 -4
- package/packages/datadog-plugin-http/src/client.js +1 -0
- package/packages/datadog-plugin-http/src/server.js +2 -1
- package/packages/datadog-plugin-http2/src/client.js +1 -0
- package/packages/datadog-plugin-http2/src/server.js +1 -0
- package/packages/datadog-plugin-jest/src/index.js +4 -3
- package/packages/datadog-plugin-memcached/src/index.js +6 -2
- package/packages/datadog-plugin-mocha/src/index.js +3 -2
- package/packages/datadog-plugin-moleculer/src/client.js +15 -9
- package/packages/datadog-plugin-moleculer/src/server.js +9 -5
- package/packages/datadog-plugin-next/src/index.js +2 -1
- package/packages/datadog-plugin-openai/src/tracing.js +127 -80
- package/packages/datadog-plugin-oracledb/src/index.js +2 -1
- package/packages/datadog-plugin-pino/src/index.js +2 -2
- package/packages/datadog-plugin-prisma/src/client.js +62 -0
- package/packages/datadog-plugin-prisma/src/engine.js +81 -0
- package/packages/datadog-plugin-prisma/src/index.js +22 -0
- package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +1 -1
- package/packages/datadog-plugin-redis/src/index.js +9 -3
- package/packages/datadog-plugin-router/src/index.js +1 -0
- package/packages/datadog-plugin-sharedb/src/index.js +13 -5
- package/packages/datadog-plugin-winston/src/index.js +2 -2
- package/packages/dd-trace/src/appsec/channels.js +26 -21
- package/packages/dd-trace/src/appsec/iast/analyzers/sql-injection-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +13 -20
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +44 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +7 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +0 -1
- package/packages/dd-trace/src/appsec/index.js +28 -2
- package/packages/dd-trace/src/appsec/rasp/utils.js +0 -5
- package/packages/dd-trace/src/appsec/reporter.js +6 -4
- package/packages/dd-trace/src/baggage.js +2 -2
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +3 -3
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +1 -1
- 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 +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +6 -6
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +2 -3
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +3 -3
- package/packages/dd-trace/src/config.js +334 -312
- package/packages/dd-trace/src/constants.js +2 -1
- package/packages/dd-trace/src/crashtracking/crashtracker.js +12 -14
- package/packages/dd-trace/src/datastreams/context.js +1 -1
- package/packages/dd-trace/src/datastreams/processor.js +1 -1
- package/packages/dd-trace/src/datastreams/writer.js +3 -3
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +6 -3
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/index.js +2 -3
- package/packages/dd-trace/src/debugger/devtools_client/send.js +5 -1
- package/packages/dd-trace/src/debugger/devtools_client/state.js +7 -4
- package/packages/dd-trace/src/debugger/devtools_client/status.js +5 -1
- package/packages/dd-trace/src/dogstatsd.js +3 -3
- package/packages/dd-trace/src/exporters/agent/index.js +10 -5
- package/packages/dd-trace/src/exporters/agent/writer.js +4 -2
- package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +2 -2
- package/packages/dd-trace/src/exporters/log/index.js +1 -1
- package/packages/dd-trace/src/exporters/span-stats/writer.js +2 -2
- package/packages/dd-trace/src/guardrails/index.js +3 -1
- package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
- package/packages/dd-trace/src/llmobs/index.js +11 -5
- package/packages/dd-trace/src/llmobs/plugins/base.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +1 -1
- package/packages/dd-trace/src/llmobs/tagger.js +13 -13
- package/packages/dd-trace/src/llmobs/writers/base.js +2 -2
- package/packages/dd-trace/src/llmobs/writers/spans.js +2 -2
- package/packages/dd-trace/src/opentelemetry/tracer.js +1 -1
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +22 -28
- package/packages/dd-trace/src/opentracing/span.js +1 -0
- package/packages/dd-trace/src/plugin_manager.js +3 -3
- package/packages/dd-trace/src/plugins/cache.js +2 -2
- package/packages/dd-trace/src/plugins/ci_plugin.js +11 -7
- package/packages/dd-trace/src/plugins/database.js +3 -1
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/log_plugin.js +5 -1
- package/packages/dd-trace/src/plugins/outbound.js +8 -6
- package/packages/dd-trace/src/plugins/structured_log_plugin.js +9 -0
- package/packages/dd-trace/src/plugins/tracing.js +1 -1
- package/packages/dd-trace/src/plugins/util/ci.js +83 -30
- package/packages/dd-trace/src/plugins/util/git.js +1 -0
- package/packages/dd-trace/src/plugins/util/inferred_proxy.js +3 -2
- package/packages/dd-trace/src/plugins/util/ip_extractor.js +1 -0
- package/packages/dd-trace/src/plugins/util/tags.js +4 -1
- package/packages/dd-trace/src/plugins/util/test.js +80 -10
- package/packages/dd-trace/src/plugins/util/web.js +1 -0
- package/packages/dd-trace/src/profiler.js +0 -2
- package/packages/dd-trace/src/profiling/exporter_cli.js +1 -3
- package/packages/dd-trace/src/profiling/profilers/events.js +10 -2
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +18 -126
- package/packages/dd-trace/src/proxy.js +12 -27
- package/packages/dd-trace/src/runtime_metrics/index.js +1 -1
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +14 -45
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +2 -2
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +4 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +2 -2
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +4 -0
- package/packages/dd-trace/src/supported-configurations.json +13 -3
- package/packages/dd-trace/src/telemetry/telemetry.js +11 -4
- package/packages/dd-trace/src/tracer.js +11 -0
- package/packages/dd-trace/src/tracer_metadata.js +25 -0
- package/packages/dd-trace/src/util.js +11 -4
- package/version.js +3 -1
- package/packages/datadog-core/src/utils/src/get.js +0 -11
- package/packages/datadog-core/src/utils/src/has.js +0 -14
- package/packages/dd-trace/src/profiling/ssi-telemetry-mock-profiler.js +0 -30
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"supportedConfigurations": {
|
|
3
3
|
"DD_AAS_DOTNET_EXTENSION_VERSION": ["A"],
|
|
4
|
+
"DD_ACTION_EXECUTION_ID": ["A"],
|
|
4
5
|
"DD_AGENT_HOST": ["A"],
|
|
5
6
|
"DD_AGENTLESS_LOG_SUBMISSION_ENABLED": ["A"],
|
|
6
7
|
"DD_AGENTLESS_LOG_SUBMISSION_URL": ["A"],
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
"DD_CODE_ORIGIN_FOR_SPANS_ENABLED": ["A"],
|
|
50
51
|
"DD_CODE_ORIGIN_FOR_SPANS_EXPERIMENTAL_EXIT_SPANS_ENABLED": ["A"],
|
|
51
52
|
"DD_CRASHTRACKING_ENABLED": ["A"],
|
|
53
|
+
"DD_CUSTOM_TRACE_ID": ["A"],
|
|
52
54
|
"DD_DATA_STREAMS_ENABLED": ["A"],
|
|
53
55
|
"DD_DBM_PROPAGATION_MODE": ["A"],
|
|
54
56
|
"DD_DOGSTATSD_HOST": ["A"],
|
|
@@ -56,6 +58,7 @@
|
|
|
56
58
|
"DD_DYNAMIC_INSTRUMENTATION_ENABLED": ["A"],
|
|
57
59
|
"DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS": ["A"],
|
|
58
60
|
"DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS": ["A"],
|
|
61
|
+
"DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS": ["A"],
|
|
59
62
|
"DD_ENV": ["A"],
|
|
60
63
|
"DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED": ["A"],
|
|
61
64
|
"DD_EXTERNAL_ENV": ["A"],
|
|
@@ -71,6 +74,8 @@
|
|
|
71
74
|
"DD_GIT_PROPERTIES_FILE": ["A"],
|
|
72
75
|
"DD_GIT_REPOSITORY_URL": ["A"],
|
|
73
76
|
"DD_GIT_TAG": ["A"],
|
|
77
|
+
"DD_GIT_PULL_REQUEST_BASE_BRANCH": ["A"],
|
|
78
|
+
"DD_GIT_PULL_REQUEST_BASE_BRANCH_SHA": ["A"],
|
|
74
79
|
"DD_GRPC_CLIENT_ERROR_STATUSES": ["A"],
|
|
75
80
|
"DD_GRPC_SERVER_ERROR_STATUSES": ["A"],
|
|
76
81
|
"DD_IAST_DB_ROWS_TO_TAINT": ["A"],
|
|
@@ -105,6 +110,7 @@
|
|
|
105
110
|
"DD_MINI_AGENT_PATH": ["A"],
|
|
106
111
|
"DD_OPENAI_LOGS_ENABLED": ["A"],
|
|
107
112
|
"DD_OPENAI_SPAN_CHAR_LIMIT": ["A"],
|
|
113
|
+
"DD_PIPELINE_EXECUTION_ID": ["A"],
|
|
108
114
|
"DD_PLAYWRIGHT_WORKER": ["A"],
|
|
109
115
|
"DD_PROFILING_CODEHOTSPOTS_ENABLED": ["A"],
|
|
110
116
|
"DD_PROFILING_CPU_ENABLED": ["A"],
|
|
@@ -125,7 +131,10 @@
|
|
|
125
131
|
"DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS": ["A"],
|
|
126
132
|
"DD_REMOTE_CONFIGURATION_ENABLED": ["A"],
|
|
127
133
|
"DD_RUNTIME_METRICS_ENABLED": ["A"],
|
|
134
|
+
"DD_RUNTIME_METRICS_EVENT_LOOP_ENABLED": ["A"],
|
|
135
|
+
"DD_RUNTIME_METRICS_GC_ENABLED": ["A"],
|
|
128
136
|
"DD_RUNTIME_METRICS_FLUSH_INTERVAL": ["A"],
|
|
137
|
+
"DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED": ["A"],
|
|
129
138
|
"DD_SERVICE_MAPPING": ["A"],
|
|
130
139
|
"DD_SERVICE": ["A"],
|
|
131
140
|
"DD_SITE": ["A"],
|
|
@@ -144,7 +153,6 @@
|
|
|
144
153
|
"DD_TEST_MANAGEMENT_ATTEMPT_TO_FIX_RETRIES": ["A"],
|
|
145
154
|
"DD_TEST_MANAGEMENT_ENABLED": ["A"],
|
|
146
155
|
"DD_TEST_SESSION_NAME": ["A"],
|
|
147
|
-
"DD_TRACE__CONFLUENTINC_KAFKA_JAVASCRIPT_ENABLED": ["A"],
|
|
148
156
|
"DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED": ["A"],
|
|
149
157
|
"DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED": ["A"],
|
|
150
158
|
"DD_TRACE_AEROSPIKE_ENABLED": ["A"],
|
|
@@ -237,7 +245,6 @@
|
|
|
237
245
|
"DD_TRACE_EXPERIMENTAL_B3_ENABLED": ["A"],
|
|
238
246
|
"DD_TRACE_EXPERIMENTAL_EXPORTER": ["A"],
|
|
239
247
|
"DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED": ["A"],
|
|
240
|
-
"DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED": ["A"],
|
|
241
248
|
"DD_TRACE_EXPERIMENTAL_SPAN_COUNTS": ["A"],
|
|
242
249
|
"DD_TRACE_EXPERIMENTAL_STATE_TRACKING": ["A"],
|
|
243
250
|
"DD_TRACE_EXPRESS_ENABLED": ["A"],
|
|
@@ -350,6 +357,7 @@
|
|
|
350
357
|
"DD_TRACE_PLAYWRIGHT_CORE_ENABLED": ["A"],
|
|
351
358
|
"DD_TRACE_PLAYWRIGHT_ENABLED": ["A"],
|
|
352
359
|
"DD_TRACE_PLAYWRIGHT_TEST_ENABLED": ["A"],
|
|
360
|
+
"DD_TRACE_PRISMA_ENABLED": ["A"],
|
|
353
361
|
"DD_TRACE_PROCESS_ENABLED": ["A"],
|
|
354
362
|
"DD_TRACE_PROMISE_ENABLED": ["A"],
|
|
355
363
|
"DD_TRACE_PROMISE_JS_ENABLED": ["A"],
|
|
@@ -426,6 +434,7 @@
|
|
|
426
434
|
"DD_PROFILING_ENDPOINT_COLLECTION_ENABLED": ["DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED"],
|
|
427
435
|
"DD_PROFILING_TIMELINE_ENABLED": ["DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED"],
|
|
428
436
|
"DD_REMOTE_CONFIGURATION_ENABLED": ["DD_REMOTE_CONFIG_ENABLED" ],
|
|
437
|
+
"DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED": ["DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED"],
|
|
429
438
|
"DD_SERVICE": ["DD_SERVICE_NAME"],
|
|
430
439
|
"DD_TRACE_AGENT_URL": ["DD_TRACE_URL"]
|
|
431
440
|
},
|
|
@@ -434,6 +443,7 @@
|
|
|
434
443
|
"DD_PROFILING_EXPERIMENTAL_CPU_ENABLED": "DD_PROFILING_CPU_ENABLED",
|
|
435
444
|
"DD_EXPERIMENTAL_PROFILING_ENABLED": "DD_PROFILING_ENABLED",
|
|
436
445
|
"DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED": "DD_PROFILING_CODEHOTSPOTS_ENABLED",
|
|
437
|
-
"DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED": "DD_PROFILING_TIMELINE_ENABLED"
|
|
446
|
+
"DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED": "DD_PROFILING_TIMELINE_ENABLED",
|
|
447
|
+
"DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED": "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED"
|
|
438
448
|
}
|
|
439
449
|
}
|
|
@@ -28,6 +28,8 @@ const extendedHeartbeatPayload = {}
|
|
|
28
28
|
|
|
29
29
|
const sentIntegrations = new Set()
|
|
30
30
|
|
|
31
|
+
let seqId = 0
|
|
32
|
+
|
|
31
33
|
function getRetryData () {
|
|
32
34
|
return retryData
|
|
33
35
|
}
|
|
@@ -319,7 +321,11 @@ const nameMapping = {
|
|
|
319
321
|
clientIpHeader: 'DD_TRACE_CLIENT_IP_HEADER',
|
|
320
322
|
'grpc.client.error.statuses': 'DD_GRPC_CLIENT_ERROR_STATUSES',
|
|
321
323
|
'grpc.server.error.statuses': 'DD_GRPC_SERVER_ERROR_STATUSES',
|
|
322
|
-
traceId128BitLoggingEnabled: 'DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED'
|
|
324
|
+
traceId128BitLoggingEnabled: 'DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED',
|
|
325
|
+
instrumentationSource: 'instrumentation_source',
|
|
326
|
+
injectionEnabled: 'ssi_injection_enabled',
|
|
327
|
+
injectForce: 'ssi_forced_injection_enabled',
|
|
328
|
+
'runtimeMetrics.enabled': 'runtimeMetrics'
|
|
323
329
|
}
|
|
324
330
|
|
|
325
331
|
const namesNeedFormatting = new Set(['DD_TAGS', 'peerServiceMapping', 'serviceMapping'])
|
|
@@ -337,9 +343,8 @@ function updateConfig (changes, config) {
|
|
|
337
343
|
|
|
338
344
|
for (const change of changes) {
|
|
339
345
|
const name = nameMapping[change.name] || change.name
|
|
340
|
-
|
|
341
346
|
const { origin, value } = change
|
|
342
|
-
const entry = { name, value, origin }
|
|
347
|
+
const entry = { name, value, origin, seq_id: seqId++ }
|
|
343
348
|
|
|
344
349
|
if (namesNeedFormatting.has(entry.name)) {
|
|
345
350
|
entry.value = formatMapForTelemetry(entry.value)
|
|
@@ -352,7 +357,9 @@ function updateConfig (changes, config) {
|
|
|
352
357
|
} else if (Array.isArray(entry.value)) {
|
|
353
358
|
entry.value = value.join(',')
|
|
354
359
|
}
|
|
355
|
-
|
|
360
|
+
|
|
361
|
+
// Use composite key to support multiple origins for same config name
|
|
362
|
+
configWithOrigin.set(`${name}|${origin}`, entry)
|
|
356
363
|
}
|
|
357
364
|
|
|
358
365
|
if (changed) {
|
|
@@ -24,6 +24,17 @@ class DatadogTracer extends Tracer {
|
|
|
24
24
|
this._scope = new Scope()
|
|
25
25
|
setStartupLogConfig(config)
|
|
26
26
|
flushStartupLogs(log)
|
|
27
|
+
|
|
28
|
+
if (!config._isInServerlessEnvironment()) {
|
|
29
|
+
const storeConfig = require('./tracer_metadata')
|
|
30
|
+
// Keep a reference to the handle, to keep the memfd alive in memory.
|
|
31
|
+
// It is read by the service discovery feature.
|
|
32
|
+
const metadata = storeConfig(config)
|
|
33
|
+
if (metadata === undefined) {
|
|
34
|
+
log.warn('Could not store tracer configuration for service discovery')
|
|
35
|
+
}
|
|
36
|
+
this._inmem_cfg = metadata
|
|
37
|
+
}
|
|
27
38
|
}
|
|
28
39
|
|
|
29
40
|
configure (config) {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
// Load binding first to not import other modules if it throws
|
|
4
|
+
const libdatadog = require('@datadog/libdatadog')
|
|
5
|
+
const tracerVersion = require('../../../version').VERSION
|
|
6
|
+
|
|
7
|
+
function storeConfig (config) {
|
|
8
|
+
const processDiscovery = libdatadog.maybeLoad('process-discovery')
|
|
9
|
+
if (processDiscovery === undefined) {
|
|
10
|
+
return
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const metadata = new processDiscovery.TracerMetadata(
|
|
14
|
+
config.tags['runtime-id'],
|
|
15
|
+
tracerVersion,
|
|
16
|
+
config.hostname,
|
|
17
|
+
config.server || null,
|
|
18
|
+
config.env || null,
|
|
19
|
+
config.version || null
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
return processDiscovery.storeMetadata(metadata)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = storeConfig
|
|
@@ -61,12 +61,10 @@ function globMatch (pattern, subject) {
|
|
|
61
61
|
return true
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
// TODO: this adds stack traces relative to packages/
|
|
65
|
-
// shouldn't paths be relative to the root of dd-trace?
|
|
66
64
|
function calculateDDBasePath (dirname) {
|
|
67
65
|
const dirSteps = dirname.split(path.sep)
|
|
68
66
|
const packagesIndex = dirSteps.lastIndexOf('packages')
|
|
69
|
-
return dirSteps.slice(0, packagesIndex
|
|
67
|
+
return dirSteps.slice(0, packagesIndex).join(path.sep) + path.sep
|
|
70
68
|
}
|
|
71
69
|
|
|
72
70
|
function normalizeProfilingEnabledValue (configValue) {
|
|
@@ -77,11 +75,20 @@ function normalizeProfilingEnabledValue (configValue) {
|
|
|
77
75
|
: configValue === 'auto' ? 'auto' : undefined
|
|
78
76
|
}
|
|
79
77
|
|
|
78
|
+
function normalizePluginEnvName (envPluginName, makeLowercase = false) {
|
|
79
|
+
if (envPluginName.startsWith('@')) {
|
|
80
|
+
envPluginName = envPluginName.slice(1)
|
|
81
|
+
}
|
|
82
|
+
envPluginName = envPluginName.replaceAll(/[^a-z0-9_]/ig, '_')
|
|
83
|
+
return makeLowercase ? envPluginName.toLowerCase() : envPluginName
|
|
84
|
+
}
|
|
85
|
+
|
|
80
86
|
module.exports = {
|
|
81
87
|
isTrue,
|
|
82
88
|
isFalse,
|
|
83
89
|
isError,
|
|
84
90
|
globMatch,
|
|
85
91
|
ddBasePath: calculateDDBasePath(__dirname),
|
|
86
|
-
normalizeProfilingEnabledValue
|
|
92
|
+
normalizeProfilingEnabledValue,
|
|
93
|
+
normalizePluginEnvName
|
|
87
94
|
}
|
package/version.js
CHANGED
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
/* eslint-disable no-var */
|
|
4
4
|
/* eslint-disable unicorn/prefer-number-properties */
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var version = require('./package.json').version
|
|
7
|
+
var ddMatches = version.match(/^(\d+)\.(\d+)\.(\d+)/)
|
|
7
8
|
var nodeMatches = process.versions.node.match(/^(\d+)\.(\d+)\.(\d+)/)
|
|
8
9
|
|
|
9
10
|
module.exports = {
|
|
11
|
+
VERSION: version,
|
|
10
12
|
DD_MAJOR: parseInt(ddMatches[1]),
|
|
11
13
|
DD_MINOR: parseInt(ddMatches[2]),
|
|
12
14
|
DD_PATCH: parseInt(ddMatches[3]),
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
module.exports = function has (object, path) {
|
|
4
|
-
const pathArr = path.split('.')
|
|
5
|
-
let property = object
|
|
6
|
-
for (const n of pathArr) {
|
|
7
|
-
if (property.hasOwnProperty(n)) {
|
|
8
|
-
property = property[n]
|
|
9
|
-
} else {
|
|
10
|
-
return false
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return true
|
|
14
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const dc = require('dc-polyfill')
|
|
4
|
-
const coalesce = require('koalas')
|
|
5
|
-
const profileSubmittedChannel = dc.channel('datadog:profiling:mock-profile-submitted')
|
|
6
|
-
const { getEnvironmentVariable } = require('../config-helper')
|
|
7
|
-
|
|
8
|
-
const DD_PROFILING_UPLOAD_PERIOD = getEnvironmentVariable('DD_PROFILING_UPLOAD_PERIOD')
|
|
9
|
-
|
|
10
|
-
let timerId
|
|
11
|
-
|
|
12
|
-
module.exports = {
|
|
13
|
-
start: config => {
|
|
14
|
-
// Copied from packages/dd-trace/src/profiler.js
|
|
15
|
-
const flushInterval = coalesce(config.interval, Number(DD_PROFILING_UPLOAD_PERIOD) * 1000, 65 * 1000)
|
|
16
|
-
|
|
17
|
-
timerId = setTimeout(() => {
|
|
18
|
-
profileSubmittedChannel.publish()
|
|
19
|
-
timerId.refresh()
|
|
20
|
-
}, flushInterval)
|
|
21
|
-
timerId.unref()
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
stop: () => {
|
|
25
|
-
if (timerId !== undefined) {
|
|
26
|
-
clearTimeout(timerId)
|
|
27
|
-
timerId = undefined
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|