dd-trace 5.83.0 → 5.85.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 (630) hide show
  1. package/LICENSE-3rdparty.csv +0 -1
  2. package/ci/cypress/polyfills.js +1 -1
  3. package/ci/init.js +5 -5
  4. package/ext/exporters.js +1 -1
  5. package/ext/formats.js +1 -1
  6. package/ext/index.js +1 -1
  7. package/ext/kinds.js +1 -1
  8. package/ext/priority.js +1 -1
  9. package/ext/scopes.js +1 -1
  10. package/ext/tags.js +1 -1
  11. package/ext/types.js +1 -1
  12. package/index.d.ts +115 -2
  13. package/initialize.mjs +47 -31
  14. package/loader-hook.mjs +35 -22
  15. package/package.json +36 -33
  16. package/packages/datadog-code-origin/index.js +12 -10
  17. package/packages/datadog-core/src/utils/src/pick.js +2 -2
  18. package/packages/datadog-esbuild/index.js +75 -79
  19. package/packages/datadog-esbuild/src/log.js +32 -0
  20. package/packages/datadog-esbuild/src/utils.js +12 -8
  21. package/packages/datadog-instrumentations/src/aerospike.js +3 -3
  22. package/packages/datadog-instrumentations/src/ai.js +5 -5
  23. package/packages/datadog-instrumentations/src/amqp10.js +1 -1
  24. package/packages/datadog-instrumentations/src/amqplib.js +1 -1
  25. package/packages/datadog-instrumentations/src/anthropic.js +3 -3
  26. package/packages/datadog-instrumentations/src/apollo-server.js +4 -4
  27. package/packages/datadog-instrumentations/src/apollo.js +2 -2
  28. package/packages/datadog-instrumentations/src/avsc.js +1 -1
  29. package/packages/datadog-instrumentations/src/aws-sdk.js +4 -4
  30. package/packages/datadog-instrumentations/src/azure-event-hubs.js +2 -2
  31. package/packages/datadog-instrumentations/src/azure-functions.js +1 -1
  32. package/packages/datadog-instrumentations/src/azure-service-bus.js +1 -1
  33. package/packages/datadog-instrumentations/src/body-parser.js +2 -2
  34. package/packages/datadog-instrumentations/src/bunyan.js +1 -1
  35. package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
  36. package/packages/datadog-instrumentations/src/child_process.js +7 -7
  37. package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +17 -16
  38. package/packages/datadog-instrumentations/src/cookie-parser.js +1 -1
  39. package/packages/datadog-instrumentations/src/couchbase.js +8 -6
  40. package/packages/datadog-instrumentations/src/crypto.js +1 -1
  41. package/packages/datadog-instrumentations/src/cucumber.js +19 -19
  42. package/packages/datadog-instrumentations/src/cypress.js +1 -1
  43. package/packages/datadog-instrumentations/src/dns.js +2 -2
  44. package/packages/datadog-instrumentations/src/elasticsearch.js +2 -2
  45. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +2 -2
  46. package/packages/datadog-instrumentations/src/express-session.js +1 -1
  47. package/packages/datadog-instrumentations/src/express.js +4 -4
  48. package/packages/datadog-instrumentations/src/fastify.js +1 -1
  49. package/packages/datadog-instrumentations/src/fetch.js +2 -2
  50. package/packages/datadog-instrumentations/src/fs.js +7 -7
  51. package/packages/datadog-instrumentations/src/generic-pool.js +2 -2
  52. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +8 -8
  53. package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +4 -4
  54. package/packages/datadog-instrumentations/src/google-genai.js +1 -1
  55. package/packages/datadog-instrumentations/src/graphql.js +10 -10
  56. package/packages/datadog-instrumentations/src/grpc/client.js +9 -13
  57. package/packages/datadog-instrumentations/src/grpc/types.js +1 -1
  58. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
  59. package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +1 -1
  60. package/packages/datadog-instrumentations/src/helpers/extract-package-and-module-path.js +2 -2
  61. package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -1
  62. package/packages/datadog-instrumentations/src/helpers/register.js +7 -7
  63. package/packages/datadog-instrumentations/src/helpers/rewriter/compiler.js +6 -0
  64. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +1 -0
  65. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -1
  66. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langchain.js +55 -55
  67. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +74 -17
  68. package/packages/datadog-instrumentations/src/helpers/router-helper.js +7 -7
  69. package/packages/datadog-instrumentations/src/helpers/shared-utils.js +1 -1
  70. package/packages/datadog-instrumentations/src/hono.js +6 -6
  71. package/packages/datadog-instrumentations/src/http/client.js +1 -1
  72. package/packages/datadog-instrumentations/src/http/server.js +4 -4
  73. package/packages/datadog-instrumentations/src/http2/server.js +1 -1
  74. package/packages/datadog-instrumentations/src/ioredis.js +1 -1
  75. package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
  76. package/packages/datadog-instrumentations/src/jest.js +250 -106
  77. package/packages/datadog-instrumentations/src/kafkajs.js +9 -8
  78. package/packages/datadog-instrumentations/src/knex.js +2 -2
  79. package/packages/datadog-instrumentations/src/koa.js +3 -1
  80. package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
  81. package/packages/datadog-instrumentations/src/light-my-request.js +1 -1
  82. package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
  83. package/packages/datadog-instrumentations/src/mariadb.js +1 -1
  84. package/packages/datadog-instrumentations/src/memcached.js +1 -1
  85. package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
  86. package/packages/datadog-instrumentations/src/mocha/main.js +24 -24
  87. package/packages/datadog-instrumentations/src/mocha/utils.js +15 -11
  88. package/packages/datadog-instrumentations/src/mocha/worker.js +4 -4
  89. package/packages/datadog-instrumentations/src/moleculer/server.js +1 -1
  90. package/packages/datadog-instrumentations/src/mongodb-core.js +3 -3
  91. package/packages/datadog-instrumentations/src/mongodb.js +7 -7
  92. package/packages/datadog-instrumentations/src/mongoose.js +10 -10
  93. package/packages/datadog-instrumentations/src/mquery.js +6 -6
  94. package/packages/datadog-instrumentations/src/multer.js +1 -1
  95. package/packages/datadog-instrumentations/src/mysql.js +1 -1
  96. package/packages/datadog-instrumentations/src/net.js +6 -6
  97. package/packages/datadog-instrumentations/src/next.js +6 -6
  98. package/packages/datadog-instrumentations/src/nyc.js +34 -2
  99. package/packages/datadog-instrumentations/src/openai.js +24 -24
  100. package/packages/datadog-instrumentations/src/oracledb.js +2 -2
  101. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
  102. package/packages/datadog-instrumentations/src/passport-http.js +1 -1
  103. package/packages/datadog-instrumentations/src/passport-local.js +1 -1
  104. package/packages/datadog-instrumentations/src/passport-utils.js +1 -1
  105. package/packages/datadog-instrumentations/src/passport.js +1 -1
  106. package/packages/datadog-instrumentations/src/pg.js +3 -3
  107. package/packages/datadog-instrumentations/src/pino.js +2 -2
  108. package/packages/datadog-instrumentations/src/playwright.js +71 -67
  109. package/packages/datadog-instrumentations/src/prisma.js +24 -78
  110. package/packages/datadog-instrumentations/src/promise-js.js +1 -1
  111. package/packages/datadog-instrumentations/src/promise.js +1 -1
  112. package/packages/datadog-instrumentations/src/protobufjs.js +6 -6
  113. package/packages/datadog-instrumentations/src/q.js +2 -2
  114. package/packages/datadog-instrumentations/src/redis.js +2 -2
  115. package/packages/datadog-instrumentations/src/rhea.js +5 -5
  116. package/packages/datadog-instrumentations/src/router.js +8 -8
  117. package/packages/datadog-instrumentations/src/selenium.js +3 -3
  118. package/packages/datadog-instrumentations/src/sequelize.js +1 -1
  119. package/packages/datadog-instrumentations/src/sharedb.js +2 -2
  120. package/packages/datadog-instrumentations/src/tedious.js +1 -1
  121. package/packages/datadog-instrumentations/src/undici.js +2 -2
  122. package/packages/datadog-instrumentations/src/url.js +5 -5
  123. package/packages/datadog-instrumentations/src/vitest.js +56 -45
  124. package/packages/datadog-instrumentations/src/when.js +1 -1
  125. package/packages/datadog-instrumentations/src/winston.js +1 -1
  126. package/packages/datadog-instrumentations/src/ws.js +128 -41
  127. package/packages/datadog-plugin-aerospike/src/index.js +4 -4
  128. package/packages/datadog-plugin-ai/src/index.js +1 -1
  129. package/packages/datadog-plugin-ai/src/tracing.js +2 -2
  130. package/packages/datadog-plugin-ai/src/utils.js +1 -1
  131. package/packages/datadog-plugin-amqp10/src/consumer.js +2 -2
  132. package/packages/datadog-plugin-amqp10/src/index.js +1 -1
  133. package/packages/datadog-plugin-amqp10/src/producer.js +2 -2
  134. package/packages/datadog-plugin-amqplib/src/client.js +2 -2
  135. package/packages/datadog-plugin-amqplib/src/consumer.js +2 -2
  136. package/packages/datadog-plugin-amqplib/src/index.js +1 -1
  137. package/packages/datadog-plugin-amqplib/src/producer.js +2 -2
  138. package/packages/datadog-plugin-amqplib/src/util.js +1 -1
  139. package/packages/datadog-plugin-anthropic/src/index.js +1 -1
  140. package/packages/datadog-plugin-anthropic/src/tracing.js +2 -2
  141. package/packages/datadog-plugin-apollo/src/gateway/fetch.js +1 -1
  142. package/packages/datadog-plugin-apollo/src/gateway/index.js +1 -1
  143. package/packages/datadog-plugin-apollo/src/gateway/request.js +5 -5
  144. package/packages/datadog-plugin-apollo/src/index.js +1 -1
  145. package/packages/datadog-plugin-avsc/src/schema_iterator.js +3 -3
  146. package/packages/datadog-plugin-aws-sdk/src/base.js +11 -10
  147. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
  148. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +1 -1
  149. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +24 -24
  150. package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
  151. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +1 -1
  152. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +6 -6
  153. package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +3 -3
  154. package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
  155. package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
  156. package/packages/datadog-plugin-aws-sdk/src/services/sns.js +5 -5
  157. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +12 -12
  158. package/packages/datadog-plugin-aws-sdk/src/util.js +1 -1
  159. package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
  160. package/packages/datadog-plugin-azure-event-hubs/src/producer.js +3 -3
  161. package/packages/datadog-plugin-azure-functions/src/index.js +11 -10
  162. package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
  163. package/packages/datadog-plugin-azure-service-bus/src/producer.js +3 -3
  164. package/packages/datadog-plugin-bullmq/src/consumer.js +2 -2
  165. package/packages/datadog-plugin-bullmq/src/index.js +1 -1
  166. package/packages/datadog-plugin-bullmq/src/producer.js +11 -11
  167. package/packages/datadog-plugin-cassandra-driver/src/index.js +2 -2
  168. package/packages/datadog-plugin-child_process/src/index.js +2 -2
  169. package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +5 -5
  170. package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
  171. package/packages/datadog-plugin-couchbase/src/index.js +3 -3
  172. package/packages/datadog-plugin-cucumber/src/index.js +46 -45
  173. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +68 -55
  174. package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
  175. package/packages/datadog-plugin-cypress/src/support.js +56 -9
  176. package/packages/datadog-plugin-dd-trace-api/src/index.js +1 -1
  177. package/packages/datadog-plugin-dns/src/index.js +1 -1
  178. package/packages/datadog-plugin-dns/src/lookup.js +2 -2
  179. package/packages/datadog-plugin-dns/src/lookup_service.js +3 -3
  180. package/packages/datadog-plugin-dns/src/resolve.js +2 -2
  181. package/packages/datadog-plugin-dns/src/reverse.js +2 -2
  182. package/packages/datadog-plugin-elasticsearch/src/index.js +2 -2
  183. package/packages/datadog-plugin-express/src/index.js +1 -1
  184. package/packages/datadog-plugin-fastify/src/index.js +1 -1
  185. package/packages/datadog-plugin-fs/src/index.js +2 -2
  186. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +2 -2
  187. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +8 -6
  188. package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -1
  189. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +11 -10
  190. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +6 -6
  191. package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
  192. package/packages/datadog-plugin-google-cloud-vertexai/src/tracing.js +2 -2
  193. package/packages/datadog-plugin-google-cloud-vertexai/src/utils.js +1 -1
  194. package/packages/datadog-plugin-google-genai/src/index.js +1 -1
  195. package/packages/datadog-plugin-google-genai/src/tracing.js +2 -2
  196. package/packages/datadog-plugin-graphql/src/execute.js +2 -2
  197. package/packages/datadog-plugin-graphql/src/index.js +2 -2
  198. package/packages/datadog-plugin-graphql/src/parse.js +1 -1
  199. package/packages/datadog-plugin-graphql/src/resolve.js +6 -6
  200. package/packages/datadog-plugin-graphql/src/utils.js +1 -1
  201. package/packages/datadog-plugin-graphql/src/validate.js +2 -2
  202. package/packages/datadog-plugin-grpc/src/client.js +3 -3
  203. package/packages/datadog-plugin-grpc/src/index.js +1 -1
  204. package/packages/datadog-plugin-grpc/src/server.js +3 -3
  205. package/packages/datadog-plugin-grpc/src/util.js +2 -2
  206. package/packages/datadog-plugin-http/src/client.js +10 -10
  207. package/packages/datadog-plugin-http/src/index.js +1 -1
  208. package/packages/datadog-plugin-http2/src/client.js +6 -6
  209. package/packages/datadog-plugin-http2/src/index.js +1 -1
  210. package/packages/datadog-plugin-http2/src/server.js +1 -1
  211. package/packages/datadog-plugin-jest/src/index.js +39 -22
  212. package/packages/datadog-plugin-jest/src/util.js +1 -1
  213. package/packages/datadog-plugin-kafkajs/src/consumer.js +5 -5
  214. package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
  215. package/packages/datadog-plugin-kafkajs/src/producer.js +5 -5
  216. package/packages/datadog-plugin-kafkajs/src/utils.js +1 -1
  217. package/packages/datadog-plugin-langchain/src/tokens.js +2 -2
  218. package/packages/datadog-plugin-langchain/src/tracing.js +4 -4
  219. package/packages/datadog-plugin-memcached/src/index.js +2 -2
  220. package/packages/datadog-plugin-mocha/src/index.js +12 -12
  221. package/packages/datadog-plugin-moleculer/src/client.js +1 -1
  222. package/packages/datadog-plugin-moleculer/src/index.js +1 -1
  223. package/packages/datadog-plugin-moleculer/src/server.js +2 -2
  224. package/packages/datadog-plugin-moleculer/src/util.js +1 -1
  225. package/packages/datadog-plugin-mongodb-core/src/index.js +5 -5
  226. package/packages/datadog-plugin-mysql/src/index.js +2 -2
  227. package/packages/datadog-plugin-net/src/ipc.js +2 -2
  228. package/packages/datadog-plugin-net/src/tcp.js +4 -4
  229. package/packages/datadog-plugin-next/src/index.js +4 -4
  230. package/packages/datadog-plugin-nyc/src/index.js +60 -0
  231. package/packages/datadog-plugin-openai/src/index.js +1 -1
  232. package/packages/datadog-plugin-openai/src/services.js +3 -3
  233. package/packages/datadog-plugin-openai/src/stream-helpers.js +1 -1
  234. package/packages/datadog-plugin-openai/src/tracing.js +10 -10
  235. package/packages/datadog-plugin-oracledb/src/connection-parser.js +1 -1
  236. package/packages/datadog-plugin-oracledb/src/index.js +1 -1
  237. package/packages/datadog-plugin-pg/src/index.js +2 -2
  238. package/packages/datadog-plugin-playwright/src/index.js +42 -42
  239. package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +95 -0
  240. package/packages/datadog-plugin-prisma/src/index.js +129 -10
  241. package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +3 -3
  242. package/packages/datadog-plugin-redis/src/index.js +2 -2
  243. package/packages/datadog-plugin-restify/src/index.js +1 -1
  244. package/packages/datadog-plugin-rhea/src/consumer.js +2 -2
  245. package/packages/datadog-plugin-rhea/src/index.js +1 -1
  246. package/packages/datadog-plugin-rhea/src/producer.js +2 -2
  247. package/packages/datadog-plugin-router/src/index.js +3 -3
  248. package/packages/datadog-plugin-selenium/src/index.js +2 -2
  249. package/packages/datadog-plugin-sharedb/src/index.js +2 -2
  250. package/packages/datadog-plugin-tedious/src/index.js +2 -2
  251. package/packages/datadog-plugin-undici/src/index.js +5 -5
  252. package/packages/datadog-plugin-vitest/src/index.js +39 -18
  253. package/packages/datadog-plugin-ws/src/close.js +10 -11
  254. package/packages/datadog-plugin-ws/src/index.js +1 -1
  255. package/packages/datadog-plugin-ws/src/producer.js +8 -9
  256. package/packages/datadog-plugin-ws/src/receiver.js +8 -9
  257. package/packages/datadog-plugin-ws/src/server.js +17 -12
  258. package/packages/datadog-plugin-ws/src/util.js +48 -16
  259. package/packages/datadog-shimmer/src/shimmer.js +5 -8
  260. package/packages/dd-trace/index.js +2 -2
  261. package/packages/dd-trace/src/agent/info.js +57 -0
  262. package/packages/dd-trace/src/agent/url.js +28 -0
  263. package/packages/dd-trace/src/aiguard/client.js +3 -3
  264. package/packages/dd-trace/src/aiguard/sdk.js +6 -6
  265. package/packages/dd-trace/src/aiguard/tags.js +1 -1
  266. package/packages/dd-trace/src/analytics_sampler.js +1 -1
  267. package/packages/dd-trace/src/appsec/activation.js +1 -1
  268. package/packages/dd-trace/src/appsec/addresses.js +1 -1
  269. package/packages/dd-trace/src/appsec/api_security_sampler.js +1 -1
  270. package/packages/dd-trace/src/appsec/blocked_templates.js +1 -1
  271. package/packages/dd-trace/src/appsec/blocking.js +5 -5
  272. package/packages/dd-trace/src/appsec/channels.js +1 -1
  273. package/packages/dd-trace/src/appsec/graphql.js +13 -13
  274. package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +1 -1
  275. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
  276. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +6 -5
  277. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +2 -2
  278. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-rule-type.js +1 -1
  279. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +148 -148
  280. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +148 -148
  281. package/packages/dd-trace/src/appsec/iast/analyzers/index.js +1 -1
  282. package/packages/dd-trace/src/appsec/iast/analyzers/missing-header-analyzer.js +1 -1
  283. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +7 -8
  284. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +2 -2
  285. package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +2 -2
  286. package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +2 -2
  287. package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +3 -3
  288. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
  289. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +2 -2
  290. package/packages/dd-trace/src/appsec/iast/context/context-plugin.js +3 -3
  291. package/packages/dd-trace/src/appsec/iast/iast-context.js +6 -3
  292. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +17 -9
  293. package/packages/dd-trace/src/appsec/iast/index.js +2 -2
  294. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +9 -9
  295. package/packages/dd-trace/src/appsec/iast/path-line.js +6 -6
  296. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +11 -11
  297. package/packages/dd-trace/src/appsec/iast/security-controls/parser.js +49 -17
  298. package/packages/dd-trace/src/appsec/iast/tags.js +1 -1
  299. package/packages/dd-trace/src/appsec/iast/taint-tracking/constants.js +1 -1
  300. package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +2 -2
  301. package/packages/dd-trace/src/appsec/iast/taint-tracking/filter.js +1 -1
  302. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +2 -2
  303. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +3 -6
  304. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -2
  305. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +5 -5
  306. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +4 -4
  307. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +5 -5
  308. package/packages/dd-trace/src/appsec/iast/taint-tracking/secure-marks.js +6 -4
  309. package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +1 -1
  310. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +8 -8
  311. package/packages/dd-trace/src/appsec/iast/telemetry/iast-metric.js +4 -4
  312. package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +2 -2
  313. package/packages/dd-trace/src/appsec/iast/telemetry/span-tags.js +6 -6
  314. package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +2 -2
  315. package/packages/dd-trace/src/appsec/iast/utils.js +3 -3
  316. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/constants.js +1 -1
  317. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +1 -1
  318. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/hardcoded-password-analyzer.js +1 -1
  319. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +6 -6
  320. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/tainted-range-based-sensitive-analyzer.js +1 -1
  321. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +8 -8
  322. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +1 -1
  323. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +12 -11
  324. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +5 -5
  325. package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +1 -1
  326. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -4
  327. package/packages/dd-trace/src/appsec/index.js +65 -27
  328. package/packages/dd-trace/src/appsec/rasp/command_injection.js +3 -3
  329. package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +4 -4
  330. package/packages/dd-trace/src/appsec/rasp/index.js +2 -2
  331. package/packages/dd-trace/src/appsec/rasp/lfi.js +5 -5
  332. package/packages/dd-trace/src/appsec/rasp/sql_injection.js +2 -2
  333. package/packages/dd-trace/src/appsec/rasp/ssrf.js +1 -1
  334. package/packages/dd-trace/src/appsec/rasp/utils.js +4 -4
  335. package/packages/dd-trace/src/appsec/rc-products.js +1 -1
  336. package/packages/dd-trace/src/appsec/remote_config.js +3 -3
  337. package/packages/dd-trace/src/appsec/reporter.js +11 -11
  338. package/packages/dd-trace/src/appsec/rule_manager.js +1 -1
  339. package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
  340. package/packages/dd-trace/src/appsec/sdk/set_user.js +2 -2
  341. package/packages/dd-trace/src/appsec/sdk/track_event.js +7 -7
  342. package/packages/dd-trace/src/appsec/sdk/user_blocking.js +1 -1
  343. package/packages/dd-trace/src/appsec/sdk/utils.js +1 -1
  344. package/packages/dd-trace/src/appsec/stack_trace.js +5 -5
  345. package/packages/dd-trace/src/appsec/telemetry/common.js +3 -3
  346. package/packages/dd-trace/src/appsec/telemetry/index.js +5 -5
  347. package/packages/dd-trace/src/appsec/telemetry/rasp.js +3 -3
  348. package/packages/dd-trace/src/appsec/telemetry/user.js +4 -4
  349. package/packages/dd-trace/src/appsec/telemetry/waf.js +3 -3
  350. package/packages/dd-trace/src/appsec/user_tracking.js +7 -7
  351. package/packages/dd-trace/src/appsec/waf/diagnostics.js +2 -2
  352. package/packages/dd-trace/src/appsec/waf/index.js +1 -1
  353. package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +2 -2
  354. package/packages/dd-trace/src/azure_metadata.js +16 -9
  355. package/packages/dd-trace/src/baggage.js +1 -1
  356. package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +82 -0
  357. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +5 -5
  358. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +9 -9
  359. package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +8 -8
  360. package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +11 -11
  361. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +4 -3
  362. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +8 -6
  363. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -0
  364. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +4 -3
  365. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +39 -20
  366. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +22 -22
  367. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +1 -1
  368. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +1 -1
  369. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +8 -8
  370. package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +3 -3
  371. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +17 -12
  372. package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +92 -0
  373. package/packages/dd-trace/src/ci-visibility/telemetry.js +8 -4
  374. package/packages/dd-trace/src/ci-visibility/test-api-manual/test-api-manual-plugin.js +1 -1
  375. package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +6 -6
  376. package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +61 -0
  377. package/packages/dd-trace/src/config/defaults.js +1 -1
  378. package/packages/dd-trace/src/config/git_properties.js +1 -1
  379. package/packages/dd-trace/src/config/helper.js +2 -2
  380. package/packages/dd-trace/src/config/index.js +645 -641
  381. package/packages/dd-trace/src/config/remote_config.js +2 -1
  382. package/packages/dd-trace/src/config/stable.js +2 -2
  383. package/packages/dd-trace/src/config/supported-configurations.json +2 -1
  384. package/packages/dd-trace/src/constants.js +3 -3
  385. package/packages/dd-trace/src/crashtracking/crashtracker.js +8 -11
  386. package/packages/dd-trace/src/datastreams/checkpointer.js +1 -1
  387. package/packages/dd-trace/src/datastreams/context.js +1 -1
  388. package/packages/dd-trace/src/datastreams/encoding.js +1 -1
  389. package/packages/dd-trace/src/datastreams/fnv.js +1 -1
  390. package/packages/dd-trace/src/datastreams/index.js +8 -8
  391. package/packages/dd-trace/src/datastreams/pathway.js +5 -3
  392. package/packages/dd-trace/src/datastreams/processor.js +14 -12
  393. package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +27 -25
  394. package/packages/dd-trace/src/datastreams/schemas/schema_sampler.js +1 -1
  395. package/packages/dd-trace/src/datastreams/size.js +3 -3
  396. package/packages/dd-trace/src/datastreams/writer.js +5 -11
  397. package/packages/dd-trace/src/debugger/config.js +2 -1
  398. package/packages/dd-trace/src/debugger/constants.js +7 -0
  399. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +14 -10
  400. package/packages/dd-trace/src/debugger/devtools_client/condition.js +2 -2
  401. package/packages/dd-trace/src/debugger/devtools_client/config.js +6 -12
  402. package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
  403. package/packages/dd-trace/src/debugger/devtools_client/index.js +32 -25
  404. package/packages/dd-trace/src/debugger/devtools_client/inspector_promises_polyfill.js +1 -1
  405. package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +10 -11
  406. package/packages/dd-trace/src/debugger/devtools_client/log.js +1 -1
  407. package/packages/dd-trace/src/debugger/devtools_client/send.js +54 -10
  408. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +94 -37
  409. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +4 -4
  410. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +7 -7
  411. package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +2 -2
  412. package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +1 -1
  413. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -1
  414. package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +10 -1
  415. package/packages/dd-trace/src/debugger/devtools_client/state.js +65 -8
  416. package/packages/dd-trace/src/debugger/devtools_client/status.js +9 -8
  417. package/packages/dd-trace/src/debugger/index.js +95 -37
  418. package/packages/dd-trace/src/dogstatsd.js +17 -18
  419. package/packages/dd-trace/src/encode/0.4.js +7 -6
  420. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +8 -8
  421. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +3 -3
  422. package/packages/dd-trace/src/encode/span-stats.js +2 -2
  423. package/packages/dd-trace/src/encode/tags-processors.js +1 -1
  424. package/packages/dd-trace/src/exporters/agent/index.js +5 -9
  425. package/packages/dd-trace/src/exporters/agent/writer.js +5 -4
  426. package/packages/dd-trace/src/exporters/common/agents.js +1 -1
  427. package/packages/dd-trace/src/exporters/common/{agent-info-exporter.js → buffering-exporter.js} +12 -39
  428. package/packages/dd-trace/src/exporters/common/docker.js +11 -7
  429. package/packages/dd-trace/src/exporters/common/request.js +28 -8
  430. package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +2 -2
  431. package/packages/dd-trace/src/exporters/common/writer.js +2 -0
  432. package/packages/dd-trace/src/exporters/span-stats/index.js +4 -11
  433. package/packages/dd-trace/src/exporters/span-stats/writer.js +3 -3
  434. package/packages/dd-trace/src/external-logger/src/index.js +4 -4
  435. package/packages/dd-trace/src/flare/index.js +3 -3
  436. package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
  437. package/packages/dd-trace/src/heap_snapshots.js +1 -1
  438. package/packages/dd-trace/src/id.js +1 -1
  439. package/packages/dd-trace/src/iitm.js +1 -1
  440. package/packages/dd-trace/src/lambda/handler.js +1 -1
  441. package/packages/dd-trace/src/lambda/runtime/errors.js +1 -1
  442. package/packages/dd-trace/src/lambda/runtime/ritm.js +3 -3
  443. package/packages/dd-trace/src/llmobs/constants/tags.js +1 -1
  444. package/packages/dd-trace/src/llmobs/constants/text.js +1 -1
  445. package/packages/dd-trace/src/llmobs/constants/writers.js +1 -1
  446. package/packages/dd-trace/src/llmobs/index.js +2 -4
  447. package/packages/dd-trace/src/llmobs/noop.js +2 -2
  448. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +8 -8
  449. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +2 -2
  450. package/packages/dd-trace/src/llmobs/plugins/anthropic.js +5 -5
  451. package/packages/dd-trace/src/llmobs/plugins/base.js +1 -1
  452. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +8 -8
  453. package/packages/dd-trace/src/llmobs/plugins/genai/index.js +2 -2
  454. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +15 -15
  455. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +2 -2
  456. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +5 -5
  457. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
  458. package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +3 -3
  459. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +1 -1
  460. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +17 -17
  461. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +3 -3
  462. package/packages/dd-trace/src/llmobs/plugins/vertexai.js +6 -6
  463. package/packages/dd-trace/src/llmobs/sdk.js +11 -11
  464. package/packages/dd-trace/src/llmobs/span_processor.js +6 -6
  465. package/packages/dd-trace/src/llmobs/tagger.js +4 -4
  466. package/packages/dd-trace/src/llmobs/telemetry.js +8 -8
  467. package/packages/dd-trace/src/llmobs/util.js +1 -1
  468. package/packages/dd-trace/src/llmobs/writers/base.js +11 -17
  469. package/packages/dd-trace/src/llmobs/writers/evaluations.js +5 -5
  470. package/packages/dd-trace/src/llmobs/writers/spans.js +3 -3
  471. package/packages/dd-trace/src/llmobs/writers/util.js +4 -10
  472. package/packages/dd-trace/src/log/channels.js +2 -2
  473. package/packages/dd-trace/src/log/index.js +46 -31
  474. package/packages/dd-trace/src/log/log.js +1 -1
  475. package/packages/dd-trace/src/log/writer.js +14 -79
  476. package/packages/dd-trace/src/noop/span.js +2 -2
  477. package/packages/dd-trace/src/openfeature/constants/constants.js +1 -1
  478. package/packages/dd-trace/src/openfeature/flagging_provider.js +4 -4
  479. package/packages/dd-trace/src/openfeature/index.js +2 -2
  480. package/packages/dd-trace/src/openfeature/noop.js +3 -3
  481. package/packages/dd-trace/src/openfeature/remote_config.js +1 -1
  482. package/packages/dd-trace/src/openfeature/writers/base.js +14 -20
  483. package/packages/dd-trace/src/openfeature/writers/exposures.js +10 -10
  484. package/packages/dd-trace/src/openfeature/writers/util.js +4 -9
  485. package/packages/dd-trace/src/opentelemetry/context_manager.js +48 -29
  486. package/packages/dd-trace/src/opentelemetry/logs/index.js +2 -2
  487. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +2 -2
  488. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +10 -10
  489. package/packages/dd-trace/src/opentelemetry/metrics/constants.js +3 -3
  490. package/packages/dd-trace/src/opentelemetry/metrics/index.js +2 -2
  491. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
  492. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +1 -1
  493. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +11 -11
  494. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +18 -18
  495. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +6 -6
  496. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +10 -7
  497. package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +3 -3
  498. package/packages/dd-trace/src/opentelemetry/span.js +8 -8
  499. package/packages/dd-trace/src/opentelemetry/span_context.js +1 -1
  500. package/packages/dd-trace/src/opentelemetry/span_processor.js +1 -1
  501. package/packages/dd-trace/src/opentelemetry/tracer.js +4 -4
  502. package/packages/dd-trace/src/opentracing/propagation/log.js +2 -2
  503. package/packages/dd-trace/src/opentracing/propagation/text_map.js +14 -12
  504. package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -0
  505. package/packages/dd-trace/src/opentracing/span.js +20 -20
  506. package/packages/dd-trace/src/opentracing/span_context.js +3 -3
  507. package/packages/dd-trace/src/opentracing/tracer.js +3 -3
  508. package/packages/dd-trace/src/payload-tagging/config/index.js +1 -1
  509. package/packages/dd-trace/src/payload-tagging/index.js +1 -1
  510. package/packages/dd-trace/src/payload-tagging/tagging.js +2 -2
  511. package/packages/dd-trace/src/plugin_manager.js +6 -6
  512. package/packages/dd-trace/src/plugins/apollo.js +4 -4
  513. package/packages/dd-trace/src/plugins/ci_plugin.js +101 -36
  514. package/packages/dd-trace/src/plugins/database.js +1 -1
  515. package/packages/dd-trace/src/plugins/index.js +1 -1
  516. package/packages/dd-trace/src/plugins/log_plugin.js +2 -2
  517. package/packages/dd-trace/src/plugins/outbound.js +9 -8
  518. package/packages/dd-trace/src/plugins/plugin.js +17 -7
  519. package/packages/dd-trace/src/plugins/producer.js +6 -5
  520. package/packages/dd-trace/src/plugins/tracing.js +37 -8
  521. package/packages/dd-trace/src/plugins/util/ci.js +40 -40
  522. package/packages/dd-trace/src/plugins/util/env.js +2 -2
  523. package/packages/dd-trace/src/plugins/util/git-cache.js +2 -2
  524. package/packages/dd-trace/src/plugins/util/git.js +20 -18
  525. package/packages/dd-trace/src/plugins/util/inferred_proxy.js +6 -6
  526. package/packages/dd-trace/src/plugins/util/ip_extractor.js +3 -3
  527. package/packages/dd-trace/src/plugins/util/llm.js +1 -1
  528. package/packages/dd-trace/src/plugins/util/stacktrace.js +3 -3
  529. package/packages/dd-trace/src/plugins/util/tags.js +1 -1
  530. package/packages/dd-trace/src/plugins/util/test.js +46 -40
  531. package/packages/dd-trace/src/plugins/util/url.js +1 -1
  532. package/packages/dd-trace/src/plugins/util/urlfilter.js +1 -1
  533. package/packages/dd-trace/src/plugins/util/user-provided-git.js +2 -2
  534. package/packages/dd-trace/src/plugins/util/web.js +12 -12
  535. package/packages/dd-trace/src/priority_sampler.js +4 -4
  536. package/packages/dd-trace/src/process-tags/index.js +2 -2
  537. package/packages/dd-trace/src/profiler.js +1 -1
  538. package/packages/dd-trace/src/profiling/config.js +11 -14
  539. package/packages/dd-trace/src/profiling/constants.js +2 -2
  540. package/packages/dd-trace/src/profiling/exporter_cli.js +3 -3
  541. package/packages/dd-trace/src/profiling/exporters/agent.js +5 -5
  542. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +8 -8
  543. package/packages/dd-trace/src/profiling/index.js +1 -1
  544. package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
  545. package/packages/dd-trace/src/profiling/loggers/console.js +1 -1
  546. package/packages/dd-trace/src/profiling/profiler.js +21 -23
  547. package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
  548. package/packages/dd-trace/src/profiling/profilers/event_plugins/fs.js +3 -3
  549. package/packages/dd-trace/src/profiling/profilers/events.js +27 -19
  550. package/packages/dd-trace/src/profiling/profilers/shared.js +2 -2
  551. package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
  552. package/packages/dd-trace/src/profiling/tagger.js +1 -1
  553. package/packages/dd-trace/src/profiling/webspan-utils.js +2 -2
  554. package/packages/dd-trace/src/proxy.js +13 -13
  555. package/packages/dd-trace/src/remote_config/apply_states.js +1 -1
  556. package/packages/dd-trace/src/remote_config/capabilities.js +1 -0
  557. package/packages/dd-trace/src/remote_config/index.js +17 -22
  558. package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
  559. package/packages/dd-trace/src/ritm.js +1 -1
  560. package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
  561. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +3 -3
  562. package/packages/dd-trace/src/serverless.js +1 -1
  563. package/packages/dd-trace/src/service-naming/extra-services.js +1 -1
  564. package/packages/dd-trace/src/service-naming/index.js +1 -1
  565. package/packages/dd-trace/src/service-naming/schemas/v0/graphql.js +3 -3
  566. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +25 -25
  567. package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +3 -3
  568. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +18 -18
  569. package/packages/dd-trace/src/service-naming/schemas/v0/web.js +23 -23
  570. package/packages/dd-trace/src/service-naming/schemas/v0/websocket.js +9 -9
  571. package/packages/dd-trace/src/service-naming/schemas/v1/graphql.js +3 -3
  572. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +21 -21
  573. package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +3 -3
  574. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +17 -17
  575. package/packages/dd-trace/src/service-naming/schemas/v1/web.js +23 -23
  576. package/packages/dd-trace/src/service-naming/schemas/v1/websocket.js +9 -9
  577. package/packages/dd-trace/src/span_format.js +4 -4
  578. package/packages/dd-trace/src/span_sampler.js +1 -1
  579. package/packages/dd-trace/src/span_stats.js +11 -11
  580. package/packages/dd-trace/src/spanleak.js +1 -1
  581. package/packages/dd-trace/src/standalone/index.js +1 -1
  582. package/packages/dd-trace/src/standalone/product.js +2 -2
  583. package/packages/dd-trace/src/standalone/tracesource.js +1 -1
  584. package/packages/dd-trace/src/startup-log.js +4 -4
  585. package/packages/dd-trace/src/tagger.js +3 -1
  586. package/packages/dd-trace/src/telemetry/dependencies.js +4 -4
  587. package/packages/dd-trace/src/telemetry/endpoints.js +4 -4
  588. package/packages/dd-trace/src/telemetry/index.js +1 -1
  589. package/packages/dd-trace/src/telemetry/logs/index.js +2 -2
  590. package/packages/dd-trace/src/telemetry/logs/log-collector.js +2 -2
  591. package/packages/dd-trace/src/telemetry/metrics.js +6 -6
  592. package/packages/dd-trace/src/telemetry/send-data.js +5 -5
  593. package/packages/dd-trace/src/telemetry/telemetry.js +10 -10
  594. package/packages/dd-trace/src/tracer.js +3 -2
  595. package/packages/dd-trace/src/util.js +1 -1
  596. package/scripts/preinstall.js +1 -1
  597. package/vendor/dist/@datadog/sketches-js/index.js +1 -1
  598. package/vendor/dist/@datadog/source-map/index.js +1 -1
  599. package/vendor/dist/@isaacs/ttlcache/index.js +1 -1
  600. package/vendor/dist/@opentelemetry/core/index.js +1 -1
  601. package/vendor/dist/@opentelemetry/resources/index.js +1 -1
  602. package/vendor/dist/astring/index.js +1 -1
  603. package/vendor/dist/crypto-randomuuid/index.js +1 -1
  604. package/vendor/dist/escape-string-regexp/index.js +1 -1
  605. package/vendor/dist/esquery/index.js +1 -1
  606. package/vendor/dist/ignore/index.js +1 -1
  607. package/vendor/dist/istanbul-lib-coverage/index.js +1 -1
  608. package/vendor/dist/jest-docblock/index.js +1 -1
  609. package/vendor/dist/jsonpath-plus/index.js +1 -1
  610. package/vendor/dist/limiter/index.js +1 -1
  611. package/vendor/dist/lodash.sortby/index.js +1 -1
  612. package/vendor/dist/lru-cache/index.js +1 -1
  613. package/vendor/dist/meriyah/index.js +1 -1
  614. package/vendor/dist/module-details-from-path/index.js +1 -1
  615. package/vendor/dist/mutexify/promise/index.js +1 -1
  616. package/vendor/dist/opentracing/index.js +1 -1
  617. package/vendor/dist/path-to-regexp/index.js +1 -1
  618. package/vendor/dist/pprof-format/index.js +1 -1
  619. package/vendor/dist/protobufjs/index.js +1 -1
  620. package/vendor/dist/protobufjs/minimal/index.js +1 -1
  621. package/vendor/dist/retry/index.js +1 -1
  622. package/vendor/dist/rfdc/index.js +1 -1
  623. package/vendor/dist/semifies/index.js +1 -1
  624. package/vendor/dist/shell-quote/index.js +1 -1
  625. package/vendor/dist/source-map/index.js +1 -1
  626. package/vendor/dist/source-map/lib/util/index.js +1 -1
  627. package/vendor/dist/tlhunter-sorted-set/index.js +1 -1
  628. package/vendor/dist/ttl-set/index.js +1 -1
  629. package/packages/datadog-plugin-prisma/src/client.js +0 -60
  630. package/packages/datadog-plugin-prisma/src/engine.js +0 -81
