dd-trace 6.0.0-pre-0bb1f17 → 6.0.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 (903) hide show
  1. package/LICENSE-3rdparty.csv +90 -88
  2. package/README.md +13 -8
  3. package/ci/cypress/polyfills.js +1 -1
  4. package/ci/init.js +34 -14
  5. package/ci/vitest-no-worker-init-setup.mjs +430 -0
  6. package/ext/exporters.d.ts +1 -0
  7. package/ext/exporters.js +3 -1
  8. package/ext/formats.js +1 -1
  9. package/ext/index.js +1 -1
  10. package/ext/kinds.js +1 -1
  11. package/ext/priority.js +1 -1
  12. package/ext/scopes.js +1 -1
  13. package/ext/tags.d.ts +1 -0
  14. package/ext/tags.js +7 -1
  15. package/ext/types.js +1 -1
  16. package/index.d.ts +1046 -204
  17. package/initialize.mjs +49 -34
  18. package/loader-hook.mjs +166 -34
  19. package/package.json +156 -131
  20. package/packages/datadog-code-origin/index.js +12 -10
  21. package/packages/datadog-core/src/storage.js +70 -53
  22. package/packages/datadog-core/src/utils/src/parse-tags.js +1 -1
  23. package/packages/datadog-core/src/utils/src/pick.js +2 -2
  24. package/packages/datadog-esbuild/index.js +154 -92
  25. package/packages/datadog-esbuild/src/log.js +32 -0
  26. package/packages/datadog-esbuild/src/utils.js +69 -10
  27. package/packages/datadog-instrumentations/index.js +1 -0
  28. package/packages/datadog-instrumentations/src/aerospike.js +8 -7
  29. package/packages/datadog-instrumentations/src/ai.js +183 -98
  30. package/packages/datadog-instrumentations/src/amqp10.js +2 -2
  31. package/packages/datadog-instrumentations/src/amqplib.js +10 -11
  32. package/packages/datadog-instrumentations/src/anthropic.js +27 -15
  33. package/packages/datadog-instrumentations/src/apollo-server-core.js +5 -5
  34. package/packages/datadog-instrumentations/src/apollo-server.js +10 -10
  35. package/packages/datadog-instrumentations/src/apollo.js +5 -4
  36. package/packages/datadog-instrumentations/src/avsc.js +8 -8
  37. package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js-context-methods.js +18 -0
  38. package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +111 -0
  39. package/packages/datadog-instrumentations/src/aws-sdk.js +180 -76
  40. package/packages/datadog-instrumentations/src/azure-cosmos.js +7 -0
  41. package/packages/datadog-instrumentations/src/azure-durable-functions.js +75 -0
  42. package/packages/datadog-instrumentations/src/azure-event-hubs.js +6 -5
  43. package/packages/datadog-instrumentations/src/azure-functions.js +6 -3
  44. package/packages/datadog-instrumentations/src/azure-service-bus.js +4 -5
  45. package/packages/datadog-instrumentations/src/bluebird.js +3 -3
  46. package/packages/datadog-instrumentations/src/body-parser.js +7 -4
  47. package/packages/datadog-instrumentations/src/bullmq.js +11 -0
  48. package/packages/datadog-instrumentations/src/bunyan.js +2 -2
  49. package/packages/datadog-instrumentations/src/cassandra-driver.js +14 -11
  50. package/packages/datadog-instrumentations/src/child_process.js +37 -41
  51. package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +60 -42
  52. package/packages/datadog-instrumentations/src/connect.js +14 -12
  53. package/packages/datadog-instrumentations/src/cookie-parser.js +6 -5
  54. package/packages/datadog-instrumentations/src/cookie.js +2 -2
  55. package/packages/datadog-instrumentations/src/couchbase.js +76 -239
  56. package/packages/datadog-instrumentations/src/crypto.js +52 -8
  57. package/packages/datadog-instrumentations/src/cucumber-worker-threads.js +19 -0
  58. package/packages/datadog-instrumentations/src/cucumber.js +730 -160
  59. package/packages/datadog-instrumentations/src/cypress-config.js +424 -0
  60. package/packages/datadog-instrumentations/src/cypress.js +89 -5
  61. package/packages/datadog-instrumentations/src/dns.js +62 -62
  62. package/packages/datadog-instrumentations/src/elasticsearch.js +24 -18
  63. package/packages/datadog-instrumentations/src/electron/preload.js +42 -0
  64. package/packages/datadog-instrumentations/src/electron.js +240 -0
  65. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +14 -12
  66. package/packages/datadog-instrumentations/src/express-session.js +15 -14
  67. package/packages/datadog-instrumentations/src/express.js +42 -38
  68. package/packages/datadog-instrumentations/src/fastify.js +147 -83
  69. package/packages/datadog-instrumentations/src/fetch.js +7 -7
  70. package/packages/datadog-instrumentations/src/find-my-way.js +6 -5
  71. package/packages/datadog-instrumentations/src/fs.js +52 -52
  72. package/packages/datadog-instrumentations/src/generic-pool.js +3 -3
  73. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +141 -21
  74. package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +6 -7
  75. package/packages/datadog-instrumentations/src/google-genai.js +120 -0
  76. package/packages/datadog-instrumentations/src/graphql.js +32 -348
  77. package/packages/datadog-instrumentations/src/grpc/client.js +58 -46
  78. package/packages/datadog-instrumentations/src/grpc/server.js +3 -3
  79. package/packages/datadog-instrumentations/src/grpc/types.js +1 -1
  80. package/packages/datadog-instrumentations/src/hapi.js +2 -2
  81. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +66 -15
  82. package/packages/datadog-instrumentations/src/helpers/callback-instrumentor.js +74 -0
  83. package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +86 -10
  84. package/packages/datadog-instrumentations/src/helpers/extract-package-and-module-path.js +2 -2
  85. package/packages/datadog-instrumentations/src/helpers/hook.js +51 -17
  86. package/packages/datadog-instrumentations/src/helpers/hooks.js +30 -21
  87. package/packages/datadog-instrumentations/src/helpers/instrument.js +65 -15
  88. package/packages/datadog-instrumentations/src/helpers/instrumentations.js +4 -3
  89. package/packages/datadog-instrumentations/src/helpers/kafka.js +58 -0
  90. package/packages/datadog-instrumentations/src/helpers/optional-peer-bundler.js +65 -0
  91. package/packages/datadog-instrumentations/src/helpers/promise-instrumentor.js +42 -0
  92. package/packages/datadog-instrumentations/src/helpers/promise.js +2 -2
  93. package/packages/datadog-instrumentations/src/helpers/register.js +124 -158
  94. package/packages/datadog-instrumentations/src/helpers/require-optional-peer.js +17 -0
  95. package/packages/datadog-instrumentations/src/helpers/rewriter/compiler.js +73 -0
  96. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +97 -0
  97. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/ai.js +128 -0
  98. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/aws-durable-execution-sdk-js.js +31 -0
  99. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/azure-cosmos.js +50 -0
  100. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/bullmq.js +108 -0
  101. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/graphql.js +201 -0
  102. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +13 -0
  103. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langchain.js +237 -0
  104. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langgraph.js +32 -0
  105. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/modelcontextprotocol-sdk.js +59 -0
  106. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/playwright.js +85 -0
  107. package/packages/datadog-instrumentations/src/helpers/rewriter/loader.js +9 -0
  108. package/packages/datadog-instrumentations/src/helpers/rewriter/loader.mjs +27 -0
  109. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +47 -0
  110. package/packages/datadog-instrumentations/src/helpers/router-helper.js +8 -8
  111. package/packages/datadog-instrumentations/src/helpers/shared-utils.js +9 -0
  112. package/packages/datadog-instrumentations/src/hono.js +128 -21
  113. package/packages/datadog-instrumentations/src/http/client.js +167 -26
  114. package/packages/datadog-instrumentations/src/http/server.js +54 -38
  115. package/packages/datadog-instrumentations/src/http2/client.js +16 -15
  116. package/packages/datadog-instrumentations/src/http2/server.js +17 -12
  117. package/packages/datadog-instrumentations/src/ioredis.js +19 -16
  118. package/packages/datadog-instrumentations/src/iovalkey.js +3 -4
  119. package/packages/datadog-instrumentations/src/jest/bail-reporter.js +42 -0
  120. package/packages/datadog-instrumentations/src/jest/coverage-backfill.js +163 -0
  121. package/packages/datadog-instrumentations/src/jest.js +1649 -387
  122. package/packages/datadog-instrumentations/src/kafkajs.js +303 -185
  123. package/packages/datadog-instrumentations/src/knex.js +20 -20
  124. package/packages/datadog-instrumentations/src/koa.js +20 -16
  125. package/packages/datadog-instrumentations/src/langchain.js +3 -109
  126. package/packages/datadog-instrumentations/src/langgraph.js +7 -0
  127. package/packages/datadog-instrumentations/src/ldapjs.js +7 -7
  128. package/packages/datadog-instrumentations/src/light-my-request.js +93 -0
  129. package/packages/datadog-instrumentations/src/limitd-client.js +6 -6
  130. package/packages/datadog-instrumentations/src/lodash.js +5 -6
  131. package/packages/datadog-instrumentations/src/mariadb.js +20 -19
  132. package/packages/datadog-instrumentations/src/memcached.js +6 -5
  133. package/packages/datadog-instrumentations/src/microgateway-core.js +2 -2
  134. package/packages/datadog-instrumentations/src/mocha/common.js +10 -7
  135. package/packages/datadog-instrumentations/src/mocha/main.js +610 -148
  136. package/packages/datadog-instrumentations/src/mocha/utils.js +487 -81
  137. package/packages/datadog-instrumentations/src/mocha/worker.js +31 -18
  138. package/packages/datadog-instrumentations/src/mocha.js +1 -1
  139. package/packages/datadog-instrumentations/src/modelcontextprotocol-sdk.js +7 -0
  140. package/packages/datadog-instrumentations/src/moleculer/server.js +1 -1
  141. package/packages/datadog-instrumentations/src/mongodb-core.js +47 -35
  142. package/packages/datadog-instrumentations/src/mongodb.js +13 -13
  143. package/packages/datadog-instrumentations/src/mongoose.js +55 -45
  144. package/packages/datadog-instrumentations/src/mquery.js +12 -12
  145. package/packages/datadog-instrumentations/src/multer.js +6 -5
  146. package/packages/datadog-instrumentations/src/mysql.js +20 -20
  147. package/packages/datadog-instrumentations/src/mysql2.js +170 -69
  148. package/packages/datadog-instrumentations/src/nats.js +182 -0
  149. package/packages/datadog-instrumentations/src/net.js +41 -31
  150. package/packages/datadog-instrumentations/src/next.js +51 -17
  151. package/packages/datadog-instrumentations/src/nyc.js +75 -6
  152. package/packages/datadog-instrumentations/src/openai.js +148 -62
  153. package/packages/datadog-instrumentations/src/opensearch.js +1 -1
  154. package/packages/datadog-instrumentations/src/oracledb.js +15 -10
  155. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +15 -9
  156. package/packages/datadog-instrumentations/src/passport-http.js +1 -1
  157. package/packages/datadog-instrumentations/src/passport-local.js +1 -1
  158. package/packages/datadog-instrumentations/src/passport-utils.js +6 -6
  159. package/packages/datadog-instrumentations/src/passport.js +1 -1
  160. package/packages/datadog-instrumentations/src/path-to-regexp.js +44 -0
  161. package/packages/datadog-instrumentations/src/pg.js +66 -31
  162. package/packages/datadog-instrumentations/src/pino.js +29 -45
  163. package/packages/datadog-instrumentations/src/playwright-browser-scripts.js +27 -0
  164. package/packages/datadog-instrumentations/src/playwright.js +1124 -357
  165. package/packages/datadog-instrumentations/src/prisma.js +244 -87
  166. package/packages/datadog-instrumentations/src/process.js +1 -1
  167. package/packages/datadog-instrumentations/src/promise-js.js +2 -2
  168. package/packages/datadog-instrumentations/src/promise.js +2 -2
  169. package/packages/datadog-instrumentations/src/protobufjs.js +23 -23
  170. package/packages/datadog-instrumentations/src/q.js +3 -3
  171. package/packages/datadog-instrumentations/src/redis.js +30 -17
  172. package/packages/datadog-instrumentations/src/restify.js +6 -5
  173. package/packages/datadog-instrumentations/src/rhea.js +6 -6
  174. package/packages/datadog-instrumentations/src/router.js +156 -75
  175. package/packages/datadog-instrumentations/src/selenium.js +10 -6
  176. package/packages/datadog-instrumentations/src/sequelize.js +3 -4
  177. package/packages/datadog-instrumentations/src/sharedb.js +3 -3
  178. package/packages/datadog-instrumentations/src/stripe.js +106 -0
  179. package/packages/datadog-instrumentations/src/tedious.js +30 -2
  180. package/packages/datadog-instrumentations/src/undici.js +17 -6
  181. package/packages/datadog-instrumentations/src/url.js +7 -9
  182. package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +1293 -0
  183. package/packages/datadog-instrumentations/src/vitest-main.js +1567 -0
  184. package/packages/datadog-instrumentations/src/vitest-util.js +249 -0
  185. package/packages/datadog-instrumentations/src/vitest-worker.js +753 -0
  186. package/packages/datadog-instrumentations/src/vitest.js +11 -1072
  187. package/packages/datadog-instrumentations/src/vm.js +2 -4
  188. package/packages/datadog-instrumentations/src/when.js +2 -2
  189. package/packages/datadog-instrumentations/src/winston.js +6 -6
  190. package/packages/datadog-instrumentations/src/ws.js +168 -40
  191. package/packages/datadog-instrumentations/src/zlib.js +29 -0
  192. package/packages/datadog-plugin-aerospike/src/index.js +4 -4
  193. package/packages/datadog-plugin-ai/src/index.js +1 -1
  194. package/packages/datadog-plugin-ai/src/tracing.js +2 -2
  195. package/packages/datadog-plugin-ai/src/utils.js +1 -1
  196. package/packages/datadog-plugin-amqp10/src/consumer.js +2 -2
  197. package/packages/datadog-plugin-amqp10/src/index.js +2 -2
  198. package/packages/datadog-plugin-amqp10/src/producer.js +2 -2
  199. package/packages/datadog-plugin-amqplib/src/client.js +2 -2
  200. package/packages/datadog-plugin-amqplib/src/consumer.js +16 -12
  201. package/packages/datadog-plugin-amqplib/src/index.js +2 -2
  202. package/packages/datadog-plugin-amqplib/src/producer.js +25 -21
  203. package/packages/datadog-plugin-amqplib/src/util.js +1 -1
  204. package/packages/datadog-plugin-anthropic/src/index.js +2 -2
  205. package/packages/datadog-plugin-anthropic/src/tracing.js +2 -2
  206. package/packages/datadog-plugin-apollo/src/gateway/execute.js +8 -0
  207. package/packages/datadog-plugin-apollo/src/gateway/fetch.js +6 -1
  208. package/packages/datadog-plugin-apollo/src/gateway/index.js +1 -1
  209. package/packages/datadog-plugin-apollo/src/gateway/plan.js +8 -0
  210. package/packages/datadog-plugin-apollo/src/gateway/postprocessing.js +5 -0
  211. package/packages/datadog-plugin-apollo/src/gateway/request.js +10 -29
  212. package/packages/datadog-plugin-apollo/src/gateway/validate.js +4 -3
  213. package/packages/datadog-plugin-apollo/src/index.js +29 -1
  214. package/packages/datadog-plugin-avsc/src/schema_iterator.js +6 -6
  215. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/checkpoint.js +31 -0
  216. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/client.js +55 -0
  217. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/context.js +122 -0
  218. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/handler.js +128 -0
  219. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/index.js +19 -0
  220. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/trace-checkpoint.js +224 -0
  221. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +79 -0
  222. package/packages/datadog-plugin-aws-sdk/src/base.js +104 -61
  223. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +2 -2
  224. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +2 -2
  225. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +241 -27
  226. package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +2 -2
  227. package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +6 -5
  228. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +62 -17
  229. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +151 -77
  230. package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +37 -26
  231. package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +3 -2
  232. package/packages/datadog-plugin-aws-sdk/src/services/s3.js +2 -2
  233. package/packages/datadog-plugin-aws-sdk/src/services/sns.js +20 -20
  234. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +184 -104
  235. package/packages/datadog-plugin-aws-sdk/src/services/stepfunctions.js +20 -18
  236. package/packages/datadog-plugin-aws-sdk/src/util.js +26 -4
  237. package/packages/datadog-plugin-azure-cosmos/src/index.js +144 -0
  238. package/packages/datadog-plugin-azure-durable-functions/src/index.js +49 -0
  239. package/packages/datadog-plugin-azure-event-hubs/src/index.js +2 -2
  240. package/packages/datadog-plugin-azure-event-hubs/src/producer.js +25 -18
  241. package/packages/datadog-plugin-azure-functions/src/index.js +63 -43
  242. package/packages/datadog-plugin-azure-service-bus/src/index.js +2 -2
  243. package/packages/datadog-plugin-azure-service-bus/src/producer.js +12 -13
  244. package/packages/datadog-plugin-bullmq/src/consumer.js +83 -0
  245. package/packages/datadog-plugin-bullmq/src/filter.js +35 -0
  246. package/packages/datadog-plugin-bullmq/src/index.js +18 -0
  247. package/packages/datadog-plugin-bullmq/src/producer.js +295 -0
  248. package/packages/datadog-plugin-bunyan/src/index.js +28 -0
  249. package/packages/datadog-plugin-cassandra-driver/src/index.js +2 -2
  250. package/packages/datadog-plugin-child_process/src/index.js +2 -2
  251. package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +12 -12
  252. package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +2 -2
  253. package/packages/datadog-plugin-couchbase/src/index.js +60 -54
  254. package/packages/datadog-plugin-cucumber/src/index.js +88 -59
  255. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +808 -124
  256. package/packages/datadog-plugin-cypress/src/index.js +59 -2
  257. package/packages/datadog-plugin-cypress/src/plugin.js +8 -17
  258. package/packages/datadog-plugin-cypress/src/source-map-utils.js +344 -0
  259. package/packages/datadog-plugin-cypress/src/support.js +265 -22
  260. package/packages/datadog-plugin-dd-trace-api/src/index.js +2 -5
  261. package/packages/datadog-plugin-dns/src/index.js +1 -1
  262. package/packages/datadog-plugin-dns/src/lookup.js +10 -8
  263. package/packages/datadog-plugin-dns/src/lookup_service.js +3 -3
  264. package/packages/datadog-plugin-dns/src/resolve.js +2 -2
  265. package/packages/datadog-plugin-dns/src/reverse.js +2 -2
  266. package/packages/datadog-plugin-elasticsearch/src/index.js +28 -8
  267. package/packages/datadog-plugin-electron/src/index.js +17 -0
  268. package/packages/datadog-plugin-electron/src/ipc.js +143 -0
  269. package/packages/datadog-plugin-electron/src/net.js +82 -0
  270. package/packages/datadog-plugin-express/src/code_origin.js +21 -15
  271. package/packages/datadog-plugin-express/src/index.js +2 -2
  272. package/packages/datadog-plugin-fastify/src/code_origin.js +17 -4
  273. package/packages/datadog-plugin-fastify/src/index.js +2 -2
  274. package/packages/datadog-plugin-fs/src/index.js +4 -3
  275. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +15 -5
  276. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +168 -12
  277. package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +2 -3
  278. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +172 -15
  279. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +214 -0
  280. package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +2 -2
  281. package/packages/datadog-plugin-google-cloud-vertexai/src/tracing.js +2 -2
  282. package/packages/datadog-plugin-google-cloud-vertexai/src/utils.js +1 -1
  283. package/packages/datadog-plugin-google-genai/src/index.js +17 -0
  284. package/packages/datadog-plugin-google-genai/src/tracing.js +41 -0
  285. package/packages/datadog-plugin-graphql/src/execute.js +630 -34
  286. package/packages/datadog-plugin-graphql/src/index.js +21 -9
  287. package/packages/datadog-plugin-graphql/src/parse.js +25 -5
  288. package/packages/datadog-plugin-graphql/src/tools/signature.js +32 -7
  289. package/packages/datadog-plugin-graphql/src/tools/transforms.js +118 -99
  290. package/packages/datadog-plugin-graphql/src/utils.js +36 -4
  291. package/packages/datadog-plugin-graphql/src/validate.js +18 -7
  292. package/packages/datadog-plugin-grpc/src/client.js +10 -11
  293. package/packages/datadog-plugin-grpc/src/index.js +2 -2
  294. package/packages/datadog-plugin-grpc/src/server.js +4 -4
  295. package/packages/datadog-plugin-grpc/src/util.js +58 -23
  296. package/packages/datadog-plugin-http/src/client.js +25 -26
  297. package/packages/datadog-plugin-http/src/index.js +23 -5
  298. package/packages/datadog-plugin-http/src/server.js +76 -18
  299. package/packages/datadog-plugin-http2/src/client.js +14 -11
  300. package/packages/datadog-plugin-http2/src/index.js +2 -2
  301. package/packages/datadog-plugin-http2/src/server.js +10 -2
  302. package/packages/datadog-plugin-jest/src/index.js +192 -82
  303. package/packages/datadog-plugin-jest/src/util.js +24 -11
  304. package/packages/datadog-plugin-kafkajs/src/batch-consumer.js +31 -4
  305. package/packages/datadog-plugin-kafkajs/src/consumer.js +28 -25
  306. package/packages/datadog-plugin-kafkajs/src/index.js +2 -2
  307. package/packages/datadog-plugin-kafkajs/src/producer.js +73 -33
  308. package/packages/datadog-plugin-kafkajs/src/utils.js +1 -1
  309. package/packages/datadog-plugin-langchain/src/index.js +1 -1
  310. package/packages/datadog-plugin-langchain/src/tokens.js +2 -2
  311. package/packages/datadog-plugin-langchain/src/tracing.js +11 -7
  312. package/packages/datadog-plugin-langgraph/src/index.js +24 -0
  313. package/packages/datadog-plugin-langgraph/src/stream.js +41 -0
  314. package/packages/datadog-plugin-memcached/src/index.js +3 -3
  315. package/packages/datadog-plugin-mocha/src/index.js +66 -40
  316. package/packages/datadog-plugin-modelcontextprotocol-sdk/src/index.js +24 -0
  317. package/packages/datadog-plugin-modelcontextprotocol-sdk/src/tracing.js +55 -0
  318. package/packages/datadog-plugin-moleculer/src/client.js +1 -1
  319. package/packages/datadog-plugin-moleculer/src/index.js +2 -2
  320. package/packages/datadog-plugin-moleculer/src/server.js +2 -2
  321. package/packages/datadog-plugin-moleculer/src/util.js +1 -1
  322. package/packages/datadog-plugin-mongodb-core/src/index.js +311 -70
  323. package/packages/datadog-plugin-mysql/src/index.js +11 -6
  324. package/packages/datadog-plugin-nats/src/consumer.js +43 -0
  325. package/packages/datadog-plugin-nats/src/index.js +20 -0
  326. package/packages/datadog-plugin-nats/src/producer.js +62 -0
  327. package/packages/datadog-plugin-nats/src/util.js +33 -0
  328. package/packages/datadog-plugin-net/src/ipc.js +2 -2
  329. package/packages/datadog-plugin-net/src/tcp.js +4 -4
  330. package/packages/datadog-plugin-next/src/index.js +18 -14
  331. package/packages/datadog-plugin-nyc/src/index.js +60 -0
  332. package/packages/datadog-plugin-openai/src/index.js +2 -2
  333. package/packages/datadog-plugin-openai/src/services.js +8 -6
  334. package/packages/datadog-plugin-openai/src/stream-helpers.js +31 -11
  335. package/packages/datadog-plugin-openai/src/tracing.js +39 -37
  336. package/packages/datadog-plugin-oracledb/src/connection-parser.js +1 -1
  337. package/packages/datadog-plugin-oracledb/src/index.js +14 -3
  338. package/packages/datadog-plugin-pg/src/index.js +15 -5
  339. package/packages/datadog-plugin-pino/src/index.js +42 -0
  340. package/packages/datadog-plugin-playwright/src/index.js +114 -62
  341. package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +118 -0
  342. package/packages/datadog-plugin-prisma/src/index.js +132 -10
  343. package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +6 -6
  344. package/packages/datadog-plugin-redis/src/index.js +56 -27
  345. package/packages/datadog-plugin-restify/src/index.js +1 -1
  346. package/packages/datadog-plugin-rhea/src/consumer.js +2 -2
  347. package/packages/datadog-plugin-rhea/src/index.js +2 -2
  348. package/packages/datadog-plugin-rhea/src/producer.js +3 -3
  349. package/packages/datadog-plugin-router/src/index.js +55 -44
  350. package/packages/datadog-plugin-selenium/src/index.js +3 -3
  351. package/packages/datadog-plugin-sharedb/src/index.js +2 -2
  352. package/packages/datadog-plugin-tedious/src/index.js +3 -3
  353. package/packages/datadog-plugin-undici/src/index.js +327 -2
  354. package/packages/datadog-plugin-vitest/src/index.js +169 -104
  355. package/packages/datadog-plugin-winston/src/index.js +30 -0
  356. package/packages/datadog-plugin-ws/src/close.js +62 -8
  357. package/packages/datadog-plugin-ws/src/index.js +5 -1
  358. package/packages/datadog-plugin-ws/src/producer.js +43 -7
  359. package/packages/datadog-plugin-ws/src/receiver.js +43 -7
  360. package/packages/datadog-plugin-ws/src/server.js +31 -6
  361. package/packages/datadog-plugin-ws/src/util.js +139 -0
  362. package/packages/datadog-shimmer/src/shimmer.js +99 -47
  363. package/packages/datadog-webpack/index.js +203 -0
  364. package/packages/datadog-webpack/src/loader.js +27 -0
  365. package/packages/datadog-webpack/src/log.js +32 -0
  366. package/packages/datadog-webpack/src/optional-peer-loader.js +17 -0
  367. package/packages/dd-trace/index.js +26 -4
  368. package/packages/dd-trace/src/agent/info.js +57 -0
  369. package/packages/dd-trace/src/aiguard/channels.js +7 -0
  370. package/packages/dd-trace/src/aiguard/client.js +3 -3
  371. package/packages/dd-trace/src/aiguard/index.js +51 -0
  372. package/packages/dd-trace/src/aiguard/integrations/evaluate.js +46 -0
  373. package/packages/dd-trace/src/aiguard/integrations/openai.js +66 -0
  374. package/packages/dd-trace/src/aiguard/integrations/vercel-ai.js +78 -0
  375. package/packages/dd-trace/src/aiguard/messages/openai.js +382 -0
  376. package/packages/dd-trace/src/aiguard/messages/vercel-ai.js +185 -0
  377. package/packages/dd-trace/src/aiguard/noop.js +1 -1
  378. package/packages/dd-trace/src/aiguard/sdk.js +178 -60
  379. package/packages/dd-trace/src/aiguard/tags.js +26 -10
  380. package/packages/dd-trace/src/analytics_sampler.js +1 -1
  381. package/packages/dd-trace/src/appsec/activation.js +1 -1
  382. package/packages/dd-trace/src/appsec/addresses.js +12 -1
  383. package/packages/dd-trace/src/appsec/api_security/index.js +55 -0
  384. package/packages/dd-trace/src/appsec/api_security/sampler.js +147 -0
  385. package/packages/dd-trace/src/appsec/blocked_templates.js +5 -4
  386. package/packages/dd-trace/src/appsec/blocking.js +85 -42
  387. package/packages/dd-trace/src/appsec/channels.js +10 -3
  388. package/packages/dd-trace/src/appsec/downstream_requests.js +356 -0
  389. package/packages/dd-trace/src/appsec/graphql.js +27 -27
  390. package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +1 -1
  391. package/packages/dd-trace/src/appsec/iast/analyzers/code-injection-analyzer.js +1 -1
  392. package/packages/dd-trace/src/appsec/iast/analyzers/command-injection-analyzer.js +1 -1
  393. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +3 -3
  394. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +7 -6
  395. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +3 -3
  396. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-rule-type.js +1 -1
  397. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +229 -229
  398. package/packages/dd-trace/src/appsec/iast/analyzers/index.js +1 -1
  399. package/packages/dd-trace/src/appsec/iast/analyzers/injection-analyzer.js +1 -1
  400. package/packages/dd-trace/src/appsec/iast/analyzers/ldap-injection-analyzer.js +1 -1
  401. package/packages/dd-trace/src/appsec/iast/analyzers/missing-header-analyzer.js +1 -1
  402. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +36 -30
  403. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +3 -3
  404. package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +2 -2
  405. package/packages/dd-trace/src/appsec/iast/analyzers/ssrf-analyzer.js +2 -2
  406. package/packages/dd-trace/src/appsec/iast/analyzers/untrusted-deserialization-analyzer.js +1 -1
  407. package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +4 -4
  408. package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +7 -8
  409. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +2 -2
  410. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +5 -4
  411. package/packages/dd-trace/src/appsec/iast/analyzers/weak-randomness-analyzer.js +1 -1
  412. package/packages/dd-trace/src/appsec/iast/context/context-plugin.js +3 -3
  413. package/packages/dd-trace/src/appsec/iast/iast-context.js +6 -3
  414. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +21 -13
  415. package/packages/dd-trace/src/appsec/iast/index.js +10 -9
  416. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +10 -10
  417. package/packages/dd-trace/src/appsec/iast/path-line.js +41 -29
  418. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +16 -16
  419. package/packages/dd-trace/src/appsec/iast/security-controls/parser.js +49 -17
  420. package/packages/dd-trace/src/appsec/iast/tags.js +1 -1
  421. package/packages/dd-trace/src/appsec/iast/taint-tracking/constants.js +1 -1
  422. package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +2 -2
  423. package/packages/dd-trace/src/appsec/iast/taint-tracking/filter.js +1 -1
  424. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +3 -4
  425. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +4 -7
  426. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -2
  427. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +6 -6
  428. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugins/kafka.js +2 -2
  429. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +5 -5
  430. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +21 -26
  431. package/packages/dd-trace/src/appsec/iast/taint-tracking/secure-marks.js +6 -4
  432. package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +1 -1
  433. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +11 -11
  434. package/packages/dd-trace/src/appsec/iast/telemetry/iast-metric.js +4 -4
  435. package/packages/dd-trace/src/appsec/iast/telemetry/index.js +2 -1
  436. package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +3 -3
  437. package/packages/dd-trace/src/appsec/iast/telemetry/span-tags.js +6 -6
  438. package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +2 -2
  439. package/packages/dd-trace/src/appsec/iast/utils.js +3 -3
  440. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/constants.js +1 -1
  441. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +1 -1
  442. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/command-sensitive-analyzer.js +1 -1
  443. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/hardcoded-password-analyzer.js +1 -1
  444. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/ldap-sensitive-analyzer.js +54 -12
  445. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +6 -6
  446. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/tainted-range-based-sensitive-analyzer.js +1 -1
  447. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/url-sensitive-analyzer.js +5 -1
  448. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +42 -16
  449. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +13 -14
  450. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +88 -52
  451. package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +1 -1
  452. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +9 -9
  453. package/packages/dd-trace/src/appsec/index.js +225 -59
  454. package/packages/dd-trace/src/appsec/lambda.js +135 -0
  455. package/packages/dd-trace/src/appsec/rasp/command_injection.js +8 -9
  456. package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +4 -4
  457. package/packages/dd-trace/src/appsec/rasp/index.js +5 -7
  458. package/packages/dd-trace/src/appsec/rasp/lfi.js +14 -10
  459. package/packages/dd-trace/src/appsec/rasp/sql_injection.js +7 -12
  460. package/packages/dd-trace/src/appsec/rasp/ssrf.js +78 -8
  461. package/packages/dd-trace/src/appsec/rasp/utils.js +4 -4
  462. package/packages/dd-trace/src/appsec/rc-products.js +10 -0
  463. package/packages/dd-trace/src/appsec/recommended.json +2726 -74
  464. package/packages/dd-trace/src/appsec/remote_config.js +178 -0
  465. package/packages/dd-trace/src/appsec/reporter.js +122 -50
  466. package/packages/dd-trace/src/appsec/rule_manager.js +42 -23
  467. package/packages/dd-trace/src/appsec/sdk/index.js +6 -2
  468. package/packages/dd-trace/src/appsec/sdk/set_user.js +4 -4
  469. package/packages/dd-trace/src/appsec/sdk/track_event.js +14 -14
  470. package/packages/dd-trace/src/appsec/sdk/user_blocking.js +10 -14
  471. package/packages/dd-trace/src/appsec/sdk/utils.js +6 -4
  472. package/packages/dd-trace/src/appsec/stack_trace.js +5 -5
  473. package/packages/dd-trace/src/appsec/store.js +50 -0
  474. package/packages/dd-trace/src/appsec/telemetry/api_security.js +34 -0
  475. package/packages/dd-trace/src/appsec/telemetry/common.js +3 -3
  476. package/packages/dd-trace/src/appsec/telemetry/index.js +32 -6
  477. package/packages/dd-trace/src/appsec/telemetry/rasp.js +3 -3
  478. package/packages/dd-trace/src/appsec/telemetry/user.js +4 -4
  479. package/packages/dd-trace/src/appsec/telemetry/waf.js +3 -3
  480. package/packages/dd-trace/src/appsec/user_tracking.js +14 -13
  481. package/packages/dd-trace/src/appsec/waf/diagnostics.js +2 -2
  482. package/packages/dd-trace/src/appsec/waf/index.js +37 -13
  483. package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +36 -21
  484. package/packages/dd-trace/src/appsec/waf/waf_manager.js +11 -0
  485. package/packages/dd-trace/src/azure_metadata.js +51 -24
  486. package/packages/dd-trace/src/baggage.js +57 -13
  487. package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +82 -0
  488. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +20 -11
  489. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +29 -14
  490. package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +202 -44
  491. package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +12 -12
  492. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +6 -5
  493. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +10 -8
  494. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +7 -4
  495. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +6 -5
  496. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +103 -37
  497. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +24 -25
  498. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +27 -6
  499. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +27 -21
  500. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +137 -29
  501. package/packages/dd-trace/src/ci-visibility/lage.js +40 -0
  502. package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +6 -7
  503. package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +258 -0
  504. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +79 -60
  505. package/packages/dd-trace/src/ci-visibility/requests/request.js +200 -0
  506. package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +107 -0
  507. package/packages/dd-trace/src/ci-visibility/telemetry.js +44 -4
  508. package/packages/dd-trace/src/ci-visibility/test-api-manual/test-api-manual-plugin.js +10 -4
  509. package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +131 -14
  510. package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +125 -0
  511. package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +128 -0
  512. package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache.js +287 -0
  513. package/packages/dd-trace/src/config/config-base.d.ts +7 -0
  514. package/packages/dd-trace/src/config/config-base.js +5 -0
  515. package/packages/dd-trace/src/config/config-types.d.ts +72 -0
  516. package/packages/dd-trace/src/config/defaults.js +369 -0
  517. package/packages/dd-trace/src/config/generated-config-types.d.ts +1116 -0
  518. package/packages/dd-trace/src/{git_properties.js → config/git_properties.js} +3 -3
  519. package/packages/dd-trace/src/config/helper.js +369 -0
  520. package/packages/dd-trace/src/config/index.js +732 -0
  521. package/packages/dd-trace/src/config/major-overrides.js +100 -0
  522. package/packages/dd-trace/src/config/normalize-service.js +31 -0
  523. package/packages/dd-trace/src/config/parsers.js +305 -0
  524. package/packages/dd-trace/src/config/remote_config.js +260 -0
  525. package/packages/dd-trace/src/{config_stable.js → config/stable.js} +21 -33
  526. package/packages/dd-trace/src/config/supported-configurations.json +4221 -0
  527. package/packages/dd-trace/src/constants.js +18 -4
  528. package/packages/dd-trace/src/crashtracking/crashtracker.js +46 -15
  529. package/packages/dd-trace/src/datastreams/checkpointer.js +21 -14
  530. package/packages/dd-trace/src/datastreams/context.js +5 -3
  531. package/packages/dd-trace/src/datastreams/encoding.js +40 -29
  532. package/packages/dd-trace/src/datastreams/fnv.js +1 -1
  533. package/packages/dd-trace/src/datastreams/index.js +14 -10
  534. package/packages/dd-trace/src/datastreams/manager.js +9 -0
  535. package/packages/dd-trace/src/datastreams/pathway.js +45 -21
  536. package/packages/dd-trace/src/datastreams/processor.js +187 -40
  537. package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +28 -26
  538. package/packages/dd-trace/src/datastreams/schemas/schema_sampler.js +1 -1
  539. package/packages/dd-trace/src/datastreams/size.js +9 -5
  540. package/packages/dd-trace/src/datastreams/writer.js +7 -16
  541. package/packages/dd-trace/src/debugger/config.js +11 -4
  542. package/packages/dd-trace/src/debugger/constants.js +7 -0
  543. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +108 -44
  544. package/packages/dd-trace/src/debugger/devtools_client/condition.js +8 -11
  545. package/packages/dd-trace/src/debugger/devtools_client/config.js +10 -12
  546. package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
  547. package/packages/dd-trace/src/debugger/devtools_client/index.js +135 -101
  548. package/packages/dd-trace/src/debugger/devtools_client/inspector_promises_polyfill.js +1 -1
  549. package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +10 -11
  550. package/packages/dd-trace/src/debugger/devtools_client/log.js +1 -1
  551. package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +83 -0
  552. package/packages/dd-trace/src/debugger/devtools_client/remote_config.js +23 -1
  553. package/packages/dd-trace/src/debugger/devtools_client/send.js +101 -26
  554. package/packages/dd-trace/src/debugger/devtools_client/session.js +1 -1
  555. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +141 -47
  556. package/packages/dd-trace/src/debugger/devtools_client/snapshot/constants.js +25 -0
  557. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +185 -57
  558. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +56 -10
  559. package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +2 -2
  560. package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +2 -1
  561. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +405 -0
  562. package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +12 -3
  563. package/packages/dd-trace/src/debugger/devtools_client/state.js +69 -10
  564. package/packages/dd-trace/src/debugger/devtools_client/status.js +12 -11
  565. package/packages/dd-trace/src/debugger/index.js +171 -41
  566. package/packages/dd-trace/src/debugger/probe_sampler.js +112 -0
  567. package/packages/dd-trace/src/debugger/probe_sampler_constants.js +19 -0
  568. package/packages/dd-trace/src/dogstatsd.js +58 -48
  569. package/packages/dd-trace/src/encode/0.4.js +808 -267
  570. package/packages/dd-trace/src/encode/0.5.js +146 -21
  571. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +139 -80
  572. package/packages/dd-trace/src/encode/agentless-json.js +209 -0
  573. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +36 -17
  574. package/packages/dd-trace/src/encode/span-stats.js +32 -18
  575. package/packages/dd-trace/src/encode/tags-processors.js +31 -26
  576. package/packages/dd-trace/src/exporter.js +11 -4
  577. package/packages/dd-trace/src/exporters/agent/index.js +7 -14
  578. package/packages/dd-trace/src/exporters/agent/writer.js +31 -17
  579. package/packages/dd-trace/src/exporters/agentless/index.js +131 -0
  580. package/packages/dd-trace/src/exporters/agentless/intake.js +43 -0
  581. package/packages/dd-trace/src/exporters/agentless/writer.js +202 -0
  582. package/packages/dd-trace/src/exporters/common/agents.js +4 -2
  583. package/packages/dd-trace/src/exporters/common/buffering-exporter.js +62 -0
  584. package/packages/dd-trace/src/exporters/common/docker.js +14 -9
  585. package/packages/dd-trace/src/exporters/common/request.js +116 -58
  586. package/packages/dd-trace/src/exporters/common/retry.js +104 -0
  587. package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +2 -2
  588. package/packages/dd-trace/src/exporters/common/url.js +34 -0
  589. package/packages/dd-trace/src/exporters/common/util.js +2 -2
  590. package/packages/dd-trace/src/exporters/common/writer.js +15 -3
  591. package/packages/dd-trace/src/exporters/electron/index.js +49 -0
  592. package/packages/dd-trace/src/exporters/span-stats/index.js +3 -11
  593. package/packages/dd-trace/src/exporters/span-stats/writer.js +3 -5
  594. package/packages/dd-trace/src/external-logger/src/index.js +7 -7
  595. package/packages/dd-trace/src/flare/index.js +5 -5
  596. package/packages/dd-trace/src/git_metadata.js +68 -0
  597. package/packages/dd-trace/src/git_metadata_tagger.js +13 -5
  598. package/packages/dd-trace/src/guardrails/index.js +12 -6
  599. package/packages/dd-trace/src/guardrails/telemetry.js +2 -2
  600. package/packages/dd-trace/src/heap_snapshots.js +8 -5
  601. package/packages/dd-trace/src/histogram.js +1 -1
  602. package/packages/dd-trace/src/id.js +104 -25
  603. package/packages/dd-trace/src/iitm.js +1 -1
  604. package/packages/dd-trace/src/index.js +7 -5
  605. package/packages/dd-trace/src/lambda/context.js +27 -0
  606. package/packages/dd-trace/src/lambda/handler-paths.js +52 -0
  607. package/packages/dd-trace/src/lambda/handler.js +10 -27
  608. package/packages/dd-trace/src/lambda/index.js +62 -14
  609. package/packages/dd-trace/src/lambda/runtime/errors.js +1 -1
  610. package/packages/dd-trace/src/lambda/runtime/patch.js +23 -48
  611. package/packages/dd-trace/src/llmobs/constants/tags.js +29 -1
  612. package/packages/dd-trace/src/llmobs/constants/text.js +5 -2
  613. package/packages/dd-trace/src/llmobs/constants/writers.js +2 -2
  614. package/packages/dd-trace/src/llmobs/index.js +52 -25
  615. package/packages/dd-trace/src/llmobs/noop.js +4 -2
  616. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +56 -19
  617. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +183 -29
  618. package/packages/dd-trace/src/llmobs/plugins/{anthropic.js → anthropic/index.js} +53 -82
  619. package/packages/dd-trace/src/llmobs/plugins/anthropic/util.js +109 -0
  620. package/packages/dd-trace/src/llmobs/plugins/base.js +5 -5
  621. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +101 -47
  622. package/packages/dd-trace/src/llmobs/plugins/genai/index.js +108 -0
  623. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +551 -0
  624. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chain.js +15 -3
  625. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +6 -5
  626. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/embedding.js +3 -2
  627. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +4 -53
  628. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/llm.js +1 -1
  629. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +4 -3
  630. package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +21 -13
  631. package/packages/dd-trace/src/llmobs/plugins/langchain/messages.js +76 -0
  632. package/packages/dd-trace/src/llmobs/plugins/langgraph/index.js +89 -0
  633. package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/index.js +68 -0
  634. package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/utils.js +57 -0
  635. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +16 -0
  636. package/packages/dd-trace/src/llmobs/plugins/{openai.js → openai/index.js} +98 -69
  637. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +126 -0
  638. package/packages/dd-trace/src/llmobs/plugins/vertexai.js +7 -7
  639. package/packages/dd-trace/src/llmobs/sdk.js +145 -66
  640. package/packages/dd-trace/src/llmobs/span_processor.js +120 -30
  641. package/packages/dd-trace/src/llmobs/tagger.js +306 -10
  642. package/packages/dd-trace/src/llmobs/telemetry.js +42 -13
  643. package/packages/dd-trace/src/llmobs/util.js +203 -10
  644. package/packages/dd-trace/src/llmobs/writers/base.js +135 -54
  645. package/packages/dd-trace/src/llmobs/writers/evaluations.js +5 -5
  646. package/packages/dd-trace/src/llmobs/writers/spans.js +9 -9
  647. package/packages/dd-trace/src/llmobs/writers/util.js +6 -10
  648. package/packages/dd-trace/src/log/channels.js +2 -2
  649. package/packages/dd-trace/src/log/index.js +64 -90
  650. package/packages/dd-trace/src/log/log.js +1 -1
  651. package/packages/dd-trace/src/log/writer.js +22 -101
  652. package/packages/dd-trace/src/msgpack/chunk.js +398 -11
  653. package/packages/dd-trace/src/msgpack/index.js +96 -2
  654. package/packages/dd-trace/src/noop/proxy.js +13 -5
  655. package/packages/dd-trace/src/noop/span.js +6 -4
  656. package/packages/dd-trace/src/openfeature/constants/constants.js +1 -1
  657. package/packages/dd-trace/src/openfeature/encoding.js +70 -0
  658. package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +103 -0
  659. package/packages/dd-trace/src/openfeature/flagging_provider.js +30 -5
  660. package/packages/dd-trace/src/openfeature/index.js +4 -4
  661. package/packages/dd-trace/src/openfeature/noop.js +44 -40
  662. package/packages/dd-trace/src/openfeature/remote_config.js +36 -0
  663. package/packages/dd-trace/src/openfeature/span-enrichment-hook.js +143 -0
  664. package/packages/dd-trace/src/openfeature/span-enrichment.js +149 -0
  665. package/packages/dd-trace/src/openfeature/writers/base.js +26 -41
  666. package/packages/dd-trace/src/openfeature/writers/exposures.js +95 -83
  667. package/packages/dd-trace/src/openfeature/writers/util.js +3 -9
  668. package/packages/dd-trace/src/opentelemetry/active-span-proxy.js +42 -0
  669. package/packages/dd-trace/src/opentelemetry/bridge-span-base.js +107 -0
  670. package/packages/dd-trace/src/opentelemetry/context_manager.js +57 -51
  671. package/packages/dd-trace/src/opentelemetry/logs/index.js +9 -9
  672. package/packages/dd-trace/src/opentelemetry/logs/logger.js +1 -1
  673. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +6 -6
  674. package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +3 -2
  675. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +19 -18
  676. package/packages/dd-trace/src/opentelemetry/metrics/constants.js +3 -3
  677. package/packages/dd-trace/src/opentelemetry/metrics/index.js +64 -15
  678. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +34 -20
  679. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +9 -12
  680. package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +2 -2
  681. package/packages/dd-trace/src/opentelemetry/metrics/otlp_http_metric_exporter.js +3 -2
  682. package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_exporter.js +40 -0
  683. package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +169 -0
  684. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +15 -15
  685. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +153 -34
  686. package/packages/dd-trace/src/opentelemetry/metrics/time.js +19 -0
  687. package/packages/dd-trace/src/opentelemetry/otlp/common.proto +2 -2
  688. package/packages/dd-trace/src/opentelemetry/otlp/logs.proto +1 -1
  689. package/packages/dd-trace/src/opentelemetry/otlp/logs_service.proto +1 -1
  690. package/packages/dd-trace/src/opentelemetry/otlp/metrics.proto +1 -1
  691. package/packages/dd-trace/src/opentelemetry/otlp/metrics_service.proto +1 -1
  692. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +60 -87
  693. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +22 -19
  694. package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +18 -6
  695. package/packages/dd-trace/src/opentelemetry/otlp/trace.proto +358 -0
  696. package/packages/dd-trace/src/opentelemetry/otlp/trace_service.proto +78 -0
  697. package/packages/dd-trace/src/opentelemetry/span-helpers.js +325 -0
  698. package/packages/dd-trace/src/opentelemetry/span.js +62 -117
  699. package/packages/dd-trace/src/opentelemetry/span_context.js +2 -1
  700. package/packages/dd-trace/src/opentelemetry/span_processor.js +1 -1
  701. package/packages/dd-trace/src/opentelemetry/trace/index.js +75 -0
  702. package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +75 -0
  703. package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +375 -0
  704. package/packages/dd-trace/src/opentelemetry/tracer.js +38 -45
  705. package/packages/dd-trace/src/opentelemetry/tracer_provider.js +2 -2
  706. package/packages/dd-trace/src/opentracing/propagation/log.js +20 -9
  707. package/packages/dd-trace/src/opentracing/propagation/text_map.js +269 -159
  708. package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +4 -11
  709. package/packages/dd-trace/src/opentracing/propagation/tracestate.js +98 -32
  710. package/packages/dd-trace/src/opentracing/span.js +148 -87
  711. package/packages/dd-trace/src/opentracing/span_context.js +71 -6
  712. package/packages/dd-trace/src/opentracing/tracer.js +46 -25
  713. package/packages/dd-trace/src/payload-tagging/config/index.js +9 -8
  714. package/packages/dd-trace/src/payload-tagging/index.js +9 -5
  715. package/packages/dd-trace/src/payload-tagging/tagging.js +2 -2
  716. package/packages/dd-trace/src/pkg.js +1 -1
  717. package/packages/dd-trace/src/plugin_manager.js +50 -35
  718. package/packages/dd-trace/src/plugins/apollo.js +15 -8
  719. package/packages/dd-trace/src/plugins/ci_plugin.js +477 -132
  720. package/packages/dd-trace/src/plugins/database.js +103 -48
  721. package/packages/dd-trace/src/plugins/index.js +18 -2
  722. package/packages/dd-trace/src/plugins/log_injection.js +56 -0
  723. package/packages/dd-trace/src/plugins/log_plugin.js +4 -44
  724. package/packages/dd-trace/src/plugins/outbound.js +38 -12
  725. package/packages/dd-trace/src/plugins/plugin.js +39 -35
  726. package/packages/dd-trace/src/plugins/producer.js +6 -5
  727. package/packages/dd-trace/src/plugins/storage.js +2 -2
  728. package/packages/dd-trace/src/plugins/tracing.js +144 -23
  729. package/packages/dd-trace/src/plugins/util/ci.js +230 -54
  730. package/packages/dd-trace/src/plugins/util/env.js +2 -2
  731. package/packages/dd-trace/src/plugins/util/git-cache.js +25 -25
  732. package/packages/dd-trace/src/plugins/util/git.js +55 -54
  733. package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +276 -0
  734. package/packages/dd-trace/src/plugins/util/inferred_proxy.js +49 -8
  735. package/packages/dd-trace/src/plugins/util/ip_extractor.js +3 -3
  736. package/packages/dd-trace/src/plugins/util/llm.js +7 -2
  737. package/packages/dd-trace/src/plugins/util/stacktrace.js +6 -6
  738. package/packages/dd-trace/src/plugins/util/tags.js +1 -1
  739. package/packages/dd-trace/src/plugins/util/test.js +1052 -98
  740. package/packages/dd-trace/src/plugins/util/url.js +185 -1
  741. package/packages/dd-trace/src/plugins/util/urlfilter.js +1 -1
  742. package/packages/dd-trace/src/plugins/util/user-provided-git.js +31 -31
  743. package/packages/dd-trace/src/plugins/util/web.js +147 -229
  744. package/packages/dd-trace/src/priority_sampler.js +39 -28
  745. package/packages/dd-trace/src/process-tags/index.js +93 -0
  746. package/packages/dd-trace/src/profiler.js +31 -41
  747. package/packages/dd-trace/src/profiling/config.js +152 -357
  748. package/packages/dd-trace/src/profiling/constants.js +5 -8
  749. package/packages/dd-trace/src/profiling/exporter_cli.js +19 -21
  750. package/packages/dd-trace/src/profiling/exporters/agent.js +65 -58
  751. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +65 -23
  752. package/packages/dd-trace/src/profiling/exporters/file.js +16 -5
  753. package/packages/dd-trace/src/profiling/index.js +2 -2
  754. package/packages/dd-trace/src/profiling/libuv-size.js +2 -2
  755. package/packages/dd-trace/src/profiling/loggers/console.js +1 -1
  756. package/packages/dd-trace/src/profiling/oom.js +71 -0
  757. package/packages/dd-trace/src/profiling/profiler.js +189 -113
  758. package/packages/dd-trace/src/profiling/profilers/event_plugins/crypto.js +32 -0
  759. package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +2 -2
  760. package/packages/dd-trace/src/profiling/profilers/event_plugins/fs.js +3 -3
  761. package/packages/dd-trace/src/profiling/profilers/event_plugins/zlib.js +19 -0
  762. package/packages/dd-trace/src/profiling/profilers/events.js +94 -34
  763. package/packages/dd-trace/src/profiling/profilers/shared.js +2 -2
  764. package/packages/dd-trace/src/profiling/profilers/space.js +27 -16
  765. package/packages/dd-trace/src/profiling/profilers/wall.js +175 -63
  766. package/packages/dd-trace/src/profiling/ssi-heuristics.js +7 -4
  767. package/packages/dd-trace/src/profiling/tagger.js +1 -1
  768. package/packages/dd-trace/src/profiling/webspan-utils.js +2 -2
  769. package/packages/dd-trace/src/propagation-hash/index.js +146 -0
  770. package/packages/dd-trace/src/proxy.js +133 -65
  771. package/packages/dd-trace/src/rate_limiter.js +4 -3
  772. package/packages/dd-trace/src/remote_config/apply_states.js +1 -1
  773. package/packages/dd-trace/src/remote_config/capabilities.js +4 -0
  774. package/packages/dd-trace/src/remote_config/index.js +541 -138
  775. package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
  776. package/packages/dd-trace/src/require-package-json.js +9 -5
  777. package/packages/dd-trace/src/ritm.js +113 -51
  778. package/packages/dd-trace/src/runtime_metrics/client.js +30 -0
  779. package/packages/dd-trace/src/runtime_metrics/index.js +19 -6
  780. package/packages/dd-trace/src/runtime_metrics/otlp_runtime_metrics.js +284 -0
  781. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +31 -29
  782. package/packages/dd-trace/src/sampler.js +1 -1
  783. package/packages/dd-trace/src/sampling_rule.js +7 -7
  784. package/packages/dd-trace/src/scope.js +10 -15
  785. package/packages/dd-trace/src/serverless.js +20 -5
  786. package/packages/dd-trace/src/service-naming/extra-services.js +15 -1
  787. package/packages/dd-trace/src/service-naming/index.js +2 -2
  788. package/packages/dd-trace/src/service-naming/schemas/definition.js +4 -1
  789. package/packages/dd-trace/src/service-naming/schemas/util.js +48 -3
  790. package/packages/dd-trace/src/service-naming/schemas/v0/graphql.js +3 -3
  791. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +91 -24
  792. package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +19 -3
  793. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +78 -18
  794. package/packages/dd-trace/src/service-naming/schemas/v0/web.js +51 -23
  795. package/packages/dd-trace/src/service-naming/schemas/v0/websocket.js +14 -9
  796. package/packages/dd-trace/src/service-naming/schemas/v1/graphql.js +3 -3
  797. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +59 -19
  798. package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +19 -3
  799. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +34 -17
  800. package/packages/dd-trace/src/service-naming/schemas/v1/web.js +47 -23
  801. package/packages/dd-trace/src/service-naming/schemas/v1/websocket.js +15 -9
  802. package/packages/dd-trace/src/service-naming/source-resolver.js +50 -0
  803. package/packages/dd-trace/src/span_format.js +274 -81
  804. package/packages/dd-trace/src/span_processor.js +20 -15
  805. package/packages/dd-trace/src/span_sampler.js +1 -1
  806. package/packages/dd-trace/src/span_stats.js +119 -84
  807. package/packages/dd-trace/src/spanleak.js +3 -4
  808. package/packages/dd-trace/src/standalone/index.js +8 -5
  809. package/packages/dd-trace/src/standalone/product.js +4 -3
  810. package/packages/dd-trace/src/standalone/tracesource.js +1 -1
  811. package/packages/dd-trace/src/startup-log.js +62 -27
  812. package/packages/dd-trace/src/tagger.js +30 -34
  813. package/packages/dd-trace/src/telemetry/dependencies.js +10 -10
  814. package/packages/dd-trace/src/telemetry/endpoints.js +81 -17
  815. package/packages/dd-trace/src/telemetry/index.js +3 -4
  816. package/packages/dd-trace/src/telemetry/logs/index.js +4 -4
  817. package/packages/dd-trace/src/telemetry/logs/log-collector.js +2 -2
  818. package/packages/dd-trace/src/telemetry/metrics.js +6 -6
  819. package/packages/dd-trace/src/telemetry/send-data.js +115 -25
  820. package/packages/dd-trace/src/telemetry/session-propagation.js +53 -0
  821. package/packages/dd-trace/src/telemetry/telemetry.js +216 -230
  822. package/packages/dd-trace/src/tracer.js +28 -13
  823. package/packages/dd-trace/src/tracer_metadata.js +28 -15
  824. package/packages/dd-trace/src/util.js +32 -10
  825. package/register.js +58 -1
  826. package/vendor/dist/@apm-js-collab/code-transformer/LICENSE +28 -0
  827. package/vendor/dist/@apm-js-collab/code-transformer/index.js +186 -0
  828. package/vendor/dist/@datadog/sketches-js/LICENSE +13 -0
  829. package/vendor/dist/@datadog/sketches-js/index.js +1 -0
  830. package/vendor/dist/@datadog/source-map/LICENSE +28 -0
  831. package/vendor/dist/@datadog/source-map/index.js +1 -0
  832. package/vendor/dist/@isaacs/ttlcache/LICENSE +55 -0
  833. package/vendor/dist/@isaacs/ttlcache/index.js +1 -0
  834. package/vendor/dist/@opentelemetry/core/LICENSE +201 -0
  835. package/vendor/dist/@opentelemetry/core/index.js +1 -0
  836. package/vendor/dist/@opentelemetry/resources/LICENSE +201 -0
  837. package/vendor/dist/@opentelemetry/resources/index.js +1 -0
  838. package/vendor/dist/crypto-randomuuid/index.js +1 -0
  839. package/vendor/dist/escape-string-regexp/LICENSE +9 -0
  840. package/vendor/dist/escape-string-regexp/index.js +1 -0
  841. package/vendor/dist/esquery/LICENSE +24 -0
  842. package/vendor/dist/esquery/index.js +1 -0
  843. package/vendor/dist/istanbul-lib-coverage/LICENSE +24 -0
  844. package/vendor/dist/istanbul-lib-coverage/index.js +1 -0
  845. package/vendor/dist/jest-docblock/LICENSE +21 -0
  846. package/vendor/dist/jest-docblock/index.js +1 -0
  847. package/vendor/dist/jsonpath-plus/LICENSE +22 -0
  848. package/vendor/dist/jsonpath-plus/index.js +1 -0
  849. package/vendor/dist/limiter/LICENSE +19 -0
  850. package/vendor/dist/limiter/index.js +1 -0
  851. package/vendor/dist/lodash.sortby/LICENSE +47 -0
  852. package/vendor/dist/lodash.sortby/index.js +1 -0
  853. package/vendor/dist/lru-cache/LICENSE +15 -0
  854. package/vendor/dist/lru-cache/index.js +1 -0
  855. package/vendor/dist/meriyah/LICENSE +7 -0
  856. package/vendor/dist/meriyah/index.js +1 -0
  857. package/vendor/dist/module-details-from-path/LICENSE +21 -0
  858. package/vendor/dist/module-details-from-path/index.js +1 -0
  859. package/vendor/dist/mutexify/promise/LICENSE +21 -0
  860. package/vendor/dist/mutexify/promise/index.js +1 -0
  861. package/vendor/dist/pprof-format/LICENSE +8 -0
  862. package/vendor/dist/pprof-format/index.js +1 -0
  863. package/vendor/dist/protobufjs/LICENSE +39 -0
  864. package/vendor/dist/protobufjs/index.js +1 -0
  865. package/vendor/dist/protobufjs/minimal/LICENSE +39 -0
  866. package/vendor/dist/protobufjs/minimal/index.js +1 -0
  867. package/vendor/dist/retry/LICENSE +21 -0
  868. package/vendor/dist/retry/index.js +1 -0
  869. package/vendor/dist/rfdc/LICENSE +15 -0
  870. package/vendor/dist/rfdc/index.js +1 -0
  871. package/vendor/dist/semifies/LICENSE +201 -0
  872. package/vendor/dist/semifies/index.js +1 -0
  873. package/vendor/dist/shell-quote/LICENSE +24 -0
  874. package/vendor/dist/shell-quote/index.js +1 -0
  875. package/vendor/dist/source-map/LICENSE +28 -0
  876. package/vendor/dist/source-map/index.js +1 -0
  877. package/vendor/dist/source-map/lib/util/LICENSE +28 -0
  878. package/vendor/dist/source-map/lib/util/index.js +1 -0
  879. package/vendor/dist/source-map/mappings.wasm +0 -0
  880. package/vendor/dist/tlhunter-sorted-set/LICENSE +21 -0
  881. package/vendor/dist/tlhunter-sorted-set/index.js +1 -0
  882. package/vendor/dist/ttl-set/LICENSE +21 -0
  883. package/vendor/dist/ttl-set/index.js +1 -0
  884. package/webpack.js +3 -0
  885. package/packages/datadog-plugin-graphql/src/resolve.js +0 -191
  886. package/packages/datadog-plugin-prisma/src/client.js +0 -60
  887. package/packages/datadog-plugin-prisma/src/engine.js +0 -81
  888. package/packages/dd-trace/src/appsec/api_security_sampler.js +0 -96
  889. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +0 -741
  890. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +0 -11
  891. package/packages/dd-trace/src/config-helper.js +0 -99
  892. package/packages/dd-trace/src/config.js +0 -1574
  893. package/packages/dd-trace/src/config_defaults.js +0 -218
  894. package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +0 -89
  895. package/packages/dd-trace/src/lambda/runtime/ritm.js +0 -133
  896. package/packages/dd-trace/src/log/utils.js +0 -16
  897. package/packages/dd-trace/src/msgpack/encoder.js +0 -308
  898. package/packages/dd-trace/src/plugins/structured_log_plugin.js +0 -9
  899. package/packages/dd-trace/src/plugins/util/serverless.js +0 -8
  900. package/packages/dd-trace/src/remote_config/manager.js +0 -368
  901. package/packages/dd-trace/src/scope/noop/scope.js +0 -21
  902. package/packages/dd-trace/src/supported-configurations.json +0 -504
  903. package/scripts/preinstall.js +0 -34
