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
@@ -7,11 +7,11 @@ const {
7
7
  SCHEMA_NAME,
8
8
  SCHEMA_OPERATION,
9
9
  SCHEMA_WEIGHT,
10
- SCHEMA_TYPE
10
+ SCHEMA_TYPE,
11
11
  } = require('../../dd-trace/src/constants')
12
12
  const log = require('../../dd-trace/src/log')
13
13
  const {
14
- SchemaBuilder
14
+ SchemaBuilder,
15
15
  } = require('../../dd-trace/src/datastreams')
16
16
 
17
17
  class SchemaExtractor {
@@ -39,7 +39,7 @@ class SchemaExtractor {
39
39
  Enum: ['enum', null],
40
40
  Type: ['type', null],
41
41
  map: ['map', null],
42
- repeated: ['array', null]
42
+ repeated: ['array', null],
43
43
  }
44
44
 
45
45
  return typeFormatMapping[type] || ['string', null]
@@ -31,8 +31,8 @@ class RedisPlugin extends CachePlugin {
31
31
  'db.name': db || '0',
32
32
  [`${this._spanType}.raw_command`]: formatCommand(normalizedCommand, args),
33
33
  'out.host': connectionOptions.host,
34
- [CLIENT_PORT_KEY]: connectionOptions.port
35
- }
34
+ [CLIENT_PORT_KEY]: connectionOptions.port,
35
+ },
36
36
  }, ctx)
37
37
 
38
38
  return ctx.currentStore
@@ -21,7 +21,7 @@ class RestifyPlugin extends RouterPlugin {
21
21
  configure (config) {
22
22
  return super.configure({
23
23
  ...config,
24
- middleware: false // not supported
24
+ middleware: false, // not supported
25
25
  })
26
26
  }
27
27
  }
@@ -27,8 +27,8 @@ class RheaConsumerPlugin extends ConsumerPlugin {
27
27
  meta: {
28
28
  component: 'rhea',
29
29
  'amqp.link.source.address': name,
30
- 'amqp.link.role': 'receiver'
31
- }
30
+ 'amqp.link.role': 'receiver',
31
+ },
32
32
  }, ctx)
33
33
 
34
34
  if (
@@ -9,7 +9,7 @@ class RheaPlugin extends CompositePlugin {
9
9
  static get plugins () {
10
10
  return {
11
11
  producer: ProducerPlugin,
12
- consumer: ConsumerPlugin
12
+ consumer: ConsumerPlugin,
13
13
  }
14
14
  }
15
15
  }
@@ -23,8 +23,8 @@ class RheaProducerPlugin extends ProducerPlugin {
23
23
  'amqp.link.target.address': name,
24
24
  'amqp.link.role': 'sender',
25
25
  'out.host': host,
26
- [CLIENT_PORT_KEY]: port
27
- }
26
+ [CLIENT_PORT_KEY]: port,
27
+ },
28
28
  }, ctx)
29
29
 
30
30
  return ctx.currentStore
@@ -107,8 +107,8 @@ class RouterPlugin extends WebPlugin {
107
107
  integrationName: this.constructor.id,
108
108
  tags: {
109
109
  [COMPONENT]: this.constructor.id,
110
- 'resource.name': name || '<anonymous>'
111
- }
110
+ 'resource.name': name || '<anonymous>',
111
+ },
112
112
  })
113
113
 
114
114
  analyticsSampler.sample(span, this.config.measured)
@@ -137,7 +137,7 @@ class RouterPlugin extends WebPlugin {
137
137
  span,
138
138
  stack: [route],
139
139
  route,
140
- middleware: []
140
+ middleware: [],
141
141
  }
142
142
 
143
143
  this._contexts.set(req, context)
@@ -9,7 +9,7 @@ const {
9
9
  TEST_BROWSER_DRIVER_VERSION,
10
10
  TEST_BROWSER_NAME,
11
11
  TEST_BROWSER_VERSION,
12
- TEST_TYPE
12
+ TEST_TYPE,
13
13
  } = require('../../dd-trace/src/plugins/util/test')