@@ -4,7 +4,7 @@ const rfdc = require('../../../../vendor/dist/rfdc')({ proto: false, circles: fa
4
4
 
5
5
  const {
6
6
  PAYLOAD_TAG_REQUEST_PREFIX,
7
- PAYLOAD_TAG_RESPONSE_PREFIX
7
+ PAYLOAD_TAG_RESPONSE_PREFIX,
8
8
  } = require('../constants')
9
9
 
10
10
  const jsonpath = require('../../../../vendor/dist/jsonpath-plus').JSONPath
@@ -3,7 +3,7 @@
3
3
  const { PAYLOAD_TAGGING_MAX_TAGS } = require('../constants')
4
4
 
5
5
  const redactedKeys = new Set([
6
- 'authorization', 'x-authorization', 'password', 'token'
6
+ 'authorization', 'x-authorization', 'password', 'token',
7
7
  ])
8
8
  const truncated = 'truncated'
9
9
  const redacted = 'redacted'
@@ -76,7 +76,7 @@ function tagsFromObject (object, opts) {
76
76
  result[prefix] = object.slice(0, 5000)
77
77
  }
78
78
 
79
- if (typeof object === 'object') { // eslint-disable-line eslint-rules/eslint-safe-typeof-object
79
+ if (typeof object === 'object') {
80
80
  for (const [key, value] of Object.entries(object)) {
81
81
  if (redactedKeys.has(key.toLowerCase())) {
82
82
  tagCount += 1
@@ -13,7 +13,7 @@ const TEST_OPTIMIZATION_PLUGINS = new Set([
13
13
  'vitest',
14
14
  'cucumber',
15
15
  'mocha',
16
- 'playwright'
16
+ 'playwright',
17
17
  ])
18
18
 
19
19
  const loadChannel = channel('dd-trace:instrumentation:load')
@@ -96,13 +96,13 @@ module.exports = class PluginManager {
96
96
  }
97
97
  const pluginConfig = this._configsByName[name] || {
98
98
  enabled: this._tracerConfig.plugins !== false &&
99
- (!Plugin.experimental || isTrue(getEnabled(Plugin)))
99
+ (!Plugin.experimental || isTrue(getEnabled(Plugin))),
100
100
  }
101
101
 
102
102
  // extracts predetermined configuration from tracer and combines it with plugin-specific config
103
103
  this._pluginsByName[name].configure({
104
104
  ...this._getSharedConfig(name),
105
- ...pluginConfig
105
+ ...pluginConfig,
106
106
  })
107
107
  }
108
108
 
@@ -112,7 +112,7 @@ module.exports = class PluginManager {
112
112
 
113
113
  this._configsByName[name] = {
114
114
  ...pluginConfig,
115
- enabled
115
+ enabled,
116
116
  }
117
117
 
118
118
  this.loadPlugin(name)
@@ -168,7 +168,7 @@ module.exports = class PluginManager {
168
168
  traceWebsocketMessagesInheritSampling,
169
169
  traceWebsocketMessagesSeparateTraces,
170
170
  experimental,
171
- resourceRenamingEnabled
171
+ resourceRenamingEnabled,
172
172
  } = this._tracerConfig
173
173
 
174
174
  const sharedConfig = {
@@ -188,7 +188,7 @@ module.exports = class PluginManager {
188
188
  traceWebsocketMessagesInheritSampling,
189
189
  traceWebsocketMessagesSeparateTraces,
190
190
  experimental,
191
- resourceRenamingEnabled
191
+ resourceRenamingEnabled,
192
192
  }
193
193
 
194
194
  if (logInjection !== undefined) {
@@ -10,14 +10,14 @@ class ApolloBasePlugin extends TracingPlugin {
10
10
 
11
11
  bindStart (ctx) {
12
12
  const store = storage('legacy').getStore()
13
- const childOf = store ? store.span : null
13
+ const childOf = store ? /** @type {import('../opentracing/span') | undefined} */ (store.span) : null
14
14
 
15
15
  const span = this.startSpan(this.getOperationName(), {
16
16
  childOf,
17
17
  service: this.getServiceName(),
18
18
  type: this.constructor.type,
19
19
  kind: this.constructor.kind,
20
- meta: {}
20
+ meta: {},
21
21
  }, false)
22
22
 
23
23
  ctx.parentStore = store
@@ -40,13 +40,13 @@ class ApolloBasePlugin extends TracingPlugin {
40
40
  getServiceName () {
41
41
  return this.serviceName({
42
42
  id: `${this.constructor.id}.${this.constructor.operation}`,
43
- pluginConfig: this.config
43
+ pluginConfig: this.config,
44
44
  })
45
45
  }
46
46
 
47
47
  getOperationName () {
48
48
  return this.operationName({
49
- id: `${this.constructor.id}.${this.constructor.operation}`
49
+ id: `${this.constructor.id}.${this.constructor.operation}`,
50
50
  })
51
51
  }
52
52
  }
@@ -3,11 +3,12 @@
3
3
  const { storage } = require('../../../datadog-core')
4
4
  const { COMPONENT } = require('../constants')
5
5
  const log = require('../log')
6
+ const { discoverCoverageReports } = require('../ci-visibility/coverage-report-discovery')
6
7
  const {
7
8
  incrementCountMetric,
8
9
  distributionMetric,
9
10
  TELEMETRY_EVENT_CREATED,
10
- TELEMETRY_ITR_SKIPPED
11
+ TELEMETRY_ITR_SKIPPED,
11
12
  } = require('../ci-visibility/telemetry')
12
13
  const getDiClient = require('../ci-visibility/dynamic-instrumentation')
13
14
  const { DD_MAJOR } = require('../../../../version')
@@ -24,7 +25,7 @@ const {
24
25
  GIT_PULL_REQUEST_BASE_BRANCH_SHA,
25
26
  GIT_COMMIT_HEAD_SHA,
26
27
  GIT_PULL_REQUEST_BASE_BRANCH,
27
- GIT_COMMIT_HEAD_MESSAGE
28
+ GIT_COMMIT_HEAD_MESSAGE,
28
29
  } = require('./util/tags')
29
30
  const Plugin = require('./plugin')
30
31
  const { getRepositoryRoot } = require('./util/git')
@@ -62,7 +63,7 @@ const {
62
63
  getPullRequestDiff,
63
64
  getModifiedFilesFromDiff,
64
65
  getPullRequestBaseBranch,
65
- TEST_IS_TEST_FRAMEWORK_WORKER
66
+ TEST_IS_TEST_FRAMEWORK_WORKER,
66
67
  } = require('./util/test')
67
68
 
68
69
  const FRAMEWORK_TO_TRIMMED_COMMAND = {
@@ -70,7 +71,7 @@ const FRAMEWORK_TO_TRIMMED_COMMAND = {
70
71
  mocha: 'mocha',
71
72
  cucumber: 'cucumber-js',
72
73
  playwright: 'playwright test',
73
- jest: 'jest'
74
+ jest: 'jest',
74
75
  }
75
76
 
76
77
  const WORKER_EXPORTER_TO_TEST_FRAMEWORK = {
@@ -78,7 +79,7 @@ const WORKER_EXPORTER_TO_TEST_FRAMEWORK = {
78
79
  jest_worker: 'jest',
79
80
  cucumber_worker: 'cucumber',
80
81
  mocha_worker: 'mocha',
81
- playwright_worker: 'playwright'
82
+ playwright_worker: 'playwright',
82
83
  }
83
84
 
84
85
  const TEST_FRAMEWORKS_TO_SKIP_GIT_METADATA_EXTRACTION = new Set([
@@ -95,7 +96,7 @@ function getTestSuiteLevelVisibilityTags (testSuiteSpan, testFramework) {
95
96
  [TEST_SUITE_ID]: testSuiteSpanContext.toSpanId(),
96
97
  [TEST_SESSION_ID]: testSuiteSpanContext.toTraceId(),
97
98
  [TEST_COMMAND]: testSuiteSpanContext._tags[TEST_COMMAND],
98
- [TEST_MODULE]: testFramework
99
+ [TEST_MODULE]: testFramework,
99
100
  }
100
101
 
101
102
  if (testSuiteSpanContext._parentId) {
@@ -129,8 +130,8 @@ module.exports = class CiPlugin extends Plugin {
129
130
  const libraryCapabilitiesTags = getLibraryCapabilitiesTags(this.constructor.id, isParallel, frameworkVersion)
130
131
  const metadataTags = {
131
132
  test: {
132
- ...libraryCapabilitiesTags
133
- }
133
+ ...libraryCapabilitiesTags,
134
+ },
134
135
  }
135
136
  this.tracer._exporter.addMetadataTags(metadataTags)
136
137
  onDone({ err, libraryConfig })
@@ -174,7 +175,7 @@ module.exports = class CiPlugin extends Plugin {
174
175
  const metadataTags = {}
175
176
  for (const testLevel of TEST_LEVEL_EVENT_TYPES) {
176
177
  metadataTags[testLevel] = {
177
- [TEST_SESSION_NAME]: testSessionName
178
+ [TEST_SESSION_NAME]: testSessionName,
178
179
  }
179
180
  }
180
181
  // tracer might not be initialized correctly
@@ -187,9 +188,9 @@ module.exports = class CiPlugin extends Plugin {
187
188
  tags: {
188
189
  [COMPONENT]: this.constructor.id,
189
190
  ...this.testEnvironmentMetadata,
190
- ...testSessionSpanMetadata
191
+ ...testSessionSpanMetadata,
191
192
  },
192
- integrationName: this.constructor.id
193
+ integrationName: this.constructor.id,
193
194
  })
194
195
  // TODO: add telemetry tag when we can add `is_agentless_log_submission_enabled` for agentless log submission
195
196
  this.telemetry.ciVisEvent(TELEMETRY_EVENT_CREATED, 'session')
@@ -199,9 +200,9 @@ module.exports = class CiPlugin extends Plugin {
199
200
  tags: {
200
201
  [COMPONENT]: this.constructor.id,
201
202
  ...this.testEnvironmentMetadata,
202
- ...testModuleSpanMetadata
203
+ ...testModuleSpanMetadata,
203
204
  },
204
- integrationName: this.constructor.id
205
+ integrationName: this.constructor.id,
205
206
  })
206
207
  // only for vitest
207
208
  // These are added for the worker threads to use
@@ -220,7 +221,7 @@ module.exports = class CiPlugin extends Plugin {
220
221
 
221
222
  this.addSub(`ci:${this.constructor.id}:itr:skipped-suites`, ({ skippedSuites, frameworkVersion }) => {
222
223
  const testCommand = this.testSessionSpan.context()._tags[TEST_COMMAND]
223
- skippedSuites.forEach((testSuite) => {
224
+ for (const testSuite of skippedSuites) {
224
225
  const testSuiteMetadata = getTestSuiteCommonTags(testCommand, frameworkVersion, testSuite, this.constructor.id)
225
226
  if (this.itrCorrelationId) {
226
227
  testSuiteMetadata[ITR_CORRELATION_ID] = this.itrCorrelationId
@@ -233,11 +234,11 @@ module.exports = class CiPlugin extends Plugin {
233
234
  ...this.testEnvironmentMetadata,
234
235
  ...testSuiteMetadata,
235
236
  [TEST_STATUS]: 'skip',
236
- [TEST_SKIPPED_BY_ITR]: 'true'
237
+ [TEST_SKIPPED_BY_ITR]: 'true',
237
238
  },
238
- integrationName: this.constructor.id
239
+ integrationName: this.constructor.id,
239
240
  }).finish()
240
- })
241
+ }
241
242
  this.telemetry.count(TELEMETRY_ITR_SKIPPED, { testLevel: 'suite' }, skippedSuites.length)
242
243
  })
243
244
 
@@ -284,7 +285,7 @@ module.exports = class CiPlugin extends Plugin {
284
285
  const {
285
286
  [GIT_PULL_REQUEST_BASE_BRANCH]: pullRequestBaseBranch,
286
287
  [GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseBranchSha,
287
- [GIT_COMMIT_HEAD_SHA]: commitHeadSha
288
+ [GIT_COMMIT_HEAD_SHA]: commitHeadSha,
288
289
  } = this.testEnvironmentMetadata
289
290
 
290
291
  const baseBranchSha = pullRequestBaseBranchSha || getPullRequestBaseBranch(pullRequestBaseBranch)
@@ -329,14 +330,14 @@ module.exports = class CiPlugin extends Plugin {
329
330
  const testSuite = span.meta[TEST_SUITE]
330
331
  const testSuiteSpan = this._testSuiteSpansByTestSuite.get(testSuite)
331
332
  if (!testSuiteSpan) {
332
- log.warn(`Test suite span not found for test span with test suite ${testSuite}`)
333
+ log.warn('Test suite span not found for test span with test suite %s', testSuite)
333
334
  continue
334
335
  }
335
336
 
336
337
  const testSuiteTags = getTestSuiteLevelVisibilityTags(testSuiteSpan, this.constructor.id)
337
338
  span.meta = {
338
339
  ...span.meta,
339
- ...testSuiteTags
340
+ ...testSuiteTags,
340
341
  }
341
342
  }
342
343
  }
@@ -345,9 +346,9 @@ module.exports = class CiPlugin extends Plugin {
345
346
  })
346
347
 
347
348
  this.addSub(`ci:${this.constructor.id}:worker-report:logs`, (logsPayloads) => {
348
- JSON.parse(logsPayloads).forEach(({ logMessage }) => {
349
+ for (const { logMessage } of JSON.parse(logsPayloads)) {
349
350
  this.tracer._exporter.exportDiLogs(this.testEnvironmentMetadata, logMessage)
350
- })
351
+ }
351
352
  })
352
353
  }
353
354
 
@@ -359,7 +360,7 @@ module.exports = class CiPlugin extends Plugin {
359
360
  testLevel,
360
361
  testFramework,
361
362
  isUnsupportedCIProvider: !this.ciProviderName,
362
- ...tags
363
+ ...tags,
363
364
  })
364
365
  },
365
366
  count: function (name, tags, value = 1) {
@@ -367,7 +368,7 @@ module.exports = class CiPlugin extends Plugin {
367
368
  },
368
369
  distribution: function (name, tags, measure) {
369
370
  distributionMetric(name, tags, measure)
370
- }
371
+ },
371
372
  }
372
373
  }
373
374
 
@@ -412,7 +413,7 @@ module.exports = class CiPlugin extends Plugin {
412
413
  [GIT_TAG]: tag,
413
414
  [GIT_PULL_REQUEST_BASE_BRANCH_SHA]: pullRequestBaseSha,
414
415
  [GIT_COMMIT_HEAD_SHA]: commitHeadSha,
415
- [GIT_COMMIT_HEAD_MESSAGE]: commitHeadMessage
416
+ [GIT_COMMIT_HEAD_MESSAGE]: commitHeadMessage,
416
417
  } = this.testEnvironmentMetadata
417
418
 
418
419
  this.repositoryRoot = repositoryRoot || getRepositoryRoot() || process.cwd()
@@ -435,14 +436,14 @@ module.exports = class CiPlugin extends Plugin {
435
436
  tag,
436
437
  pullRequestBaseSha,
437
438
  commitHeadSha,
438
- commitHeadMessage
439
+ commitHeadMessage,
439
440
  }
440
441
  }
441
442
 
442
443
  getCodeOwners (tags) {
443
444
  const {
444
445
  [TEST_SOURCE_FILE]: testSourceFile,
445
- [TEST_SUITE]: testSuite
446
+ [TEST_SUITE]: testSuite,
446
447
  } = tags
447
448
  // We'll try with the test source file if available (it could be different from the test suite)
448
449
  let codeOwners = getCodeOwnersForFilename(testSourceFile, this.codeOwnersEntries)
@@ -463,7 +464,7 @@ module.exports = class CiPlugin extends Plugin {
463
464
  this.constructor.id
464
465
  ),
465
466
  [COMPONENT]: this.constructor.id,
466
- ...extraTags
467
+ ...extraTags,
467
468
  }
468
469
 
469
470
  const codeOwners = this.getCodeOwners(testTags)
@@ -481,7 +482,7 @@ module.exports = class CiPlugin extends Plugin {
481
482
  [TEST_SUITE_ID]: testSuiteSpan.context().toSpanId(),
482
483
  [TEST_SESSION_ID]: testSuiteSpan.context().toTraceId(),
483
484
  [TEST_COMMAND]: testSuiteSpan.context()._tags[TEST_COMMAND],
484
- [TEST_MODULE]: this.constructor.id
485
+ [TEST_MODULE]: this.constructor.id,
485
486
  }
486
487
  if (testSuiteSpan.context()._parentId) {
487
488
  suiteTags[TEST_MODULE_ID] = testSuiteSpan.context()._parentId.toString(10)
@@ -489,7 +490,7 @@ module.exports = class CiPlugin extends Plugin {
489
490
 
490
491
  testTags = {
491
492
  ...testTags,
492
- ...suiteTags
493
+ ...suiteTags,
493
494
  }
494
495
  }
495
496
 
@@ -500,9 +501,9 @@ module.exports = class CiPlugin extends Plugin {
500
501
  childOf,
501
502
  tags: {
502
503
  ...this.testEnvironmentMetadata,
503
- ...testTags
504
+ ...testTags,
504
505
  },
505
- integrationName: this.constructor.id
506
+ integrationName: this.constructor.id,
506
507
  })
507
508
 
508
509
  testSpan.context()._trace.origin = CI_APP_ORIGIN
@@ -539,8 +540,8 @@ module.exports = class CiPlugin extends Plugin {
539
540
  debugger: { snapshot },
540
541
  dd: {
541
542
  trace_id: activeTestSpanContext.toTraceId(),
542
- span_id: activeTestSpanContext.toSpanId()
543
- }
543
+ span_id: activeTestSpanContext.toSpanId(),
544
+ },
544
545
  })
545
546
  }
546
547
 
@@ -588,7 +589,7 @@ module.exports = class CiPlugin extends Plugin {
588
589
  setProbePromise: Promise.resolve(),
589
590
  stackIndex,
590
591
  file,
591
- line
592
+ line,
592
593
  }
593
594
  }
594
595
 
@@ -601,7 +602,71 @@ module.exports = class CiPlugin extends Plugin {
601
602
  setProbePromise,
602
603
  stackIndex,
603
604
  file,
604
- line
605
+ line,
606
+ }
607
+ }
608
+
609
+ /**
610
+ * Uploads coverage reports if enabled. This is the common logic used by plugins.
611
+ * @param {object} options - Upload options
612
+ * @param {string} options.rootDir - The root directory where coverage reports are located
613
+ * @param {Function} [options.onDone] - Callback to signal completion
614
+ */
615
+ uploadCoverageReports ({ rootDir, onDone }) {
616
+ const done = onDone || (() => {})
617
+
618
+ // Check if the exporter supports coverage report upload
619
+ if (!this.tracer._exporter?.uploadCoverageReport) {
620
+ log.debug('Exporter does not support coverage report upload')
621
+ done()
622
+ return
623
+ }
624
+
625
+ const coverageReports = discoverCoverageReports(rootDir)
626
+ if (coverageReports.length === 0) {
627
+ log.debug('No coverage reports found to upload')
628
+ done()
629
+ return
605
630
  }
631
+
632
+ log.debug('Coverage report upload is enabled, found %d report(s) to upload', coverageReports.length)
633
+
634
+ // Upload reports sequentially (one file per request)
635
+ let uploadedCount = 0
636
+ let failedCount = 0
637
+ let reportIndex = 0
638
+
639
+ const uploadNextReport = () => {
640
+ if (reportIndex >= coverageReports.length) {
641
+ // All reports processed, log summary
642
+ if (failedCount > 0) {
643
+ log.warn('Coverage report upload completed: %d succeeded, %d failed', uploadedCount, failedCount)
644
+ } else {
645
+ log.info('Coverage report upload completed: %d report(s) uploaded', uploadedCount)
646
+ }
647
+ done()
648
+ return
649
+ }
650
+
651
+ const { filePath, format } = coverageReports[reportIndex]
652
+ reportIndex++
653
+
654
+ this.tracer._exporter.uploadCoverageReport(
655
+ { filePath, format, testEnvironmentMetadata: this.testEnvironmentMetadata },
656
+ (err) => {
657
+ if (err) {
658
+ failedCount++
659
+ log.error('Failed to upload coverage report %s: %s', filePath, err.message)
660
+ } else {
661
+ uploadedCount++
662
+ }
663
+
664
+ // Process next report
665
+ uploadNextReport()
666
+ }
667
+ )
668
+ }
669
+
670
+ uploadNextReport()
606
671
  }
607
672
  }
@@ -17,7 +17,7 @@ class DatabasePlugin extends StoragePlugin {
17
17
  ddps: '',
18
18
  encodedDdps: '',
19
19
  ddpv: '',
20
- encodedDdpv: ''
20
+ encodedDdpv: '',
21
21
  }
22
22
  }
23
23
 
@@ -110,7 +110,7 @@ const plugins = {
110
110
  get tedious () { return require('../../../datadog-plugin-tedious/src') },
111
111
  get undici () { return require('../../../datadog-plugin-undici/src') },
112
112
  get winston () { return require('../../../datadog-plugin-winston/src') },
113
- get ws () { return require('../../../datadog-plugin-ws/src') }
113
+ get ws () { return require('../../../datadog-plugin-ws/src') },
114
114
  }
115
115
 
116
116
  module.exports = plugins
@@ -22,7 +22,7 @@ function messageProxy (message, holder) {
22
22
  },
23
23
  getOwnPropertyDescriptor (target, p) {
24
24
  return Reflect.getOwnPropertyDescriptor(shouldOverride(target, p) ? holder : target, p)
25
- }
25
+ },
26
26
  })