@@ -1,12 +1,25 @@
1
1
  'use strict'
2
2
 
3
- const LLMObsPlugin = require('./base')
3
+ const LLMObsPlugin = require('../base')
4
+ const {
5
+ PROMPT_TRACKING_INSTRUMENTATION_METHOD,
6
+ PROMPT_MULTIMODAL,
7
+ INSTRUMENTATION_METHOD_AUTO,
8
+ UNKNOWN_MODEL_PROVIDER,
9
+ } = require('../../constants/tags')
10
+ const { safeJsonParse } = require('../../util')
11
+ const {
12
+ extractChatTemplateFromInstructions,
13
+ normalizePromptVariables,
14
+ extractTextFromContentItem,
15
+ hasMultimodalInputs,
16
+ } = require('./utils')
4
17
 
5
18
  const allowedParamKeys = new Set([
6
19
  'max_output_tokens',
7
20
  'temperature',
8
21
  'stream',
9
- 'reasoning'
22
+ 'reasoning',
10
23
  ])
11
24
 
12
25
  function isIterable (obj) {
@@ -38,7 +51,7 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
38
51
  modelProvider,
39
52
  modelName: inputs.model,
40
53
  kind,
41
- name
54
+ name,
42
55
  }
43
56
  }
44
57
 
@@ -50,7 +63,7 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
50
63
 
