dd-trace 5.81.0 → 5.83.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 (371) hide show
  1. package/LICENSE-3rdparty.csv +78 -79
  2. package/ci/init.js +6 -6
  3. package/index.d.ts +159 -3
  4. package/loader-hook.mjs +8 -3
  5. package/package.json +64 -66
  6. package/packages/datadog-core/src/storage.js +7 -7
  7. package/packages/datadog-core/src/utils/src/parse-tags.js +1 -1
  8. package/packages/datadog-esbuild/index.js +14 -7
  9. package/packages/datadog-esbuild/src/utils.js +14 -2
  10. package/packages/datadog-instrumentations/src/aerospike.js +3 -2
  11. package/packages/datadog-instrumentations/src/ai.js +9 -5
  12. package/packages/datadog-instrumentations/src/amqp10.js +1 -1
  13. package/packages/datadog-instrumentations/src/amqplib.js +4 -4
  14. package/packages/datadog-instrumentations/src/anthropic.js +2 -2
  15. package/packages/datadog-instrumentations/src/apollo-server-core.js +2 -2
  16. package/packages/datadog-instrumentations/src/apollo-server.js +1 -1
  17. package/packages/datadog-instrumentations/src/apollo.js +3 -2
  18. package/packages/datadog-instrumentations/src/avsc.js +1 -1
  19. package/packages/datadog-instrumentations/src/aws-sdk.js +1 -1
  20. package/packages/datadog-instrumentations/src/azure-event-hubs.js +4 -3
  21. package/packages/datadog-instrumentations/src/azure-functions.js +2 -2
  22. package/packages/datadog-instrumentations/src/azure-service-bus.js +3 -4
  23. package/packages/datadog-instrumentations/src/bluebird.js +1 -1
  24. package/packages/datadog-instrumentations/src/bullmq.js +11 -0
  25. package/packages/datadog-instrumentations/src/bunyan.js +1 -1
  26. package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
  27. package/packages/datadog-instrumentations/src/child_process.js +3 -3
  28. package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +3 -3
  29. package/packages/datadog-instrumentations/src/couchbase.js +1 -1
  30. package/packages/datadog-instrumentations/src/crypto.js +1 -1
  31. package/packages/datadog-instrumentations/src/cucumber.js +13 -14
  32. package/packages/datadog-instrumentations/src/cypress.js +1 -1
  33. package/packages/datadog-instrumentations/src/dns.js +1 -1
  34. package/packages/datadog-instrumentations/src/elasticsearch.js +1 -1
  35. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +1 -1
  36. package/packages/datadog-instrumentations/src/express.js +1 -1
  37. package/packages/datadog-instrumentations/src/fs.js +1 -1
  38. package/packages/datadog-instrumentations/src/generic-pool.js +1 -1
  39. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +137 -15
  40. package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +2 -3
  41. package/packages/datadog-instrumentations/src/google-genai.js +3 -3
  42. package/packages/datadog-instrumentations/src/graphql.js +2 -2
  43. package/packages/datadog-instrumentations/src/grpc/client.js +1 -1
  44. package/packages/datadog-instrumentations/src/grpc/server.js +1 -1
  45. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
  46. package/packages/datadog-instrumentations/src/helpers/hook.js +1 -1
  47. package/packages/datadog-instrumentations/src/helpers/hooks.js +4 -1
  48. package/packages/datadog-instrumentations/src/helpers/instrument.js +1 -1
  49. package/packages/datadog-instrumentations/src/helpers/instrumentations.js +4 -3
  50. package/packages/datadog-instrumentations/src/helpers/register.js +9 -11
  51. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +2 -2
  52. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/bullmq.json +106 -0
  53. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +2 -1
  54. package/packages/datadog-instrumentations/src/helpers/router-helper.js +1 -1
  55. package/packages/datadog-instrumentations/src/helpers/shared-utils.js +9 -0
  56. package/packages/datadog-instrumentations/src/hono.js +55 -10
  57. package/packages/datadog-instrumentations/src/http/client.js +2 -2
  58. package/packages/datadog-instrumentations/src/ioredis.js +1 -1
  59. package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
  60. package/packages/datadog-instrumentations/src/jest.js +37 -16
  61. package/packages/datadog-instrumentations/src/kafkajs.js +3 -3
  62. package/packages/datadog-instrumentations/src/knex.js +1 -1
  63. package/packages/datadog-instrumentations/src/koa.js +2 -1
  64. package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
  65. package/packages/datadog-instrumentations/src/light-my-request.js +93 -0
  66. package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
  67. package/packages/datadog-instrumentations/src/lodash.js +1 -2
  68. package/packages/datadog-instrumentations/src/mariadb.js +1 -2
  69. package/packages/datadog-instrumentations/src/memcached.js +1 -1
  70. package/packages/datadog-instrumentations/src/mocha/main.js +2 -2
  71. package/packages/datadog-instrumentations/src/mocha/worker.js +1 -1
  72. package/packages/datadog-instrumentations/src/mocha.js +1 -1
  73. package/packages/datadog-instrumentations/src/mongodb-core.js +1 -1
  74. package/packages/datadog-instrumentations/src/mongodb.js +1 -1
  75. package/packages/datadog-instrumentations/src/mongoose.js +1 -1
  76. package/packages/datadog-instrumentations/src/mquery.js +1 -1
  77. package/packages/datadog-instrumentations/src/mysql.js +2 -2
  78. package/packages/datadog-instrumentations/src/mysql2.js +3 -3
  79. package/packages/datadog-instrumentations/src/net.js +14 -6
  80. package/packages/datadog-instrumentations/src/next.js +1 -1
  81. package/packages/datadog-instrumentations/src/nyc.js +2 -2
  82. package/packages/datadog-instrumentations/src/openai.js +2 -2
  83. package/packages/datadog-instrumentations/src/opensearch.js +1 -1
  84. package/packages/datadog-instrumentations/src/oracledb.js +1 -1
  85. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +5 -5
  86. package/packages/datadog-instrumentations/src/pg.js +7 -5
  87. package/packages/datadog-instrumentations/src/pino.js +1 -1
  88. package/packages/datadog-instrumentations/src/playwright.js +4 -4
  89. package/packages/datadog-instrumentations/src/prisma.js +52 -37
  90. package/packages/datadog-instrumentations/src/process.js +1 -1
  91. package/packages/datadog-instrumentations/src/promise-js.js +1 -1
  92. package/packages/datadog-instrumentations/src/promise.js +1 -1
  93. package/packages/datadog-instrumentations/src/protobufjs.js +1 -1
  94. package/packages/datadog-instrumentations/src/q.js +1 -1
  95. package/packages/datadog-instrumentations/src/redis.js +1 -1
  96. package/packages/datadog-instrumentations/src/rhea.js +1 -1
  97. package/packages/datadog-instrumentations/src/selenium.js +3 -3
  98. package/packages/datadog-instrumentations/src/sequelize.js +1 -2
  99. package/packages/datadog-instrumentations/src/sharedb.js +1 -1
  100. package/packages/datadog-instrumentations/src/tedious.js +1 -1
  101. package/packages/datadog-instrumentations/src/undici.js +15 -4
  102. package/packages/datadog-instrumentations/src/url.js +1 -1
  103. package/packages/datadog-instrumentations/src/vitest.js +1 -1
  104. package/packages/datadog-instrumentations/src/vm.js +1 -1
  105. package/packages/datadog-instrumentations/src/when.js +1 -1
  106. package/packages/datadog-instrumentations/src/winston.js +1 -1
  107. package/packages/datadog-instrumentations/src/ws.js +3 -2
  108. package/packages/datadog-plugin-amqp10/src/index.js +1 -1
  109. package/packages/datadog-plugin-amqplib/src/index.js +1 -1
  110. package/packages/datadog-plugin-anthropic/src/index.js +1 -1
  111. package/packages/datadog-plugin-aws-sdk/src/base.js +4 -4
  112. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
  113. package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +4 -4
  114. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +2 -2
  115. package/packages/datadog-plugin-aws-sdk/src/util.js +3 -3
  116. package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
  117. package/packages/datadog-plugin-azure-event-hubs/src/producer.js +21 -7
  118. package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
  119. package/packages/datadog-plugin-azure-service-bus/src/producer.js +6 -2
  120. package/packages/datadog-plugin-bullmq/src/consumer.js +60 -0
  121. package/packages/datadog-plugin-bullmq/src/index.js +18 -0
  122. package/packages/datadog-plugin-bullmq/src/producer.js +178 -0
  123. package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
  124. package/packages/datadog-plugin-cucumber/src/index.js +2 -2
  125. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +2 -2
  126. package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
  127. package/packages/datadog-plugin-dd-trace-api/src/index.js +2 -2
  128. package/packages/datadog-plugin-express/src/code_origin.js +21 -15
  129. package/packages/datadog-plugin-express/src/index.js +1 -1
  130. package/packages/datadog-plugin-fastify/src/code_origin.js +17 -4
  131. package/packages/datadog-plugin-fastify/src/index.js +1 -1
  132. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +13 -3
  133. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +171 -12
  134. package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -2
  135. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +160 -13
  136. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +217 -0
  137. package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
  138. package/packages/datadog-plugin-google-genai/src/index.js +1 -1
  139. package/packages/datadog-plugin-graphql/src/resolve.js +1 -1
  140. package/packages/datadog-plugin-grpc/src/index.js +1 -1
  141. package/packages/datadog-plugin-http/src/client.js +2 -1
  142. package/packages/datadog-plugin-http/src/index.js +25 -5
  143. package/packages/datadog-plugin-http2/src/client.js +2 -2
  144. package/packages/datadog-plugin-http2/src/index.js +1 -1
  145. package/packages/datadog-plugin-jest/src/index.js +2 -2
  146. package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
  147. package/packages/datadog-plugin-langchain/src/index.js +1 -1
  148. package/packages/datadog-plugin-mocha/src/index.js +2 -2
  149. package/packages/datadog-plugin-moleculer/src/index.js +1 -1
  150. package/packages/datadog-plugin-mongodb-core/src/index.js +8 -4
  151. package/packages/datadog-plugin-openai/src/index.js +1 -1
  152. package/packages/datadog-plugin-openai/src/stream-helpers.js +30 -10
  153. package/packages/datadog-plugin-openai/src/tracing.js +2 -2
  154. package/packages/datadog-plugin-playwright/src/index.js +3 -3
  155. package/packages/datadog-plugin-rhea/src/index.js +1 -1
  156. package/packages/datadog-plugin-undici/src/index.js +305 -2
  157. package/packages/datadog-plugin-vitest/src/index.js +5 -5
  158. package/packages/datadog-plugin-ws/src/close.js +56 -3
  159. package/packages/datadog-plugin-ws/src/index.js +4 -0
  160. package/packages/datadog-plugin-ws/src/producer.js +39 -4
  161. package/packages/datadog-plugin-ws/src/receiver.js +39 -3
  162. package/packages/datadog-plugin-ws/src/server.js +13 -1
  163. package/packages/datadog-plugin-ws/src/util.js +107 -0
  164. package/packages/datadog-shimmer/src/shimmer.js +2 -2
  165. package/packages/dd-trace/index.js +19 -0
  166. package/packages/dd-trace/src/aiguard/sdk.js +3 -3
  167. package/packages/dd-trace/src/appsec/graphql.js +2 -2
  168. package/packages/dd-trace/src/appsec/iast/analyzers/code-injection-analyzer.js +1 -1
  169. package/packages/dd-trace/src/appsec/iast/analyzers/command-injection-analyzer.js +1 -1
  170. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
  171. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +1 -1
  172. package/packages/dd-trace/src/appsec/iast/analyzers/injection-analyzer.js +1 -1
  173. package/packages/dd-trace/src/appsec/iast/analyzers/ldap-injection-analyzer.js +1 -1
  174. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +3 -3
  175. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +1 -1
  176. package/packages/dd-trace/src/appsec/iast/analyzers/ssrf-analyzer.js +1 -1
  177. package/packages/dd-trace/src/appsec/iast/analyzers/untrusted-deserialization-analyzer.js +1 -1
  178. package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +1 -1
  179. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
  180. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +3 -2
  181. package/packages/dd-trace/src/appsec/iast/analyzers/weak-randomness-analyzer.js +1 -1
  182. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +3 -3
  183. package/packages/dd-trace/src/appsec/iast/index.js +5 -5
  184. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +1 -1
  185. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -2
  186. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +1 -1
  187. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
  188. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +11 -15
  189. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +1 -1
  190. package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +1 -1
  191. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +3 -3
  192. package/packages/dd-trace/src/appsec/index.js +8 -8
  193. package/packages/dd-trace/src/appsec/rasp/command_injection.js +1 -1
  194. package/packages/dd-trace/src/appsec/rasp/index.js +3 -5
  195. package/packages/dd-trace/src/appsec/rasp/lfi.js +1 -1
  196. package/packages/dd-trace/src/appsec/rc-products.js +10 -0
  197. package/packages/dd-trace/src/appsec/recommended.json +230 -3
  198. package/packages/dd-trace/src/appsec/remote_config.js +177 -0
  199. package/packages/dd-trace/src/appsec/reporter.js +3 -3
  200. package/packages/dd-trace/src/appsec/rule_manager.js +37 -20
  201. package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
  202. package/packages/dd-trace/src/appsec/sdk/set_user.js +1 -1
  203. package/packages/dd-trace/src/appsec/sdk/track_event.js +2 -2
  204. package/packages/dd-trace/src/appsec/sdk/user_blocking.js +2 -2
  205. package/packages/dd-trace/src/appsec/user_tracking.js +2 -2
  206. package/packages/dd-trace/src/appsec/waf/index.js +17 -3
  207. package/packages/dd-trace/src/appsec/waf/waf_manager.js +11 -0
  208. package/packages/dd-trace/src/azure_metadata.js +15 -4
  209. package/packages/dd-trace/src/baggage.js +36 -11
  210. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +5 -1
  211. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +6 -0
  212. package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +2 -2
  213. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +2 -2
  214. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +2 -2
  215. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -2
  216. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +2 -2
  217. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +4 -3
  218. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +3 -3
  219. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +5 -5
  220. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +1 -1
  221. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +2 -2
  222. package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +4 -4
  223. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +4 -4
  224. package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +2 -2
  225. package/packages/dd-trace/src/{config_defaults.js → config/defaults.js} +5 -4
  226. package/packages/dd-trace/src/{config-helper.js → config/helper.js} +88 -15
  227. package/packages/dd-trace/src/{config.js → config/index.js} +115 -67
  228. package/packages/dd-trace/src/config/remote_config.js +202 -0
  229. package/packages/dd-trace/src/{config_stable.js → config/stable.js} +20 -32
  230. package/packages/dd-trace/src/{supported-configurations.json → config/supported-configurations.json} +5 -0
  231. package/packages/dd-trace/src/constants.js +5 -0
  232. package/packages/dd-trace/src/crashtracking/crashtracker.js +11 -2
  233. package/packages/dd-trace/src/datastreams/checkpointer.js +2 -2
  234. package/packages/dd-trace/src/datastreams/index.js +1 -1
  235. package/packages/dd-trace/src/datastreams/pathway.js +7 -7
  236. package/packages/dd-trace/src/datastreams/processor.js +3 -3
  237. package/packages/dd-trace/src/datastreams/writer.js +3 -3
  238. package/packages/dd-trace/src/debugger/config.js +1 -0
  239. package/packages/dd-trace/src/debugger/devtools_client/condition.js +1 -1
  240. package/packages/dd-trace/src/debugger/devtools_client/config.js +1 -1
  241. package/packages/dd-trace/src/debugger/devtools_client/index.js +7 -2
  242. package/packages/dd-trace/src/debugger/devtools_client/send.js +6 -6
  243. package/packages/dd-trace/src/debugger/devtools_client/session.js +1 -1
  244. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +5 -5
  245. package/packages/dd-trace/src/debugger/devtools_client/snapshot/constants.js +1 -1
  246. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +2 -2
  247. package/packages/dd-trace/src/debugger/devtools_client/state.js +1 -1
  248. package/packages/dd-trace/src/debugger/devtools_client/status.js +2 -2
  249. package/packages/dd-trace/src/debugger/index.js +84 -16
  250. package/packages/dd-trace/src/dogstatsd.js +5 -4
  251. package/packages/dd-trace/src/encode/0.4.js +3 -3
  252. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +2 -2
  253. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +1 -1
  254. package/packages/dd-trace/src/encode/span-stats.js +6 -1
  255. package/packages/dd-trace/src/exporter.js +2 -2
  256. package/packages/dd-trace/src/exporters/agent/index.js +2 -4
  257. package/packages/dd-trace/src/exporters/agent/writer.js +9 -14
  258. package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +2 -2
  259. package/packages/dd-trace/src/exporters/common/docker.js +2 -2
  260. package/packages/dd-trace/src/exporters/common/request.js +3 -3
  261. package/packages/dd-trace/src/exporters/common/util.js +2 -2
  262. package/packages/dd-trace/src/exporters/common/writer.js +1 -1
  263. package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
  264. package/packages/dd-trace/src/external-logger/src/index.js +1 -2
  265. package/packages/dd-trace/src/flare/index.js +2 -2
  266. package/packages/dd-trace/src/guardrails/index.js +6 -3
  267. package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
  268. package/packages/dd-trace/src/id.js +1 -1
  269. package/packages/dd-trace/src/index.js +4 -4
  270. package/packages/dd-trace/src/lambda/handler.js +5 -5
  271. package/packages/dd-trace/src/lambda/index.js +2 -2
  272. package/packages/dd-trace/src/lambda/runtime/patch.js +6 -6
  273. package/packages/dd-trace/src/lambda/runtime/ritm.js +3 -3
  274. package/packages/dd-trace/src/llmobs/constants/tags.js +14 -1
  275. package/packages/dd-trace/src/llmobs/index.js +10 -11
  276. package/packages/dd-trace/src/llmobs/noop.js +2 -0
  277. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +38 -7
  278. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +30 -9
  279. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +3 -3
  280. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +2 -2
  281. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chain.js +1 -1
  282. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +1 -1
  283. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/embedding.js +1 -1
  284. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/llm.js +1 -1
  285. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
  286. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +16 -0
  287. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +19 -5
  288. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +22 -10
  289. package/packages/dd-trace/src/llmobs/plugins/vertexai.js +1 -1
  290. package/packages/dd-trace/src/llmobs/sdk.js +46 -26
  291. package/packages/dd-trace/src/llmobs/span_processor.js +26 -20
  292. package/packages/dd-trace/src/llmobs/tagger.js +175 -1
  293. package/packages/dd-trace/src/llmobs/telemetry.js +3 -4
  294. package/packages/dd-trace/src/llmobs/writers/base.js +117 -38
  295. package/packages/dd-trace/src/llmobs/writers/spans.js +5 -5
  296. package/packages/dd-trace/src/log/index.js +5 -5
  297. package/packages/dd-trace/src/noop/proxy.js +5 -5
  298. package/packages/dd-trace/src/noop/span.js +1 -1
  299. package/packages/dd-trace/src/openfeature/index.js +2 -2
  300. package/packages/dd-trace/src/openfeature/noop.js +14 -14
  301. package/packages/dd-trace/src/openfeature/remote_config.js +31 -0
  302. package/packages/dd-trace/src/openfeature/writers/base.js +12 -13
  303. package/packages/dd-trace/src/openfeature/writers/exposures.js +9 -9
  304. package/packages/dd-trace/src/opentelemetry/context_manager.js +2 -2
  305. package/packages/dd-trace/src/opentelemetry/logs/logger.js +1 -1
  306. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +4 -4
  307. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +9 -8
  308. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
  309. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +2 -2
  310. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +4 -4
  311. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +36 -11
  312. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +2 -2
  313. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +11 -10
  314. package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +1 -1
  315. package/packages/dd-trace/src/opentelemetry/span.js +2 -2
  316. package/packages/dd-trace/src/opentelemetry/tracer.js +51 -9
  317. package/packages/dd-trace/src/opentracing/propagation/text_map.js +68 -28
  318. package/packages/dd-trace/src/opentracing/span.js +7 -7
  319. package/packages/dd-trace/src/opentracing/tracer.js +5 -5
  320. package/packages/dd-trace/src/payload-tagging/index.js +6 -2
  321. package/packages/dd-trace/src/plugin_manager.js +8 -6
  322. package/packages/dd-trace/src/plugins/apollo.js +1 -1
  323. package/packages/dd-trace/src/plugins/ci_plugin.js +27 -27
  324. package/packages/dd-trace/src/plugins/database.js +1 -1
  325. package/packages/dd-trace/src/plugins/index.js +5 -1
  326. package/packages/dd-trace/src/plugins/log_plugin.js +1 -1
  327. package/packages/dd-trace/src/plugins/outbound.js +1 -1
  328. package/packages/dd-trace/src/plugins/tracing.js +1 -1
  329. package/packages/dd-trace/src/plugins/util/ci.js +5 -8
  330. package/packages/dd-trace/src/plugins/util/git-cache.js +3 -3
  331. package/packages/dd-trace/src/plugins/util/git.js +8 -8
  332. package/packages/dd-trace/src/plugins/util/stacktrace.js +1 -1
  333. package/packages/dd-trace/src/plugins/util/test.js +25 -25
  334. package/packages/dd-trace/src/plugins/util/user-provided-git.js +41 -43
  335. package/packages/dd-trace/src/plugins/util/web.js +8 -5
  336. package/packages/dd-trace/src/priority_sampler.js +15 -16
  337. package/packages/dd-trace/src/process-tags/index.js +31 -29
  338. package/packages/dd-trace/src/profiler.js +4 -39
  339. package/packages/dd-trace/src/profiling/config.js +104 -50
  340. package/packages/dd-trace/src/profiling/exporter_cli.js +8 -8
  341. package/packages/dd-trace/src/profiling/exporters/agent.js +6 -6
  342. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +9 -2
  343. package/packages/dd-trace/src/profiling/index.js +1 -1
  344. package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
  345. package/packages/dd-trace/src/profiling/profiler.js +61 -7
  346. package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
  347. package/packages/dd-trace/src/profiling/profilers/events.js +2 -2
  348. package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
  349. package/packages/dd-trace/src/proxy.js +43 -20
  350. package/packages/dd-trace/src/remote_config/capabilities.js +3 -0
  351. package/packages/dd-trace/src/remote_config/index.js +541 -137
  352. package/packages/dd-trace/src/require-package-json.js +1 -1
  353. package/packages/dd-trace/src/ritm.js +58 -31
  354. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +3 -3
  355. package/packages/dd-trace/src/serverless.js +17 -1
  356. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +8 -0
  357. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +8 -0
  358. package/packages/dd-trace/src/span_format.js +1 -1
  359. package/packages/dd-trace/src/span_processor.js +4 -4
  360. package/packages/dd-trace/src/span_stats.js +6 -4
  361. package/packages/dd-trace/src/standalone/index.js +1 -1
  362. package/packages/dd-trace/src/startup-log.js +7 -16
  363. package/packages/dd-trace/src/telemetry/dependencies.js +3 -3
  364. package/packages/dd-trace/src/telemetry/endpoints.js +75 -13
  365. package/packages/dd-trace/src/telemetry/logs/index.js +1 -1
  366. package/packages/dd-trace/src/telemetry/send-data.js +103 -4
  367. package/packages/dd-trace/src/telemetry/telemetry.js +238 -114
  368. package/packages/dd-trace/src/tracer.js +3 -3
  369. package/packages/dd-trace/src/tracer_metadata.js +19 -15
  370. package/packages/dd-trace/src/remote_config/manager.js +0 -368
  371. /package/packages/dd-trace/src/{git_properties.js → config/git_properties.js} +0 -0
