dd-trace 5.75.0 → 5.77.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.
Files changed (53) hide show
  1. package/LICENSE-3rdparty.csv +1 -1
  2. package/ci/init.js +1 -0
  3. package/package.json +15 -15
  4. package/packages/datadog-instrumentations/src/express.js +18 -7
  5. package/packages/datadog-instrumentations/src/jest.js +16 -16
  6. package/packages/datadog-instrumentations/src/openai.js +8 -0
  7. package/packages/datadog-instrumentations/src/playwright.js +47 -0
  8. package/packages/datadog-instrumentations/src/router.js +9 -8
  9. package/packages/datadog-instrumentations/src/vitest.js +94 -8
  10. package/packages/datadog-plugin-cucumber/src/index.js +2 -1
  11. package/packages/datadog-plugin-grpc/src/util.js +5 -1
  12. package/packages/datadog-plugin-http/src/client.js +5 -1
  13. package/packages/datadog-plugin-http2/src/client.js +5 -1
  14. package/packages/datadog-plugin-openai/src/stream-helpers.js +26 -1
  15. package/packages/datadog-plugin-openai/src/tracing.js +46 -1
  16. package/packages/datadog-plugin-vitest/src/index.js +5 -1
  17. package/packages/dd-trace/src/appsec/api_security_sampler.js +1 -1
  18. package/packages/dd-trace/src/appsec/channels.js +1 -0
  19. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +7 -0
  20. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +2 -2
  21. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -3
  22. package/packages/dd-trace/src/appsec/rasp/lfi.js +23 -9
  23. package/packages/dd-trace/src/appsec/stack_trace.js +6 -6
  24. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +6 -0
  25. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +30 -7
  26. package/packages/dd-trace/src/config.js +10 -1
  27. package/packages/dd-trace/src/debugger/devtools_client/index.js +8 -1
  28. package/packages/dd-trace/src/debugger/devtools_client/log.js +15 -4
  29. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +5 -1
  30. package/packages/dd-trace/src/exporters/common/docker.js +1 -1
  31. package/packages/dd-trace/src/exporters/span-stats/writer.js +4 -5
  32. package/packages/dd-trace/src/format.js +4 -5
  33. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +9 -6
  34. package/packages/dd-trace/src/llmobs/plugins/anthropic.js +3 -6
  35. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +3 -2
  36. package/packages/dd-trace/src/llmobs/plugins/openai.js +216 -12
  37. package/packages/dd-trace/src/llmobs/span_processor.js +4 -3
  38. package/packages/dd-trace/src/llmobs/tagger.js +9 -3
  39. package/packages/dd-trace/src/llmobs/util.js +1 -1
  40. package/packages/dd-trace/src/openfeature/writers/exposures.js +2 -2
  41. package/packages/dd-trace/src/opentelemetry/span.js +3 -2
  42. package/packages/dd-trace/src/plugins/ci_plugin.js +3 -1
  43. package/packages/dd-trace/src/plugins/util/serverless.js +1 -2
  44. package/packages/dd-trace/src/plugins/util/test.js +16 -1
  45. package/packages/dd-trace/src/plugins/util/web.js +5 -1
  46. package/packages/dd-trace/src/profiling/config.js +32 -10
  47. package/packages/dd-trace/src/proxy.js +2 -2
  48. package/packages/dd-trace/src/remote_config/capabilities.js +2 -0
  49. package/packages/dd-trace/src/remote_config/index.js +4 -0
  50. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +2 -2
  51. package/packages/dd-trace/src/span_processor.js +4 -1
  52. package/packages/dd-trace/src/startup-log.js +24 -38
  53. package/packages/dd-trace/src/supported-configurations.json +1 -0
@@ -10,18 +10,10 @@ const tracerVersion = require('../../../package.json').version
10
10
  const errors = {}
11
11
  let config
12
12
  let pluginManager