51
64
  const inputs = ctx.args[0] // completion, chat completion, and embeddings take one argument
52
65
  const response = ctx.result?.data // no result if error
53
- const error = !!span.context()._tags.error
66
+ const error = !!span.context().getTag('error')
54
67
 
55
68
  const operation = getOperation(methodName)
56
69
 
@@ -79,10 +92,12 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
79
92
  _getModelProviderAndClient (baseUrl = '') {
80
93
  if (baseUrl.includes('azure')) {
81
94
  return { modelProvider: 'azure_openai', client: 'AzureOpenAI' }
95
+ } else if (baseUrl.includes('openai')) {
96
+ return { modelProvider: 'openai', client: 'OpenAI' }
82
97
  } else if (baseUrl.includes('deepseek')) {
83
98
  return { modelProvider: 'deepseek', client: 'DeepSeek' }
84
99
  }
85
- return { modelProvider: 'openai', client: 'OpenAI' }
100
+ return { modelProvider: UNKNOWN_MODEL_PROVIDER, client: 'OpenAI' }
86
101
  }
87
102
 
88
103
  _extractMetrics (response) {
@@ -115,6 +130,10 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
115
130
  metrics.cacheReadTokens = cacheReadTokens
116
131
  }
117
132
  }
133
+ // Reasoning tokens - Responses API returns `output_tokens_details`, `completion_tokens_details`
134
+ const reasoningOutputObject = tokenUsage.output_tokens_details ?? tokenUsage.completion_tokens_details
135
+ const reasoningOutputTokens = reasoningOutputObject?.reasoning_tokens ?? 0
136
+ if (reasoningOutputTokens !== undefined) metrics.reasoningOutputTokens = reasoningOutputTokens
118
137
  }