27
27
  }
28
28
 
@@ -48,7 +48,7 @@ module.exports = class LogPlugin extends Plugin {
48
48
  configure (config) {
49
49
  return super.configure({
50
50
  ...config,
51
- enabled: config.enabled && (config.logInjection || config.ciVisAgentlessLogSubmissionEnabled)
51
+ enabled: config.enabled && (config.logInjection || config.ciVisAgentlessLogSubmissionEnabled),
52
52
  })
53
53
  }
54
54
  }
@@ -4,15 +4,16 @@ const {
4
4
  CLIENT_PORT_KEY,
5
5
  PEER_SERVICE_KEY,
6
6
  PEER_SERVICE_SOURCE_KEY,
7
- PEER_SERVICE_REMAP_KEY
7
+ PEER_SERVICE_REMAP_KEY,
8
8
  } = require('../constants')
9
9
  const { exitTags } = require('../../../datadog-code-origin')
10
10
  const { storage } = require('../../../datadog-core')
11
+ const { IS_SERVERLESS } = require('../serverless')
11
12
  const TracingPlugin = require('./tracing')
12
13
 
13
14
  const COMMON_PEER_SVC_SOURCE_TAGS = [
14
15
  'net.peer.name',
15
- 'out.host'
16
+ 'out.host',
16
17
  ]