13
+ /** @type {import('./sampling_rule')[]} */
13
14
  let samplingRules = []
14
15
  let alreadyRan = false
15
16
 
16
- /**
17
- * @returns {Record<string, unknown>}
18
- */
19
- function getIntegrationsAndAnalytics () {
20
- return {
21
- integrations_loaded: Object.keys(pluginManager._pluginsByName)
22
- }
23
- }
24
-
25
17
  /**
26
18
  * @param {{ agentError: { code: string, message: string } }} [options]
27
19
  */
@@ -70,36 +62,30 @@ function tracerInfo () {
70
62
  return JSON.stringify(this, (_key_, value) => {
71
63
  return typeof value === 'bigint' || typeof value === 'symbol' ? String(value) : value
72
64
  })
73
- }
74
- }
75
-
76
- out.date = new Date().toISOString()
77
- out.os_name = os.type()
78
- out.os_version = os.release()
79
- out.architecture = os.arch()
80
- out.version = tracerVersion
81
- out.lang = 'nodejs'
82
- out.lang_version = process.versions.node
83
- out.env = config.env
84
- out.enabled = config.enabled
85
- out.service = config.service
86
- out.agent_url = url
87
- out.debug = !!config.debug
88
- out.sample_rate = config.sampler.sampleRate
89
- out.sampling_rules = samplingRules
90
- out.tags = config.tags
91
- if (config.tags && config.tags.version) {
92
- out.dd_version = config.tags.version
65
+ },
66
+ date: new Date().toISOString(),
67
+ os_name: os.type(),
68
+ os_version: os.release(),
69
+ architecture: os.arch(),
70
+ version: tracerVersion,
71
+ lang: 'nodejs',
72
+ lang_version: process.versions.node,
73
+ env: config.env,
74
+ enabled: config.enabled,
75
+ service: config.service,
76
+ agent_url: url,
77
+ debug: !!config.debug,
78
+ sample_rate: config.sampler.sampleRate,
79
+ sampling_rules: samplingRules,
80
+ tags: config.tags,
81
+ ...(config.tags && config.tags.version && { dd_version: config.tags.version }),
82
+ log_injection_enabled: !!config.logInjection,
83
+ runtime_metrics_enabled: !!config.runtimeMetrics,
84
+ profiling_enabled: config.profiling?.enabled === 'true' || config.profiling?.enabled === 'auto',
85
+ integrations_loaded: Object.keys(pluginManager._pluginsByName),
86
+ appsec_enabled: !!config.appsec.enabled,
93
87
  }
94
88
 
95
- out.log_injection_enabled = !!config.logInjection
96
- out.runtime_metrics_enabled = !!config.runtimeMetrics
97
- const profilingEnabled = config.profiling?.enabled
98
- out.profiling_enabled = profilingEnabled === 'true' || profilingEnabled === 'auto'
99
- Object.assign(out, getIntegrationsAndAnalytics())
100
-
101
- out.appsec_enabled = !!config.appsec.enabled
102
-
103
89
  return out
104
90
  }
105
91
 
@@ -118,7 +104,7 @@ function setStartupLogPluginManager (thePluginManager) {
118
104
  }
119
105
 
120
106
  /**
121
- * @param {import('./sampling_rule')} theRules
107
+ * @param {import('./sampling_rule')[]} theRules
122
108
  */
123
109
  function setSamplingRules (theRules) {
124
110
  samplingRules = theRules
@@ -444,6 +444,7 @@
444
444
  "DD_VERSION": ["A"],
445
445
  "DD_VERTEXAI_SPAN_CHAR_LIMIT": ["A"],
446
446
  "DD_VERTEXAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": ["A"],
447
+ "DD_VITEST_WORKER": ["A"],
447
448
  "OTEL_LOG_LEVEL": ["A"],
448
449
  "OTEL_LOGS_EXPORTER": ["A"],
449
450
  "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": ["A"],