119
138
 
120
139
  return metrics
@@ -124,7 +143,7 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
124
143
  const { model, ...parameters } = inputs
125
144
 
126
145
  const metadata = {
127
- encoding_format: parameters.encoding_format || 'float'
146
+ encoding_format: parameters.encoding_format || 'float',
128
147
  }
129
148
  if (inputs.dimensions) metadata.dimensions = inputs.dimensions
130
149
  this._tagger.tagMetadata(span, metadata)
@@ -165,13 +184,12 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
165
184
  _tagChatCompletion (span, inputs, response, error) {
166
185
  const { messages, model, ...parameters } = inputs
167
186
 
168
- const metadata = Object.entries(parameters).reduce((obj, [key, value]) => {
169
- if (!['tools', 'functions'].includes(key)) {
170
- obj[key] = value
187
+ const metadata = {}
188
+ for (const key of Object.keys(parameters)) {
189
+ if (key !== 'tools' && key !== 'functions') {
190
+ metadata[key] = parameters[key]
171
191
  }
172
-
173
- return obj
174
- }, {})
192
+ }
175
193
 
176
194
  this._tagger.tagMetadata(span, metadata)
177
195
 
@@ -195,17 +213,17 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
195
213
  if (message.function_call) {
196
214
  const functionCallInfo = {
197
215
  name: message.function_call.name,
198
- arguments: JSON.parse(message.function_call.arguments)
216
+ arguments: safeJsonParse(message.function_call.arguments),
199
217
  }
200
218
  outputMessages.push({ content, role, toolCalls: [functionCallInfo] })
201
219
  } else if (message.tool_calls) {
202
220
  const toolCallsInfo = []
203
221
  for (const toolCall of message.tool_calls) {
204
222
  const toolCallInfo = {
205
- arguments: JSON.parse(toolCall.function.arguments),
223
+ arguments: safeJsonParse(toolCall.function.arguments),
206
224
  name: toolCall.function.name,
207
225
  toolId: toolCall.id,
208
- type: toolCall.type
226
+ type: toolCall.type,
209
227
  }
210
228
  toolCallsInfo.push(toolCallInfo)
211
229
  }
@@ -221,7 +239,8 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
221
239
  #tagResponse (span, inputs, response, error) {
222
240
  // Tag metadata - use allowlist approach for request parameters
223
241
 
224
- const { input, model, ...parameters } = inputs
242
+ const { model, ...parameters } = inputs
243
+ let input = inputs.input
225
244
 
226
245
  // Create input messages
227
246
  const inputMessages = []
@@ -231,28 +250,41 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
231
250
  inputMessages.push({ role: 'system', content: inputs.instructions })
232
251
  }
233
252
 
253
+ // For reusable prompts, use response.instructions if no explicit input is provided
254
+ if (!input && inputs.prompt && response?.instructions) {
255
+ input = response.instructions
256
+ }
257
+
234
258
  // Handle input - can be string or array of mixed messages
235
259
  if (Array.isArray(input)) {
236
260
  for (const item of input) {
237
- if (item.type === 'function_call') {
238
- // Function call: convert to message with tool_calls
239
- // Parse arguments if it's a JSON string
240
- let parsedArgs = item.arguments
241
- if (typeof parsedArgs === 'string') {
242
- try {
243
- parsedArgs = JSON.parse(parsedArgs)
244
- } catch {
245
- parsedArgs = {}
246
- }
261
+ if (item.type === 'message') {
262
+ // Handle instruction messages (from response.instructions for reusable prompts)
263
+ const role = item.role
264
+ if (!role) continue
265
+
266
+ let content = ''
267
+ if (Array.isArray(item.content)) {
268
+ const textParts = item.content
269
+ .map(extractTextFromContentItem)
270
+ .filter(Boolean)
271
+ content = textParts.join('')
272
+ } else if (typeof item.content === 'string') {
273
+ content = item.content
247
274
  }
275
+
276
+ if (content) {
277
+ inputMessages.push({ role, content })
278
+ }
279
+ } else if (item.type === 'function_call') {
248
280
  inputMessages.push({
249
281
  role: 'assistant',
250
282
  toolCalls: [{
251
283
  toolId: item.call_id,
252
284
  name: item.name,
253
- arguments: parsedArgs,
254
- type: item.type
255
- }]
285
+ arguments: safeJsonParse(item.arguments, {}),
286
+ type: item.type,
287
+ }],
256
288
  })
257
289
  } else if (item.type === 'function_call_output') {
258
290
  // Function output: convert to user message with tool_results
@@ -262,8 +294,8 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
262
294
  toolId: item.call_id,
263
295
  result: item.output,
264
296
  name: item.name || '',
265
- type: item.type
266
- }]
297
+ type: item.type,
298
+ }],
267
299
  })