17
18
 
18
19
  // TODO: Exit span on finish when AsyncResource instances are removed.
@@ -55,20 +56,20 @@ class OutboundPlugin extends TracingPlugin {
55
56
  if (tags[PEER_SERVICE_KEY] !== undefined) {
56
57
  return {
57
58
  [PEER_SERVICE_KEY]: tags[PEER_SERVICE_KEY],
58
- [PEER_SERVICE_SOURCE_KEY]: PEER_SERVICE_KEY
59
+ [PEER_SERVICE_SOURCE_KEY]: PEER_SERVICE_KEY,
59
60
  }
60
61
  }
61
62
 
62
63
  const sourceTags = [
63
64
  ...this.constructor.peerServicePrecursors,
64
- ...COMMON_PEER_SVC_SOURCE_TAGS
65
+ ...COMMON_PEER_SVC_SOURCE_TAGS,
65
66
  ]
66
67
 
67
68
  for (const sourceTag of sourceTags) {
68
69
  if (tags[sourceTag]) {
69
70
  return {
70
71
  [PEER_SERVICE_KEY]: tags[sourceTag],
71
- [PEER_SERVICE_SOURCE_KEY]: sourceTag
72
+ [PEER_SERVICE_SOURCE_KEY]: sourceTag,
72
73
  }
73
74
  }
74
75
  }
@@ -85,7 +86,7 @@ class OutboundPlugin extends TracingPlugin {
85
86
  return {
86
87
  ...peerData,
87
88
  [PEER_SERVICE_KEY]: mappedService,
88
- [PEER_SERVICE_REMAP_KEY]: peerService
89
+ [PEER_SERVICE_REMAP_KEY]: peerService,
89
90
  }
90
91
  }
91
92
  return peerData
@@ -95,7 +96,7 @@ class OutboundPlugin extends TracingPlugin {
95
96
  const span = ctx?.currentStore?.span || this.activeSpan
96
97
  this.tagPeerService(span)
97
98
 
98
- if (this._tracerConfig?._isInServerlessEnvironment()) {
99
+ if (IS_SERVERLESS) {
99
100
  const peerHostname = storage('peerServerless').getStore()?.peerHostname
100
101
  if (peerHostname) span.setTag('peer.service', peerHostname)
101
102
  }
@@ -125,7 +126,7 @@ class OutboundPlugin extends TracingPlugin {
125
126
 
126
127
  span.addTags({
127
128
  'out.host': hostname,
128
- [CLIENT_PORT_KEY]: port
129
+ [CLIENT_PORT_KEY]: port,
129
130
  })
130
131
  }
131
132
  }
@@ -172,14 +172,24 @@ module.exports = class Plugin {
172
172
  config = { enabled: config }
173
173
  }
174
174
  this.config = config
175
- if (config.enabled && !this._enabled) {
176
- this._enabled = true
177
- this._subscriptions.forEach(sub => sub.enable())
178
- this._bindings.forEach(sub => sub.enable())
179
- } else if (!config.enabled && this._enabled) {
175
+ if (config.enabled) {
176
+ if (!this._enabled) {
177
+ this._enabled = true
178
+ for (const sub of this._subscriptions) {
179
+ sub.enable()
180
+ }
181
+ for (const sub of this._bindings) {
182
+ sub.enable()
183
+ }
184
+ }
185
+ } else if (this._enabled) {
180
186
  this._enabled = false
181
- this._subscriptions.forEach(sub => sub.disable())
182
- this._bindings.forEach(sub => sub.disable())
187
+ for (const sub of this._subscriptions) {
188
+ sub.disable()
189
+ }
190
+ for (const sub of this._bindings) {
191
+ sub.disable()
192
+ }
183
193
  }
184
194
  }
185
195
  }
@@ -9,16 +9,17 @@ class ProducerPlugin extends OutboundPlugin {
9
9
 
10
10
  startSpan (options, enterOrCtx) {
11
11
  const spanDefaults = {
12
- kind: this.constructor.kind
12
+ kind: this.constructor.kind,
13
13
  }
14
14
  if (!options.service) {
15
15
  options.service = this.config.service || this.serviceName()
16
16
  }
17
- Object.keys(spanDefaults).forEach(
18
- key => {
19
- if (!options[key]) options[key] = spanDefaults[key]
17
+ for (const key of Object.keys(spanDefaults)) {
18
+ if (!options[key]) {
19
+ options[key] = spanDefaults[key]
20
20
  }
21
- )
21
+ }
22
+
22
23
  return super.startSpan(this.operationName(), options, enterOrCtx)
23
24
  }
24
25
  }