@@ -19,7 +19,17 @@ class WafUpdateError extends Error {
19
19
 
20
20
  let limiter = new Limiter(100)
21
21
 
22
+ /** @typedef {import('./waf_manager')} WAFManager */
23
+
24
+ /** @type {typeof import('./waf_manager') | null} */
25
+ let WAFManager = null
26
+
27
+ /**
28
+ * @typedef {import('./waf_manager').WAFManagerConfig & { rateLimit: number }} WAFConfig
29
+ */
30
+
22
31
  const waf = {
32
+ /** @type {WAFManager | null} */
23
33
  wafManager: null,
24
34
  init,
25
35
  destroy,
@@ -31,13 +41,17 @@ const waf = {
31
41
  WafUpdateError
32
42
  }
33
43
 
44
+ /**
45
+ * @param {object} rules
46
+ * @param {WAFConfig} config
47
+ */
34
48
  function init (rules, config) {
35
49
  destroy()
36
50
 
37
51
  limiter = new Limiter(config.rateLimit)
38
52
 
39
- // dirty require to make startup faster for serverless
40
- const WAFManager = require('./waf_manager')
53
+ // Lazy loading improves the startup time
54
+ WAFManager = require('./waf_manager')
41
55
 
42
56
  waf.wafManager = new WAFManager(rules, config)
43
57
 
@@ -70,7 +84,7 @@ function updateConfig (product, configId, configPath, config) {
70
84
 
71
85
  try {
72
86
  if (product === 'ASM_DD') {
73
- waf.wafManager.removeConfig(waf.wafManager.constructor.defaultWafConfigPath)
87
+ waf.wafManager.removeConfig((/** @type {NonNullable<typeof WAFManager>} */ (WAFManager)).defaultWafConfigPath)
74
88
  }
75
89
 
76
90
  const updateSucceeded = waf.wafManager.updateConfig(configPath, config)
@@ -6,9 +6,20 @@ const WAFContextWrapper = require('./waf_context_wrapper')
6
6
 
7
7
  const contexts = new WeakMap()
8
8
 
9
+ /**
10
+ * @typedef {object} WAFManagerConfig
11
+ * @property {number} wafTimeout - Maximum time in microseconds for WAF execution
12
+ * @property {string} obfuscatorKeyRegex - Regex to redact sensitive data by key
13
+ * @property {string} obfuscatorValueRegex - Regex to redact sensitive data by value
14
+ */
15
+
9
16
  class WAFManager {
10
17
  static defaultWafConfigPath = 'datadog/00/ASM_DD/default/config'
11
18
 
19
+ /**
20
+ * @param {object} rules
21
+ * @param {WAFManagerConfig} config
22
+ */
12
23
  constructor (rules, config) {
13
24
  this.config = config
14
25
  this.wafTimeout = config.wafTimeout
@@ -3,8 +3,12 @@
3
3
  // Modeled after https://github.com/DataDog/libdatadog/blob/f3994857a59bb5679a65967138c5a3aec418a65f/ddcommon/src/azure_app_services.rs
4
4
 
5
5
  const os = require('os')
6
- const { getIsAzureFunction } = require('./serverless')
7
- const { getEnvironmentVariable, getEnvironmentVariables } = require('../../dd-trace/src/config-helper')
6
+ const {
7
+ getEnvironmentVariable,
8
+ getEnvironmentVariables,
9
+ getValueFromEnvSources
10
+ } = require('./config/helper')
11
+ const { getIsAzureFunction, getIsFlexConsumptionAzureFunction } = require('./serverless')
8
12
 
9
13
  function extractSubscriptionID (ownerName) {
10
14
  if (ownerName !== undefined) {
@@ -37,7 +41,6 @@ function trimObject (obj) {
37
41
  function buildMetadata () {
38
42
  const {
39
43
  COMPUTERNAME,
40
- DD_AAS_DOTNET_EXTENSION_VERSION,
41
44
  FUNCTIONS_EXTENSION_VERSION,
42
45
  FUNCTIONS_WORKER_RUNTIME,
43
46
  FUNCTIONS_WORKER_RUNTIME_VERSION,
@@ -48,6 +51,9 @@ function buildMetadata () {
48
51
  WEBSITE_SITE_NAME
49
52
  } = getEnvironmentVariables()
50
53
 
54
+ const DD_AAS_DOTNET_EXTENSION_VERSION = getValueFromEnvSources('DD_AAS_DOTNET_EXTENSION_VERSION')
55
+ const DD_AZURE_RESOURCE_GROUP = getValueFromEnvSources('DD_AZURE_RESOURCE_GROUP')
56
+
51
57
  const subscriptionID = extractSubscriptionID(WEBSITE_OWNER_NAME)
52
58
 
53
59
  const siteName = WEBSITE_SITE_NAME
@@ -56,7 +62,12 @@ function buildMetadata () {
56
62
  ? ['functionapp', 'function']
57
63
  : ['app', 'app']
58
64
 
59
- const resourceGroup = WEBSITE_RESOURCE_GROUP ?? extractResourceGroup(WEBSITE_OWNER_NAME)
65
+ // Azure Functions on Flex Consumption plans require the `DD_AZURE_RESOURCE_GROUP` env var.
66
+ // If this logic ever changes, update the logic in `libdatadog`, `serverless-components/src/datadog-trace-agent`,
67
+ // and the serverless compat layers accordingly.
68
+ const resourceGroup = getIsFlexConsumptionAzureFunction()
69
+ ? (DD_AZURE_RESOURCE_GROUP ?? WEBSITE_RESOURCE_GROUP ?? extractResourceGroup(WEBSITE_OWNER_NAME))
70
+ : (WEBSITE_RESOURCE_GROUP ?? extractResourceGroup(WEBSITE_OWNER_NAME))
60
71
 
61
72
  return trimObject({
62
73
  extensionVersion: DD_AAS_DOTNET_EXTENSION_VERSION,
@@ -1,41 +1,66 @@
1
1
  'use strict'
2
2
 
3
3
  const { storage } = require('../../datadog-core')
4
- const baggageStorage = storage('baggage')
5
4
 
5
+ /**
6
+ * Spec (API semantics):
7
+ * - OpenTelemetry Baggage API: https://opentelemetry.io/docs/specs/otel/baggage/api/
8
+ *
9
+ * In-process baggage is a string->string map stored in async local storage.
10
+ * @typedef {import('../../datadog-core/src/storage').Store<string>} BaggageStore
11
+ */
12
+
13
+ /**
14
+ * @type {{ enterWith: (store?: BaggageStore) => void, getStore: () => (BaggageStore | undefined) }}
15
+ */
16
+ const baggageStorage =
17
+ /** @type {{ enterWith: (store?: BaggageStore) => void, getStore: () => (BaggageStore | undefined) }} */ (
18
+ /** @type {unknown} */ (storage('baggage'))
19
+ )
20
+
21
+ // TODO: Implement metadata https://opentelemetry.io/docs/specs/otel/baggage/api/#set-value
6
22
  /**
7
23
  * @param {string} key
8
24
  * @param {string} value
25
+ * @param {object} [metadata] Not used yet
9
26
  */
10
- function setBaggageItem (key, value) {
11
- storage('baggage').enterWith({ ...baggageStorage.getStore(), [key]: value })
12
- return storage('baggage').getStore()
27
+ function setBaggageItem (key, value, metadata) {
28
+ if (typeof key !== 'string' || typeof value !== 'string' || key === '') {
29
+ return baggageStorage.getStore() ?? {}
30
+ }
31
+
32
+ const store = baggageStorage.getStore()
33
+ const newStore = { ...store, [key]: value }
34
+ baggageStorage.enterWith(newStore)
35
+ return newStore
13
36
  }
14
37
 
15
38
  /**
16
39
  * @param {string} key
40
+ * @returns {string | undefined}
17
41
  */
18
42
  function getBaggageItem (key) {
19
- return storage('baggage').getStore()?.[key]
43
+ return baggageStorage.getStore()?.[key]
20
44
  }
21
45
 
22
46
  function getAllBaggageItems () {
23
- return storage('baggage').getStore() ?? {}
47
+ return baggageStorage.getStore() ?? {}
24
48
  }
25
49
 
26
50
  /**
27
51
  * @param {string} keyToRemove
28
- * @returns {Record<string, unknown>}
29
52
  */
30
53
  function removeBaggageItem (keyToRemove) {
31
- const { [keyToRemove]: _, ...newBaggage } = storage('baggage').getStore()
32
- storage('baggage').enterWith(newBaggage)
54
+ const store = baggageStorage.getStore() ?? {}
55
+ const { [keyToRemove]: _, ...newBaggage } = store
56
+ baggageStorage.enterWith(newBaggage)
33
57
  return newBaggage
34
58
  }
35
59
 
36
60
  function removeAllBaggageItems () {
37
- storage('baggage').enterWith()
38
- return storage('baggage').getStore()
61
+ const newContext = /** @type {BaggageStore} */ ({})
62
+ baggageStorage.enterWith(newContext)
63
+ return newContext
39
64
  }
40
65
 
41
66
  module.exports = {
@@ -4,7 +4,7 @@ const { join } = require('path')
4
4
  const { Worker, threadId: parentThreadId } = require('worker_threads')
5
5
  const { randomUUID } = require('crypto')
6
6
  const log = require('../../log')
7
- const { getEnvironmentVariables } = require('../../config-helper')
7
+ const { getEnvironmentVariables } = require('../../config/helper')
8
8
  const getDebuggerConfig = require('../../debugger/config')
9
9
 
10
10
  const probeIdToResolveBreakpointSet = new Map()
@@ -74,6 +74,10 @@ class TestVisDynamicInstrumentation {
74
74
  // for PnP support, hence why we deviate from the DI pattern here.
75
75
  // To avoid infinite initialization loops, we're disabling DI and tracing in the worker.
76
76
  env: {
77
+ // NOTE: We intentionally use `getEnvironmentVariables()` here (raw env)
78
+ // instead of stable-config resolution helpers. The DI worker is a forked
79
+ // process that should see exactly the parent process's environment, and
80
+ // we explicitly override a few DD_ vars below to disable tracing/DI there.
77
81
  ...getEnvironmentVariables(),
78
82
  DD_CIVISIBILITY_ENABLED: 'false',
79
83
  DD_TRACE_ENABLED: 'false',
@@ -2,6 +2,7 @@
2
2
 
3
3
  const {
4
4
  workerData: {
5
+ config,
5
6
  breakpointSetChannel,
6
7
  breakpointHitChannel,
7
8
  breakpointRemoveChannel
@@ -21,6 +22,7 @@ const {
21
22
  getStackFromCallFrames
22
23
  } = require('../../../debugger/devtools_client/state')
23
24
  const log = require('../../../log')
25
+ const processTags = require('../../../process-tags')
24
26
 
25
27
  let sessionStarted = false
26
28
 
@@ -55,6 +57,10 @@ session.on('Debugger.paused', async ({ params: { hitBreakpoints: [hitBreakpoint]
55
57
  language: 'javascript'
56
58
  }
57
59
 
60
+ if (config.propagateProcessTags?.enabled) {
61
+ snapshot[processTags.DYNAMIC_INSTRUMENTATION_FIELD_NAME] = processTags.tagsObject
62
+ }
63
+
58
64
  breakpointHitChannel.postMessage({ snapshot })
59
65
  })
60
66
 
@@ -3,7 +3,7 @@
3
3
  const request = require('../../exporters/common/request')
4
4
  const id = require('../../id')
5
5
  const log = require('../../log')
6
- const { getEnvironmentVariable } = require('../../config-helper')
6
+ const { getValueFromEnvSources } = require('../../config/helper')
7
7
 
8
8
  const {
9
9
  incrementCountMetric,
@@ -51,7 +51,7 @@ function getKnownTests ({
51
51
  options.path = `${evpProxyPrefix}/api/v2/ci/libraries/tests`
52
52
  options.headers['X-Datadog-EVP-Subdomain'] = 'api'
53
53
  } else {
54
- const apiKey = getEnvironmentVariable('DD_API_KEY')
54
+ const apiKey = getValueFromEnvSources('DD_API_KEY')
55
55
  if (!apiKey) {
56
56
  return done(new Error('Known tests were not fetched because Datadog API key is not defined.'))
57
57
  }
@@ -2,7 +2,7 @@
2
2
  const request = require('../../../exporters/common/request')
3
3
  const log = require('../../../log')
4
4
  const { safeJSONStringify } = require('../../../exporters/common/util')
5
- const { getEnvironmentVariable } = require('../../../config-helper')
5
+ const { getValueFromEnvSources } = require('../../../config/helper')
6
6
 
7
7
  const { CoverageCIVisibilityEncoder } = require('../../../encode/coverage-ci-visibility')
8
8
  const BaseWriter = require('../../../exporters/common/writer')
@@ -29,7 +29,7 @@ class Writer extends BaseWriter {
29
29
  path: '/api/v2/citestcov',
30
30
  method: 'POST',
31
31
  headers: {
32
- 'dd-api-key': getEnvironmentVariable('DD_API_KEY'),
32
+ 'dd-api-key': getValueFromEnvSources('DD_API_KEY'),
33
33
  ...form.getHeaders()
34
34
  },
35
35
  timeout: 15_000,
@@ -3,7 +3,7 @@ const request = require('../../../exporters/common/request')
3
3
  const log = require('../../../log')
4
4
  const { safeJSONStringify } = require('../../../exporters/common/util')
5
5
  const { JSONEncoder } = require('../../encode/json-encoder')
6
- const { getEnvironmentVariable } = require('../../../config-helper')
6
+ const { getValueFromEnvSources } = require('../../../config/helper')
7
7
 
8
8
  const BaseWriter = require('../../../exporters/common/writer')
9
9
 
@@ -24,7 +24,7 @@ class DynamicInstrumentationLogsWriter extends BaseWriter {
24
24
  path: '/api/v2/logs',
25
25
  method: 'POST',
26
26
  headers: {
27
- 'dd-api-key': getEnvironmentVariable('DD_API_KEY'),
27
+ 'dd-api-key': getValueFromEnvSources('DD_API_KEY'),
28
28
  'Content-Type': 'application/json'
29
29
  },
30
30
  // TODO: what's a good value for timeout for the logs intake?
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
3
  const URL = require('url').URL
4
- const Writer = require('./writer')
5
- const CoverageWriter = require('./coverage-writer')
6
4
  const CiVisibilityExporter = require('../ci-visibility-exporter')
7
5
  const log = require('../../../log')
6
+ const Writer = require('./writer')
7
+ const CoverageWriter = require('./coverage-writer')
8
8
 
9
9
  class AgentlessCiVisibilityExporter extends CiVisibilityExporter {
10
10
  constructor (config) {
@@ -2,7 +2,7 @@
2
2
  const request = require('../../../exporters/common/request')
3
3
  const { safeJSONStringify } = require('../../../exporters/common/util')
4
4
  const log = require('../../../log')
5
- const { getEnvironmentVariable } = require('../../../config-helper')
5
+ const { getValueFromEnvSources } = require('../../../config/helper')
6
6
 
7
7
  const { AgentlessCiVisibilityEncoder } = require('../../../encode/agentless-ci-visibility')
8
8
  const BaseWriter = require('../../../exporters/common/writer')
@@ -30,7 +30,7 @@ class Writer extends BaseWriter {
30
30
  path: '/api/v2/citestcycle',
31
31
  method: 'POST',
32
32
  headers: {
33
- 'dd-api-key': getEnvironmentVariable('DD_API_KEY'),
33
+ 'dd-api-key': getValueFromEnvSources('DD_API_KEY'),
34
34
  'Content-Type': 'application/msgpack'
35
35
  },
36
36
  timeout: 15_000,
@@ -2,7 +2,6 @@
2
2
 
3
3
  const URL = require('url').URL
4
4
 
5
- const { sendGitMetadata: sendGitMetadataRequest } = require('./git/git_metadata')
6
5
  const { getLibraryConfiguration: getLibraryConfigurationRequest } = require('../requests/get-library-configuration')
7
6
  const { getSkippableSuites: getSkippableSuitesRequest } = require('../intelligent-test-runner/get-skippable-suites')
8
7
  const { getKnownTests: getKnownTestsRequest } = require('../early-flake-detection/get-known-tests')
@@ -11,6 +10,7 @@ const { getTestManagementTests: getTestManagementTestsRequest } =
11
10
  const log = require('../../log')
12
11
  const AgentInfoExporter = require('../../exporters/common/agent-info-exporter')
13
12
  const { GIT_REPOSITORY_URL, GIT_COMMIT_SHA } = require('../../plugins/util/tags')
13
+ const { sendGitMetadata: sendGitMetadataRequest } = require('./git/git_metadata')
14
14
 
15
15
  function getTestConfigurationTags (tags) {
16
16
  if (!tags) {
@@ -68,7 +68,7 @@ class CiVisibilityExporter extends AgentInfoExporter {
68
68
  }
69
69
  })
70
70
 
71
- process.once('beforeExit', () => {
71
+ const flush = () => {
72
72
  if (this._writer) {
73
73
  this._writer.flush()
74
74
  }
@@ -78,7 +78,8 @@ class CiVisibilityExporter extends AgentInfoExporter {
78
78
  if (this._logsWriter) {
79
79
  this._logsWriter.flush()
80
80
  }
81
- })
81
+ }
82
+ globalThis[Symbol.for('dd-trace')].beforeExitHandlers.add(flush.bind(this))
82
83
  }
83
84
 
84
85
  shouldRequestSkippableSuites () {
@@ -5,7 +5,7 @@ const path = require('path')
5
5
 
6
6
  const FormData = require('../../../exporters/common/form-data')
7
7
  const request = require('../../../exporters/common/request')
8
- const { getEnvironmentVariable } = require('../../../config-helper')
8
+ const { getValueFromEnvSources } = require('../../../config/helper')
9
9
 
10
10
  const log = require('../../../log')
11
11
  const { isFalse } = require('../../../util')
@@ -51,7 +51,7 @@ function getCommonRequestOptions (url) {
51
51
  return {
52
52
  method: 'POST',
53
53
  headers: {
54
- 'dd-api-key': getEnvironmentVariable('DD_API_KEY')
54
+ 'dd-api-key': getValueFromEnvSources('DD_API_KEY')
55
55
  },
56
56
  timeout: 15_000,
57
57
  url
@@ -288,7 +288,7 @@ function sendGitMetadata (url, { isEvpProxy, evpProxyPrefix }, configRepositoryU
288
288
  }
289
289
  // Otherwise we unshallow and get commits to upload again
290
290
  log.debug('It is shallow clone, unshallowing...')
291
- if (!isFalse(getEnvironmentVariable('DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED'))) {
291
+ if (!isFalse(getValueFromEnvSources('DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED'))) {
292
292
  unshallowRepository(false)
293
293
  }
294
294
 
@@ -1,6 +1,5 @@
1
1
  'use strict'
2
2
 
3
- const Writer = require('./writer')
4
3
  const {
5
4
  JEST_WORKER_COVERAGE_PAYLOAD_CODE,
6
5
  JEST_WORKER_TRACE_PAYLOAD_CODE,
@@ -11,7 +10,8 @@ const {
11
10
  VITEST_WORKER_TRACE_PAYLOAD_CODE,
12
11
  VITEST_WORKER_LOGS_PAYLOAD_CODE
13
12
  } = require('../../../plugins/util/test')
14
- const { getEnvironmentVariable } = require('../../../config-helper')
13
+ const { getEnvironmentVariable, getValueFromEnvSources } = require('../../../config/helper')
14
+ const Writer = require('./writer')
15
15
 
16
16
  function getInterprocessTraceCode () {
17
17
  if (getEnvironmentVariable('JEST_WORKER_ID')) {
@@ -23,13 +23,13 @@ function getInterprocessTraceCode () {
23
23
  if (getEnvironmentVariable('MOCHA_WORKER_ID')) {
24
24
  return MOCHA_WORKER_TRACE_PAYLOAD_CODE
25
25
  }
26
- if (getEnvironmentVariable('DD_PLAYWRIGHT_WORKER')) {
26
+ if (getValueFromEnvSources('DD_PLAYWRIGHT_WORKER')) {
27
27
  return PLAYWRIGHT_WORKER_TRACE_PAYLOAD_CODE
28
28
  }
29
29
  if (getEnvironmentVariable('TINYPOOL_WORKER_ID')) {
30
30
  return VITEST_WORKER_TRACE_PAYLOAD_CODE
31
31
  }
32
- if (getEnvironmentVariable('DD_VITEST_WORKER')) {
32
+ if (getValueFromEnvSources('DD_VITEST_WORKER')) {
33
33
  return VITEST_WORKER_TRACE_PAYLOAD_CODE
34
34
  }
35
35
  return null
@@ -50,7 +50,7 @@ function getInterprocessLogsCode () {
50
50
  if (getEnvironmentVariable('TINYPOOL_WORKER_ID')) {
51
51
  return VITEST_WORKER_LOGS_PAYLOAD_CODE
52
52
  }
53
- if (getEnvironmentVariable('DD_VITEST_WORKER')) {
53
+ if (getValueFromEnvSources('DD_VITEST_WORKER')) {
54
54
  return VITEST_WORKER_LOGS_PAYLOAD_CODE
55
55
  }
56
56
  return null
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
  const { JSONEncoder } = require('../../encode/json-encoder')
3
- const { getEnvironmentVariable } = require('../../../config-helper')
3
+ const { getEnvironmentVariable } = require('../../../config/helper')
4
4
  const log = require('../../../log')
5
5
  const {
6
6
  VITEST_WORKER_TRACE_PAYLOAD_CODE,
@@ -2,7 +2,7 @@
2
2
 
3
3
  const request = require('../../exporters/common/request')
4
4
  const log = require('../../log')
5
- const { getEnvironmentVariable } = require('../../config-helper')
5
+ const { getValueFromEnvSources } = require('../../config/helper')
6
6
  const {
7
7
  incrementCountMetric,
8
8
  distributionMetric,
@@ -49,7 +49,7 @@ function getSkippableSuites ({
49
49
  options.path = `${evpProxyPrefix}/api/v2/ci/tests/skippable`
50
50
  options.headers['X-Datadog-EVP-Subdomain'] = 'api'
51
51
  } else {
52
- const apiKey = getEnvironmentVariable('DD_API_KEY')
52
+ const apiKey = getValueFromEnvSources('DD_API_KEY')
53
53
  if (!apiKey) {
54
54
  return done(new Error('Skippable suites were not fetched because Datadog API key is not defined.'))
55
55
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  const Plugin = require('../../plugins/plugin')
4
4
  const log = require('../../log')
5
- const { getEnvironmentVariable } = require('../../config-helper')
5
+ const { getValueFromEnvSources } = require('../../config/helper')
6
6
 
7
7
  function getWinstonLogSubmissionParameters (config) {
8
8
  const { site, service } = config
@@ -12,16 +12,16 @@ function getWinstonLogSubmissionParameters (config) {
12
12
  path: `/api/v2/logs?ddsource=winston&service=${service}`,
13
13
  ssl: true,
14
14
  headers: {
15
- 'DD-API-KEY': getEnvironmentVariable('DD_API_KEY')
15
+ 'DD-API-KEY': getValueFromEnvSources('DD_API_KEY')
16
16
  }
17
17
  }
18
18
 
19
- if (!getEnvironmentVariable('DD_AGENTLESS_LOG_SUBMISSION_URL')) {
19
+ if (!getValueFromEnvSources('DD_AGENTLESS_LOG_SUBMISSION_URL')) {
20
20
  return defaultParameters
21
21
  }
22
22
 
23
23
  try {
24
- const url = new URL(getEnvironmentVariable('DD_AGENTLESS_LOG_SUBMISSION_URL'))
24
+ const url = new URL(getValueFromEnvSources('DD_AGENTLESS_LOG_SUBMISSION_URL'))
25
25
  return {
26
26
  host: url.hostname,
27
27
  port: url.port,
@@ -3,7 +3,7 @@
3
3
  const request = require('../../exporters/common/request')
4
4
  const id = require('../../id')
5
5
  const log = require('../../log')
6
- const { getEnvironmentVariable } = require('../../config-helper')
6
+ const { getValueFromEnvSources } = require('../../config/helper')
7
7
  const {
8
8
  incrementCountMetric,
9
9
  distributionMetric,
@@ -48,7 +48,7 @@ function getLibraryConfiguration ({
48
48
  options.path = `${evpProxyPrefix}/api/v2/libraries/tests/services/setting`
49
49
  options.headers['X-Datadog-EVP-Subdomain'] = 'api'
50
50
  } else {
51
- const apiKey = getEnvironmentVariable('DD_API_KEY')
51
+ const apiKey = getValueFromEnvSources('DD_API_KEY')
52
52
  if (!apiKey) {
53
53
  return done(new Error('Request to settings endpoint was not done because Datadog API key is not defined.'))
54
54
  }
@@ -126,11 +126,11 @@ function getLibraryConfiguration ({
126
126
 
127
127
  log.debug('Remote settings: %j', settings)
128
128
 
129
- if (getEnvironmentVariable('DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE')) {
129
+ if (getValueFromEnvSources('DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE')) {
130
130
  settings.isCodeCoverageEnabled = true
131
131
  log.debug('Dangerously set code coverage to true')
132
132
  }
133
- if (getEnvironmentVariable('DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING')) {
133
+ if (getValueFromEnvSources('DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING')) {
134
134
  settings.isSuitesSkippingEnabled = true
135
135
  log.debug('Dangerously set test skipping to true')
136
136
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  const request = require('../../exporters/common/request')
4
4
  const id = require('../../id')
5
- const { getEnvironmentVariable } = require('../../config-helper')
5
+ const { getValueFromEnvSources } = require('../../config/helper')
6
6
  const log = require('../../log')
7
7
 
8
8
  function getTestManagementTests ({
@@ -35,7 +35,7 @@ function getTestManagementTests ({
35
35
  options.path = `${evpProxyPrefix}/api/v2/test/libraries/test-management/tests`
36
36
  options.headers['X-Datadog-EVP-Subdomain'] = 'api'
37
37
  } else {
38
- const apiKey = getEnvironmentVariable('DD_API_KEY')
38
+ const apiKey = getValueFromEnvSources('DD_API_KEY')
39
39
  if (!apiKey) {
40
40
  return done(new Error('Test management tests were not fetched because Datadog API key is not defined.'))
41
41
  }
@@ -1,8 +1,8 @@
1
1
  'use strict'
2
2
 
3
- const pkg = require('./pkg')
4
- const { GRPC_CLIENT_ERROR_STATUSES, GRPC_SERVER_ERROR_STATUSES } = require('./constants')
5
- const { getEnvironmentVariable: getEnv } = require('./config-helper')
3
+ const pkg = require('../pkg')
4
+ const { GRPC_CLIENT_ERROR_STATUSES, GRPC_SERVER_ERROR_STATUSES } = require('../constants')
5
+ const { getEnvironmentVariable: getEnv } = require('./helper')
6
6
 
7
7
  // eslint-disable-next-line @stylistic/max-len
8
8
  const qsRegex = String.raw`(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\s|%20)*(?:=|%3D)[^&]+|(?:"|%22)(?:\s|%20)*(?::|%3A)(?:\s|%20)*(?:"|%22)(?:%2[^2]|%[^2]|[^"%])+(?:"|%22))|bearer(?:\s|%20)+[a-z0-9\._\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\w=-]|%3D)+\.ey[I-L](?:[\w=-]|%3D)+(?:\.(?:[\w.+\/=-]|%3D|%2F|%2B)+)?|[\-]{5}BEGIN(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY[\-]{5}[^\-]+[\-]{5}END(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY|ssh-rsa(?:\s|%20)*(?:[a-z0-9\/\.+]|%2F|%5C|%2B){100,}`
@@ -114,6 +114,7 @@ module.exports = {
114
114
  isFlakyTestRetriesEnabled: false,
115
115
  flakyTestRetriesCount: 5,
116
116
  isGCPFunction: false,
117
+ isGCPPubSubPushSubscriptionEnabled: true,
117
118
  isGitUploadEnabled: false,
118
119
  isIntelligentTestRunnerEnabled: false,
119
120
  isManualApiEnabled: false,
@@ -205,7 +206,7 @@ module.exports = {
205
206
  'tracePropagationStyle.inject': ['datadog', 'tracecontext', 'baggage'],
206
207
  'tracePropagationStyle.extract': ['datadog', 'tracecontext', 'baggage'],
207
208
  'tracePropagationStyle.otelPropagators': false,
208
- traceWebsocketMessagesEnabled: false,
209
+ traceWebsocketMessagesEnabled: true,
209
210
  traceWebsocketMessagesInheritSampling: true,
210
211
  traceWebsocketMessagesSeparateTraces: true,
211
212
  tracing: true,