268
300
  } else if (item.role && item.content) {
269
301
  // Regular message
@@ -275,12 +307,12 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
275
307
  inputMessages.push({ role: 'user', content: input })
276
308
  }
277
309
 
278
- const inputMetadata = Object.entries(parameters).reduce((obj, [key, value]) => {
310
+ const inputMetadata = {}
311
+ for (const key of Object.keys(parameters)) {
279
312
  if (allowedParamKeys.has(key)) {
280
- obj[key] = value
313
+ inputMetadata[key] = parameters[key]
281
314
  }
282
- return obj
283
- }, {})
315
+ }
284
316
 
285
317
  this._tagger.tagMetadata(span, inputMetadata)
286
318
 
@@ -307,28 +339,19 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
307
339
  content: JSON.stringify({
308
340
  summary: item.summary ?? [],
309
341
  encrypted_content: item.encrypted_content ?? null,
310
- id: item.id ?? ''
311
- })
342
+ id: item.id ?? '',
343
+ }),
312
344
  })
313
345
  } else if (item.type === 'function_call') {
314
346
  // Handle function_call type (responses API tool calls)
315
- let args = item.arguments
316
- // Parse arguments if it's a JSON string
317
- if (typeof args === 'string') {
318
- try {
319
- args = JSON.parse(args)
320
- } catch {
321
- args = {}
322
- }
323
- }
324
347
  outputMessages.push({
325
348
  role: 'assistant',
326
349
  toolCalls: [{
327
350
  toolId: item.call_id,
328
351
  name: item.name,
329
- arguments: args,
330
- type: item.type
331
- }]
352
+ arguments: safeJsonParse(item.arguments, {}),
353
+ type: item.type,
354
+ }],
332
355
  })