14
14
  const { SPAN_TYPE } = require('../../../ext/tags')
15
15
 
@@ -37,7 +37,7 @@ class SeleniumPlugin extends CiPlugin {
37
37
  seleniumVersion,
38
38
  browserName,
39
39
  browserVersion,
40
- isRumActive
40
+ isRumActive,
41
41
  }) => {
42
42
  const store = storage('legacy').getStore()
43
43
  const span = store?.span
@@ -13,8 +13,8 @@ class SharedbPlugin extends ServerPlugin {
13
13
  resource: getReadableResourceName(actionName, request.c, request.q),
14
14
  kind: 'server',
15
15
  meta: {
16
- 'sharedb.action': actionName
17
- }
16
+ 'sharedb.action': actionName,
17
+ },
18
18
  }, ctx)
19
19
 
20
20
  if (this.config.hooks && this.config.hooks.receive) {
@@ -22,8 +22,8 @@ class TediousPlugin extends DatabasePlugin {
22
22
  [CLIENT_PORT_KEY]: ctx.connectionConfig.options.port,
23
23
  'db.user': ctx.connectionConfig.userName || ctx.connectionConfig.authentication.options.userName,
24
24
  'db.name': ctx.connectionConfig.options.database,
25
- 'db.instance': ctx.connectionConfig.options.instanceName
26
- }
25
+ 'db.instance': ctx.connectionConfig.options.instanceName,
26
+ },
27
27
  }, ctx)
28
28
 
29
29
  // SQL Server includes comments when caching queries
@@ -71,14 +71,14 @@ class UndiciPlugin extends HttpClientPlugin {
71
71
  'span.kind': 'client',
72
72
  'http.method': method,
73
73
  'http.url': uri,
74
- 'out.host': hostname
74
+ 'out.host': hostname,
75
75
  },
76
76
  metrics: {
77
- [CLIENT_PORT_KEY]: port ? Number.parseInt(port, 10) : undefined
77
+ [CLIENT_PORT_KEY]: port ? Number.parseInt(port, 10) : undefined,
78
78
  },
79
79
  service: this.serviceName({ pluginConfig: this.config, sessionDetails: { host: hostname, port } }),
80
80
  resource: method,
81
- type: 'http'
81
+ type: 'http',
82
82
  }, false)
83
83
 
84
84
  // Disable recording if not allowed