333
356
  } else {
334
357
  // Handle regular message objects
@@ -348,23 +371,12 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
348
371
 
349
372
  // Extract tool calls if present in message.tool_calls
350
373
  if (Array.isArray(item.tool_calls)) {
351
- outputMsg.toolCalls = item.tool_calls.map(tc => {
352
- let args = tc.function?.arguments || tc.arguments
353
- // Parse arguments if it's a JSON string
354
- if (typeof args === 'string') {
355
- try {
356
- args = JSON.parse(args)
357
- } catch {
358
- args = {}
359
- }
360
- }
361
- return {
362
- toolId: tc.id,
363
- name: tc.function?.name || tc.name,
364
- arguments: args,
365
- type: tc.type || 'function_call'
366
- }
367
- })
374
+ outputMsg.toolCalls = item.tool_calls.map(tc => ({
375
+ toolId: tc.id,
376
+ name: tc.function?.name || tc.name,
377
+ arguments: safeJsonParse(tc.function?.arguments || tc.arguments, {}),
378
+ type: tc.type || 'function_call',
379
+ }))
368
380
  }
369
381
 
370
382
  outputMessages.push(outputMsg)
@@ -380,6 +392,26 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
380
392
 
381
393
  this._tagger.tagLLMIO(span, inputMessages, outputMessages)
382
394
 
395
+ // Handle prompt tracking for reusable prompts
396
+ if (inputs.prompt && response?.prompt) {
397
+ const { id, version } = response.prompt // ResponsePrompt
398
+ if (id && version) {
399
+ const normalizedVariables = normalizePromptVariables(inputs.prompt.variables)
400
+ const chatTemplate = extractChatTemplateFromInstructions(response.instructions, normalizedVariables)
401
+ this._tagger.tagPrompt(span, {
402
+ id,
403
+ version,
404
+ variables: normalizedVariables,
405
+ template: chatTemplate,
406
+ }, true)
407
+ const tags = { [PROMPT_TRACKING_INSTRUMENTATION_METHOD]: INSTRUMENTATION_METHOD_AUTO }
408
+ if (hasMultimodalInputs(inputs.prompt.variables)) {
409
+ tags[PROMPT_MULTIMODAL] = 'true'
410
+ }
411
+ this._tagger.tagSpanTags(span, tags)
412
+ }
413
+ }
414
+
383
415
  const outputMetadata = {}
384
416
 
385
417
  // Add fields from response object (convert numbers to floats)
@@ -388,9 +420,6 @@ class OpenAiLLMObsPlugin extends LLMObsPlugin {
388
420
  if (response.tool_choice !== undefined) outputMetadata.tool_choice = response.tool_choice
389
421
  if (response.truncation !== undefined) outputMetadata.truncation = response.truncation
390
422
  if (response.text !== undefined) outputMetadata.text = response.text
391
- if (response.usage?.output_tokens_details?.reasoning_tokens !== undefined) {
392
- outputMetadata.reasoning_tokens = response.usage.output_tokens_details.reasoning_tokens
393
- }
394
423
 
395
424
  this._tagger.tagMetadata(span, outputMetadata) // update the metadata with the output metadata
396
425
  }
@@ -0,0 +1,126 @@
1
+ 'use strict'
2
+
3
+ const {
4
+ INPUT_TYPE_IMAGE,
5
+ INPUT_TYPE_FILE,
6
+ IMAGE_FALLBACK,
7
+ FILE_FALLBACK,
8
+ } = require('./constants')
9
+
10
+ const REGEX_SPECIAL_CHARS = /[.*+?^${}()|[\]\\]/g
11
+
12
+ /**
13
+ * Extracts chat templates from OpenAI response instructions by replacing variable values with placeholders.
14
+ *
15
+ * Performs reverse templating: reconstructs the template by replacing actual values with {{variable_name}}.
16
+ * For images/files: uses {{variable_name}} when values are available, falls back to [image]/[file] when stripped.
17
+ *
18
+ * @param {Array<object>} instructions - From Response.instructions (array of ResponseInputMessageItem)
19
+ * @param {Record<string, string>} variables - Normalized variables (output of normalizePromptVariables)
20
+ * @returns {Array<{role: string, content: string}>} Chat template with placeholders
21
+ */
22
+ function extractChatTemplateFromInstructions (instructions, variables) {
23
+ if (!Array.isArray(instructions) || !variables) return []
24
+
25
+ const chatTemplate = []
26
+
27
+ // Build map of values to placeholders - exclude fallback markers so they remain as-is
28
+ const valueToPlaceholder = {}
29
+ for (const [varName, varValue] of Object.entries(variables)) {
30
+ // Exclude fallback markers - they should remain as [image]/[file] in the template
31
+ if (varValue && varValue !== IMAGE_FALLBACK && varValue !== FILE_FALLBACK) {
32
+ valueToPlaceholder[varValue] = `{{${varName}}}`
33
+ }
34
+ }
35
+
36
+ // Sort values by length (longest first) to handle overlapping values correctly
37
+ const sortedValues = Object.keys(valueToPlaceholder).sort((a, b) => b.length - a.length)
38
+
39
+ for (const instruction of instructions) {
40
+ const role = instruction.role
41
+ if (!role) continue
42
+
43
+ const contentItems = instruction.content
44
+ if (!Array.isArray(contentItems)) continue
45
+
46
+ // Extract text from all content items (uses actual values for images/files when available)
47
+ const textParts = contentItems
48
+ .map(extractTextFromContentItem)
49
+ .filter(Boolean)
50
+
51
+ if (textParts.length === 0) continue
52
+
53
+ // Combine text and replace variable values with placeholders (longest first)
54
+ let fullText = textParts.join('')
55
+ for (const valueStr of sortedValues) {
56
+ const placeholder = valueToPlaceholder[valueStr]
57
+ const escapedValue = valueStr.replaceAll(REGEX_SPECIAL_CHARS, String.raw`\$&`)
58
+ fullText = fullText.replaceAll(new RegExp(escapedValue, 'g'), placeholder)
59
+ }
60
+
61
+ chatTemplate.push({ role, content: fullText })
62
+ }
63
+
64
+ return chatTemplate
65
+ }
66
+
67
+ /**
68
+ * Extracts text content from a content item, using actual image_url/file_id values when available.
69
+ *
70
+ * Used for both input messages and chat template extraction. Falls back to [image]/[file] markers
71
+ * when the actual values are stripped (e.g., by OpenAI's default URL stripping behavior).
72
+ *
73
+ * @param {object} contentItem - Content item from Response.instructions[].content (ResponseInputContentItem)
74
+ * @returns {string|null} Text content, URL/file reference, or [image]/[file] fallback marker
75
+ */
76
+ function extractTextFromContentItem (contentItem) {
77
+ if (!contentItem) return null
78
+
79
+ if (contentItem.text) {
80
+ return contentItem.text
81
+ }
82
+
83
+ // For image/file items, extract the actual reference value
84
+ if (contentItem.type === INPUT_TYPE_IMAGE) {
85
+ return contentItem.image_url || contentItem.file_id || IMAGE_FALLBACK
86
+ }
87
+
88
+ if (contentItem.type === INPUT_TYPE_FILE) {
89
+ return contentItem.file_id || contentItem.file_url || contentItem.filename || FILE_FALLBACK
90
+ }
91
+
92
+ return null
93
+ }
94
+
95
+ /**
96
+ * Normalizes prompt variables by extracting meaningful values from OpenAI SDK response objects.
97
+ *
98
+ * Converts ResponseInputText, ResponseInputImage, and ResponseInputFile objects to simple string values.
99
+ *
100
+ * @param {Record<string, string | object>} variables - From ResponsePrompt.variables
101
+ * @returns {Record<string, string>} Normalized variables with simple string values
102
+ */
103
+ function normalizePromptVariables (variables) {
104
+ if (!variables) return {}
105
+
106
+ return Object.fromEntries(
107
+ Object.entries(variables).map(([key, value]) => [
108
+ key,
109
+ extractTextFromContentItem(value) ?? String(value ?? ''),
110
+ ])
111
+ )
112
+ }
113
+
114
+ function hasMultimodalInputs (variables) {
115
+ if (!variables) return false
116
+ return Object.values(variables).some(value =>
117
+ value?.type === INPUT_TYPE_IMAGE || value?.type === INPUT_TYPE_FILE
118
+ )
119
+ }
120
+
121
+ module.exports = {
122
+ extractChatTemplateFromInstructions,
123
+ normalizePromptVariables,
124
+ extractTextFromContentItem,
125
+ hasMultimodalInputs,
126
+ }
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
- const LLMObsPlugin = require('./base')
4
3
  const {
5
4
  extractModel,
6
- extractSystemInstructions
5
+ extractSystemInstructions,
7
6
  } = require('../../../../datadog-plugin-google-cloud-vertexai/src/utils')
7
+ const LLMObsPlugin = require('./base')
8
8
 
9
9
  class VertexAILLMObsPlugin extends LLMObsPlugin {
10
10
  static integration = 'vertexai' // used for llmobs telemetry
@@ -19,7 +19,7 @@ class VertexAILLMObsPlugin extends LLMObsPlugin {
19
19
  kind: 'llm',
20
20
  modelName: extractModel(ctx.instance),
21
21
  modelProvider: 'google',
22
- name: ctx.resource
22
+ name: ctx.resource,
23
23
  }
24
24
  }
25
25
 
@@ -53,7 +53,7 @@ function getMetadata (instance) {
53
53
  ['maxOutputTokens', 'max_output_tokens'],
54
54
  ['candidateCount', 'candidate_count'],
55
55
  ['topP', 'top_p'],
56
- ['topK', 'top_k']
56
+ ['topK', 'top_k'],
57
57
  ]) {
58
58
  if (modelConfig[parameter]) {
59
59
  metadata[parameterKey] = modelConfig[parameter]
@@ -90,7 +90,7 @@ function extractInputMessages (request, history, systemInstructions) {
90
90
  if (!Array.isArray(contents)) {
91
91
  messages.push({
92
92
  content: '[Non-array content object: ' +
93
- `${(typeof contents.toString === 'function' ? contents.toString() : String(contents))}]`
93
+ `${(typeof contents.toString === 'function' ? contents.toString() : String(contents))}]`,
94
94
  })
95
95
  return messages
96
96
  }
@@ -136,7 +136,7 @@ function extractMessagesFromContent (content) {
136
136
  if (parts == null || parts.length === 0 || !Array.isArray(parts)) {
137
137
  const message = {
138
138
  content:
139
- `[Non-text content object: ${(typeof content.toString === 'function' ? content.toString() : String(content))}]`
139
+ `[Non-text content object: ${(typeof content.toString === 'function' ? content.toString() : String(content))}]`,
140
140
  }
141
141
  if (role) message.role = role
142
142
  messages.push(message)
@@ -161,7 +161,7 @@ function extractMessageFromPart (part, role) {
161
161
  if (functionCall) {
162
162
  message.toolCalls = [{
163
163
  name: functionCall.name,
164
- arguments: functionCall.args
164
+ arguments: functionCall.args,
165
165
  }]
166
166
  }
167
167
  if (functionResponse) {