@@ -108,7 +108,7 @@ class UndiciPlugin extends HttpClientPlugin {
108
108
  requestContexts.set(request, {
109
109
  span,
110
110
  store,
111
- uri
111
+ uri,
112
112
  })
113
113
 
114
114
  // Enter the span context
@@ -285,7 +285,7 @@ function normalizeConfig (config) {
285
285
  return {
286
286
  ...config,
287
287
  validateStatus,
288
- hooks
288
+ hooks,
289
289
  }
290
290
  }
291
291
 
@@ -32,13 +32,13 @@ const {
32
32
  getLibraryCapabilitiesTags,
33
33
  TEST_RETRY_REASON_TYPES,
34
34
  isModifiedTest,
35
- TEST_IS_MODIFIED
35
+ TEST_IS_MODIFIED,
36
36
  } = require('../../dd-trace/src/plugins/util/test')
37
37
  const { COMPONENT } = require('../../dd-trace/src/constants')
38
38
  const {
39
39
  TELEMETRY_EVENT_CREATED,
40
40
  TELEMETRY_EVENT_FINISHED,
41
- TELEMETRY_TEST_SESSION
41
+ TELEMETRY_TEST_SESSION,
42
42
  } = require('../../dd-trace/src/ci-visibility/telemetry')
43
43
  const { DD_MAJOR } = require('../../../version')
44
44
 
@@ -69,7 +69,7 @@ class VitestPlugin extends CiPlugin {
69
69
  testManagementTests,
70
70
  testSuiteAbsolutePath,
71
71
  testName,
72
- onDone
72
+ onDone,
73
73
  }) => {
74
74
  const testSuite = getTestSuitePath(testSuiteAbsolutePath, this.repositoryRoot)
75
75
  const { isAttemptToFix } = this.getTestProperties(testManagementTests, testSuite, testName)
@@ -101,7 +101,7 @@ class VitestPlugin extends CiPlugin {
101
101
  this.addSub('ci:vitest:is-early-flake-detection-faulty', ({
102
102
  knownTests,
103
103
  testFilepaths,
104
- onDone
104
+ onDone,
105
105
  }) => {
106
106
  const isFaulty = getIsFaultyEarlyFlakeDetection(
107
107
  testFilepaths.map(testFilepath => getTestSuitePath(testFilepath, this.repositoryRoot)),
@@ -124,14 +124,14 @@ class VitestPlugin extends CiPlugin {
124
124
  isRetryReasonEfd,
125
125
  isRetryReasonAttemptToFix,
126
126
  isRetryReasonAtr,
127
- isModified
127
+ isModified,
128
128
  } = ctx
129
129
 
130
130
  const testSuite = getTestSuitePath(testSuiteAbsolutePath, this.repositoryRoot)
131
131
  const store = storage('legacy').getStore()
132
132
 
133
133
  const extraTags = {
134
- [TEST_SOURCE_FILE]: testSuite
134
+ [TEST_SOURCE_FILE]: testSuite,
135
135
  }
136
136
  if (isRetry) {
137
137
  extraTags[TEST_IS_RETRY] = 'true'
@@ -207,7 +207,7 @@ class VitestPlugin extends CiPlugin {
207
207
  this.addSub('ci:vitest:test:pass', ({ span, task }) => {
208
208
  if (span) {
209
209
  this.telemetry.ciVisEvent(TELEMETRY_EVENT_FINISHED, 'test', {
210
- hasCodeowners: !!span.context()._tags[TEST_CODE_OWNERS]
210
+ hasCodeowners: !!span.context()._tags[TEST_CODE_OWNERS],
211
211
  })
212
212
  span.setTag(TEST_STATUS, 'pass')
213
213
  span.finish(this.taskToFinishTime.get(task))
@@ -222,7 +222,7 @@ class VitestPlugin extends CiPlugin {
222
222
  shouldSetProbe,
223
223
  promises,
224
224
  hasFailedAllRetries,
225
- attemptToFixFailed
225
+ attemptToFixFailed,
226
226
  }) => {
227
227
  if (!span) {
228
228
  return
@@ -237,7 +237,7 @@ class VitestPlugin extends CiPlugin {
237
237
  }
238
238
  }
239
239
  this.telemetry.ciVisEvent(TELEMETRY_EVENT_FINISHED, 'test', {
240
- hasCodeowners: !!span.context()._tags[TEST_CODE_OWNERS]
240
+ hasCodeowners: !!span.context()._tags[TEST_CODE_OWNERS],
241
241
  })
242
242
  span.setTag(TEST_STATUS, 'fail')
243
243
 
@@ -269,11 +269,11 @@ class VitestPlugin extends CiPlugin {
269
269
  [TEST_SOURCE_START]: 1, // we can't get the proper start line in vitest
270
270
  [TEST_STATUS]: 'skip',
271
271
  ...(isDisabled ? { [TEST_MANAGEMENT_IS_DISABLED]: 'true' } : {}),
272
- ...(isNew ? { [TEST_IS_NEW]: 'true' } : {})
272
+ ...(isNew ? { [TEST_IS_NEW]: 'true' } : {}),
273
273
  }
274
274
  )
275
275
  this.telemetry.ciVisEvent(TELEMETRY_EVENT_FINISHED, 'test', {
276
- hasCodeowners: !!testSpan.context()._tags[TEST_CODE_OWNERS]
276
+ hasCodeowners: !!testSpan.context()._tags[TEST_CODE_OWNERS],
277
277
  })
278
278
  testSpan.finish()
279
279
  })
@@ -285,7 +285,7 @@ class VitestPlugin extends CiPlugin {
285
285
  this.frameworkVersion = frameworkVersion
286
286
  const testSessionSpanContext = this.tracer.extract('text_map', {
287
287
  'x-datadog-trace-id': getValueFromEnvSources('DD_CIVISIBILITY_TEST_SESSION_ID'),
288
- 'x-datadog-parent-id': getValueFromEnvSources('DD_CIVISIBILITY_TEST_MODULE_ID')
288
+ 'x-datadog-parent-id': getValueFromEnvSources('DD_CIVISIBILITY_TEST_MODULE_ID'),
289
289
  })
290
290
 
291
291
  const trimmedCommand = DD_MAJOR < 6 ? this.command : 'vitest run'
@@ -294,14 +294,14 @@ class VitestPlugin extends CiPlugin {
294
294
  const metadataTags = {}
295
295
  for (const testLevel of TEST_LEVEL_EVENT_TYPES) {
296
296
  metadataTags[testLevel] = {
297
- [TEST_SESSION_NAME]: testSessionName
297
+ [TEST_SESSION_NAME]: testSessionName,
298
298
  }
299
299
  }
300
300
  if (this.tracer._exporter.addMetadataTags) {
301
301
  const libraryCapabilitiesTags = getLibraryCapabilitiesTags(this.constructor.id)
302
302
  metadataTags.test = {
303
303
  ...metadataTags.test,
304
- ...libraryCapabilitiesTags
304
+ ...libraryCapabilitiesTags,
305
305
  }
306
306
  this.tracer._exporter.addMetadataTags(metadataTags)
307
307
  }
@@ -326,8 +326,8 @@ class VitestPlugin extends CiPlugin {
326
326
  tags: {
327
327
  [COMPONENT]: this.constructor.id,
328
328
  ...this.testEnvironmentMetadata,
329
- ...testSuiteMetadata
330
- }
329
+ ...testSuiteMetadata,
330
+ },
331
331
  })
332
332
  this.telemetry.ciVisEvent(TELEMETRY_EVENT_CREATED, 'suite')
333
333
  const store = storage('legacy').getStore()
@@ -374,7 +374,7 @@ class VitestPlugin extends CiPlugin {
374
374
  isEarlyFlakeDetectionFaulty,
375
375
  isTestManagementTestsEnabled,
376
376
  vitestPool,
377
- onFinish
377
+ onFinish,
378
378
  }) => {
379
379
  this.testSessionSpan.setTag(TEST_STATUS, status)
380
380
  this.testModuleSpan.setTag(TEST_STATUS, status)
@@ -405,10 +405,31 @@ class VitestPlugin extends CiPlugin {
405
405
  finishAllTraceSpans(this.testSessionSpan)
406
406
  this.telemetry.count(TELEMETRY_TEST_SESSION, {
407
407
  provider: this.ciProviderName,
408
- autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER')
408
+ autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER'),
409
409
  })
410
410
  this.tracer._exporter.flush(onFinish)
411
411
  })
412
+
413
+ this.addSub('ci:vitest:coverage-report', ({ rootDir, onDone }) => {
414
+ this.handleCoverageReport(rootDir, onDone)
415
+ })
416
+ }
417
+
418
+ /**
419
+ * Handles the coverage report by discovering and uploading it if enabled.
420
+ * @param {string} rootDir - The root directory where coverage reports are located.
421
+ * @param {Function} [onDone] - Callback to signal completion.
422
+ */
423
+ handleCoverageReport (rootDir, onDone) {
424
+ if (!this.libraryConfig?.isCoverageReportUploadEnabled) {
425
+ onDone()
426
+ return
427
+ }
428
+ this.uploadCoverageReports({
429
+ rootDir,
430
+ testEnvironmentMetadata: this.testEnvironmentMetadata,
431
+ onDone,
432
+ })
412
433
  }
413
434
 
414
435
  getTestProperties (testManagementTests, testSuite, testName) {
@@ -4,12 +4,12 @@ const TracingPlugin = require('../../dd-trace/src/plugins/tracing.js')
4
4
  const {
5
5
  WEBSOCKET_PTR_KIND,
6
6
  SPAN_POINTER_DIRECTION,
7
- SPAN_POINTER_DIRECTION_NAME
7
+ SPAN_POINTER_DIRECTION_NAME,
8
8
  } = require('../../dd-trace/src/constants')
9
9
  const {
10
10
  incrementWebSocketCounter,
11
11
  buildWebSocketSpanPointerHash,
12
- hasDistributedTracingContext
12
+ hasDistributedTracingContext,
13
13
  } = require('./util')
14
14
 
15
15
  class WSClosePlugin extends TracingPlugin {
@@ -21,14 +21,14 @@ class WSClosePlugin extends TracingPlugin {
21
21
  bindStart (ctx) {
22
22
  const {
23
23
  traceWebsocketMessagesInheritSampling,
24
- traceWebsocketMessagesSeparateTraces
24
+ traceWebsocketMessagesSeparateTraces,
25
25
  } = this.config
26
26
 
27
27
  const { code, data, socket, isPeerClose } = ctx
28
28
  if (!socket?.spanContext) return
29
29
 
30
30
  const spanKind = isPeerClose ? 'consumer' : 'producer'
31
- const spanTags = socket.spanContext.spanTags
31
+ const spanTags = socket.spanTags
32
32
  const path = spanTags['resource.name'].split(' ')[1]
33
33
  const service = this.serviceName({ pluginConfig: this.config })
34
34
  const span = this.startSpan(this.operationName(), {
@@ -37,9 +37,9 @@ class WSClosePlugin extends TracingPlugin {
37
37
  'resource.name': `websocket ${path}`,
38
38
  'span.type': 'websocket',
39
39
  'span.kind': spanKind,
40
- 'websocket.close.code': code
40
+ 'websocket.close.code': code,
41
41
 
42
- }
42
+ },
43
43
  }, ctx)
44
44
 
45
45
  if (data?.toString().length > 0) {
@@ -76,14 +76,13 @@ class WSClosePlugin extends TracingPlugin {
76
76
  linkAttributes['dd.kind'] = isIncoming ? 'executed_by' : 'resuming'
77
77
 
78
78
  // Add span pointer for context propagation
79
- if (this.config.traceWebsocketMessagesEnabled && ctx.socket.handshakeSpan) {
80
- const handshakeSpan = ctx.socket.handshakeSpan
79
+ if (this.config.traceWebsocketMessagesEnabled && ctx.socket.spanContext) {
80
+ const handshakeContext = ctx.socket.spanContext
81
81
 
82
82
  // Only add span pointers if distributed tracing is enabled and handshake has distributed context
83
- if (hasDistributedTracingContext(handshakeSpan, ctx.socket)) {
83
+ if (hasDistributedTracingContext(handshakeContext, ctx.socket)) {
84
84
  const counterType = isIncoming ? 'receiveCounter' : 'sendCounter'
85
85
  const counter = incrementWebSocketCounter(ctx.socket, counterType)
86
- const handshakeContext = handshakeSpan.context()
87
86
 
88
87
  const ptrHash = buildWebSocketSpanPointerHash(
89
88
  handshakeContext._traceId,
@@ -111,7 +110,7 @@ class WSClosePlugin extends TracingPlugin {
111
110
 
112
111
  ctx.span.addLink({
113
112
  context: ctx.socket.spanContext,
114
- attributes: linkAttributes
113
+ attributes: linkAttributes,
115
114
  })
116
115
  }
117
116
 
@@ -14,7 +14,7 @@ class WSPlugin extends CompositePlugin {
14
14
  server: WSServerPlugin,
15
15
  producer: WSProducerPlugin,
16
16
  receiver: WSReceiverPlugin,
17
- close: WSClosePlugin
17
+ close: WSClosePlugin,
18
18
  }
19
19
  }
20
20
 
@@ -4,12 +4,12 @@ const TracingPlugin = require('../../dd-trace/src/plugins/tracing.js')
4
4
  const {
5
5
  WEBSOCKET_PTR_KIND,
6
6
  SPAN_POINTER_DIRECTION,
7
- SPAN_POINTER_DIRECTION_NAME
7
+ SPAN_POINTER_DIRECTION_NAME,
8
8
  } = require('../../dd-trace/src/constants')
9
9
  const {
10
10
  incrementWebSocketCounter,
11
11
  buildWebSocketSpanPointerHash,
12
- hasDistributedTracingContext
12
+ hasDistributedTracingContext,
13
13
  } = require('./util')
14
14
 
15
15
  class WSProducerPlugin extends TracingPlugin {
@@ -22,7 +22,7 @@ class WSProducerPlugin extends TracingPlugin {
22
22
  const { byteLength, socket, binary } = ctx
23
23
  if (!socket.spanContext) return
24
24
 
25
- const spanTags = socket.spanContext.spanTags
25
+ const spanTags = socket.spanTags
26
26
  const path = spanTags['resource.name'].split(' ')[1]
27
27
  const opCode = binary ? 'binary' : 'text'
28
28
  const service = this.serviceName({ pluginConfig: this.config })
@@ -36,8 +36,8 @@ class WSProducerPlugin extends TracingPlugin {
36
36
 
37
37
  },
38
38
  metrics: {
39
- 'websocket.message.length': byteLength
40
- }
39
+ 'websocket.message.length': byteLength,
40
+ },
41
41
 
42
42
  }, ctx)
43
43
 
@@ -61,13 +61,12 @@ class WSProducerPlugin extends TracingPlugin {
61
61
  const linkAttributes = { 'dd.kind': 'resuming' }
62
62
 
63
63
  // Add span pointer for context propagation
64
- if (this.config.traceWebsocketMessagesEnabled && ctx.socket.handshakeSpan) {
65
- const handshakeSpan = ctx.socket.handshakeSpan
64
+ if (this.config.traceWebsocketMessagesEnabled && ctx.socket.spanContext) {
65
+ const handshakeContext = ctx.socket.spanContext
66
66
 
67
67
  // Only add span pointers if distributed tracing is enabled and handshake has distributed context
68
- if (hasDistributedTracingContext(handshakeSpan, ctx.socket)) {
68
+ if (hasDistributedTracingContext(handshakeContext, ctx.socket)) {
69
69
  const counter = incrementWebSocketCounter(ctx.socket, 'sendCounter')
70
- const handshakeContext = handshakeSpan.context()
71
70
 
72
71
  const ptrHash = buildWebSocketSpanPointerHash(
73
72
  handshakeContext._traceId,
@@ -4,12 +4,12 @@ const TracingPlugin = require('../../dd-trace/src/plugins/tracing.js')
4
4
  const {
5
5
  WEBSOCKET_PTR_KIND,
6
6
  SPAN_POINTER_DIRECTION,
7
- SPAN_POINTER_DIRECTION_NAME
7
+ SPAN_POINTER_DIRECTION_NAME,
8
8
  } = require('../../dd-trace/src/constants')
9
9
  const {
10
10
  incrementWebSocketCounter,
11
11
  buildWebSocketSpanPointerHash,
12
- hasDistributedTracingContext
12
+ hasDistributedTracingContext,
13
13
  } = require('./util')
14
14
 
15
15
  class WSReceiverPlugin extends TracingPlugin {
@@ -21,13 +21,13 @@ class WSReceiverPlugin extends TracingPlugin {
21
21
  bindStart (ctx) {
22
22
  const {
23
23
  traceWebsocketMessagesInheritSampling,
24
- traceWebsocketMessagesSeparateTraces
24
+ traceWebsocketMessagesSeparateTraces,
25
25
  } = this.config
26
26
 
27
27
  const { byteLength, socket, binary } = ctx
28
28
  if (!socket.spanContext) return
29
29
 
30
- const spanTags = socket.spanContext.spanTags
30
+ const spanTags = socket.spanTags
31
31
  const path = spanTags['resource.name'].split(' ')[1]
32
32
  const opCode = binary ? 'binary' : 'text'
33
33
 
@@ -43,7 +43,7 @@ class WSReceiverPlugin extends TracingPlugin {
43
43
  },
44
44
  metrics: {
45
45
  'websocket.message.length': byteLength,
46
- }
46
+ },
47
47
 
48
48
  }, ctx)
49
49
 
@@ -72,13 +72,12 @@ class WSReceiverPlugin extends TracingPlugin {
72
72
  const linkAttributes = { 'dd.kind': 'executed_by' }
73
73
 
74
74
  // Add span pointer for context propagation
75
- if (this.config.traceWebsocketMessagesEnabled && ctx.socket.handshakeSpan) {
76
- const handshakeSpan = ctx.socket.handshakeSpan
75
+ if (this.config.traceWebsocketMessagesEnabled && ctx.socket.spanContext) {
76
+ const handshakeContext = ctx.socket.spanContext
77
77
 
78
78
  // Only add span pointers if distributed tracing is enabled and handshake has distributed context
79
- if (hasDistributedTracingContext(handshakeSpan, ctx.socket)) {
79
+ if (hasDistributedTracingContext(handshakeContext, ctx.socket)) {
80
80
  const counter = incrementWebSocketCounter(ctx.socket, 'receiveCounter')
81
- const handshakeContext = handshakeSpan.context()
82
81
 
83
82
  const ptrHash = buildWebSocketSpanPointerHash(
84
83
  handshakeContext._traceId,
@@ -2,8 +2,12 @@
2
2
 
3
3
  const TracingPlugin = require('../../dd-trace/src/plugins/tracing.js')
4
4
  const tags = require('../../../ext/tags.js')
5
- const { FORMAT_HTTP_HEADERS } = require('../../../ext/formats')
6
- const { initWebSocketMessageCounters } = require('./util')
5
+ const { HTTP_HEADERS } = require('../../../ext/formats')
6
+ const {
7
+ createWebSocketSpanContext,
8
+ hasTraceHeaders,
9
+ initWebSocketMessageCounters,
10
+ } = require('./util')
7
11
 
8
12
  const HTTP_STATUS_CODE = tags.HTTP_STATUS_CODE
9
13
 
@@ -27,11 +31,12 @@ class WSServerPlugin extends TracingPlugin {
27
31
  const indexOfParam = url.indexOf('?')
28
32
  const route = indexOfParam === -1 ? url : url.slice(0, indexOfParam)
29
33
  const uri = `${protocol}//${host}${route}`
34
+ const resourceName = `${options.method} ${route}`
30
35
 
31
36
  ctx.args = { options }
32
37
 
33
38
  // Extract distributed tracing context from request headers
34
- const childOf = this.tracer.extract(FORMAT_HTTP_HEADERS, req.headers)
39
+ const childOf = this.tracer.extract(HTTP_HEADERS, req.headers)
35
40
 
36
41
  const service = this.serviceName({ pluginConfig: this.config })
37
42
  const span = this.startSpan(this.operationName(), {
@@ -42,19 +47,19 @@ class WSServerPlugin extends TracingPlugin {
42
47
  'http.upgraded': 'websocket',
43
48
  'http.method': options.method,
44
49
  'http.url': uri,
45
- 'resource.name': `${options.method} ${route}`,
46
- 'span.kind': 'server'
47
- }
50
+ 'resource.name': resourceName,
51
+ 'span.kind': 'server',
52
+ },
48
53
 
49
54
  }, ctx)
50
55
  ctx.span = span
51
56
 
52
- ctx.socket.spanContext = ctx.span._spanContext
53
- ctx.socket.spanContext.spanTags = ctx.span._spanContext._tags
54
- // Store the handshake span for use in message span pointers
55
- ctx.socket.handshakeSpan = ctx.span
56
- // Store the request headers for distributed tracing check
57
- ctx.socket.requestHeaders = req.headers
57
+ ctx.socket.spanTags = {
58
+ 'resource.name': resourceName,
59
+ 'service.name': service,
60
+ }
61
+ ctx.socket.spanContext = createWebSocketSpanContext(ctx.span._spanContext)
62
+ ctx.socket.hasTraceHeaders = hasTraceHeaders(req.headers)
58
63
 
59
64
  // Initialize message counters for span pointers
60
65
  initWebSocketMessageCounters(ctx.socket)