dd-trace 5.80.0 → 5.82.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 (460) hide show
  1. package/LICENSE-3rdparty.csv +79 -88
  2. package/ext/tags.d.ts +1 -0
  3. package/ext/tags.js +1 -0
  4. package/index.d.ts +42 -35
  5. package/loader-hook.mjs +16 -4
  6. package/package.json +33 -56
  7. package/packages/datadog-core/src/utils/src/parse-tags.js +1 -1
  8. package/packages/datadog-esbuild/index.js +44 -26
  9. package/packages/datadog-esbuild/src/utils.js +14 -2
  10. package/packages/datadog-instrumentations/index.js +1 -0
  11. package/packages/datadog-instrumentations/src/aerospike.js +3 -2
  12. package/packages/datadog-instrumentations/src/ai.js +2 -2
  13. package/packages/datadog-instrumentations/src/amqp10.js +1 -1
  14. package/packages/datadog-instrumentations/src/amqplib.js +4 -4
  15. package/packages/datadog-instrumentations/src/anthropic.js +14 -2
  16. package/packages/datadog-instrumentations/src/apollo-server-core.js +2 -2
  17. package/packages/datadog-instrumentations/src/apollo-server.js +1 -1
  18. package/packages/datadog-instrumentations/src/apollo.js +3 -2
  19. package/packages/datadog-instrumentations/src/avsc.js +1 -1
  20. package/packages/datadog-instrumentations/src/aws-sdk.js +6 -2
  21. package/packages/datadog-instrumentations/src/azure-event-hubs.js +4 -3
  22. package/packages/datadog-instrumentations/src/azure-functions.js +2 -2
  23. package/packages/datadog-instrumentations/src/azure-service-bus.js +3 -4
  24. package/packages/datadog-instrumentations/src/bluebird.js +1 -1
  25. package/packages/datadog-instrumentations/src/bullmq.js +11 -0
  26. package/packages/datadog-instrumentations/src/bunyan.js +1 -1
  27. package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
  28. package/packages/datadog-instrumentations/src/child_process.js +2 -2
  29. package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +3 -3
  30. package/packages/datadog-instrumentations/src/couchbase.js +1 -1
  31. package/packages/datadog-instrumentations/src/crypto.js +1 -1
  32. package/packages/datadog-instrumentations/src/cucumber.js +12 -13
  33. package/packages/datadog-instrumentations/src/cypress.js +1 -1
  34. package/packages/datadog-instrumentations/src/dns.js +1 -1
  35. package/packages/datadog-instrumentations/src/elasticsearch.js +1 -1
  36. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +1 -1
  37. package/packages/datadog-instrumentations/src/express.js +1 -1
  38. package/packages/datadog-instrumentations/src/find-my-way.js +6 -5
  39. package/packages/datadog-instrumentations/src/fs.js +1 -1
  40. package/packages/datadog-instrumentations/src/generic-pool.js +1 -1
  41. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +137 -15
  42. package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +2 -3
  43. package/packages/datadog-instrumentations/src/google-genai.js +120 -0
  44. package/packages/datadog-instrumentations/src/graphql.js +21 -1
  45. package/packages/datadog-instrumentations/src/grpc/client.js +1 -1
  46. package/packages/datadog-instrumentations/src/grpc/server.js +1 -1
  47. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
  48. package/packages/datadog-instrumentations/src/helpers/hook.js +1 -1
  49. package/packages/datadog-instrumentations/src/helpers/hooks.js +5 -1
  50. package/packages/datadog-instrumentations/src/helpers/instrument.js +11 -1
  51. package/packages/datadog-instrumentations/src/helpers/register.js +12 -5
  52. package/packages/datadog-instrumentations/src/helpers/rewriter/compiler.js +27 -0
  53. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +152 -0
  54. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/bullmq.json +106 -0
  55. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +6 -0
  56. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langchain.js +237 -0
  57. package/packages/datadog-instrumentations/src/helpers/rewriter/loader.js +9 -0
  58. package/packages/datadog-instrumentations/src/helpers/rewriter/loader.mjs +11 -0
  59. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +139 -0
  60. package/packages/datadog-instrumentations/src/helpers/router-helper.js +1 -1
  61. package/packages/datadog-instrumentations/src/helpers/shared-utils.js +9 -0
  62. package/packages/datadog-instrumentations/src/hono.js +55 -10
  63. package/packages/datadog-instrumentations/src/ioredis.js +1 -1
  64. package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
  65. package/packages/datadog-instrumentations/src/jest.js +2 -2
  66. package/packages/datadog-instrumentations/src/kafkajs.js +3 -3
  67. package/packages/datadog-instrumentations/src/knex.js +1 -1
  68. package/packages/datadog-instrumentations/src/langchain.js +3 -109
  69. package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
  70. package/packages/datadog-instrumentations/src/light-my-request.js +93 -0
  71. package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
  72. package/packages/datadog-instrumentations/src/lodash.js +1 -2
  73. package/packages/datadog-instrumentations/src/mariadb.js +1 -2
  74. package/packages/datadog-instrumentations/src/memcached.js +1 -1
  75. package/packages/datadog-instrumentations/src/mocha/main.js +1 -1
  76. package/packages/datadog-instrumentations/src/mongodb-core.js +1 -1
  77. package/packages/datadog-instrumentations/src/mongodb.js +1 -1
  78. package/packages/datadog-instrumentations/src/mongoose.js +1 -1
  79. package/packages/datadog-instrumentations/src/mquery.js +1 -1
  80. package/packages/datadog-instrumentations/src/mysql.js +1 -1
  81. package/packages/datadog-instrumentations/src/mysql2.js +2 -2
  82. package/packages/datadog-instrumentations/src/net.js +1 -1
  83. package/packages/datadog-instrumentations/src/next.js +1 -1
  84. package/packages/datadog-instrumentations/src/nyc.js +1 -1
  85. package/packages/datadog-instrumentations/src/openai.js +2 -2
  86. package/packages/datadog-instrumentations/src/opensearch.js +1 -1
  87. package/packages/datadog-instrumentations/src/oracledb.js +1 -1
  88. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
  89. package/packages/datadog-instrumentations/src/pg.js +3 -3
  90. package/packages/datadog-instrumentations/src/pino.js +1 -1
  91. package/packages/datadog-instrumentations/src/playwright.js +46 -17
  92. package/packages/datadog-instrumentations/src/prisma.js +52 -37
  93. package/packages/datadog-instrumentations/src/process.js +1 -1
  94. package/packages/datadog-instrumentations/src/promise-js.js +1 -1
  95. package/packages/datadog-instrumentations/src/promise.js +1 -1
  96. package/packages/datadog-instrumentations/src/protobufjs.js +1 -1
  97. package/packages/datadog-instrumentations/src/q.js +1 -1
  98. package/packages/datadog-instrumentations/src/redis.js +1 -1
  99. package/packages/datadog-instrumentations/src/rhea.js +1 -1
  100. package/packages/datadog-instrumentations/src/router.js +1 -1
  101. package/packages/datadog-instrumentations/src/selenium.js +4 -2
  102. package/packages/datadog-instrumentations/src/sequelize.js +1 -2
  103. package/packages/datadog-instrumentations/src/sharedb.js +1 -1
  104. package/packages/datadog-instrumentations/src/tedious.js +1 -1
  105. package/packages/datadog-instrumentations/src/undici.js +4 -4
  106. package/packages/datadog-instrumentations/src/url.js +1 -1
  107. package/packages/datadog-instrumentations/src/vitest.js +1 -1
  108. package/packages/datadog-instrumentations/src/vm.js +1 -1
  109. package/packages/datadog-instrumentations/src/when.js +1 -1
  110. package/packages/datadog-instrumentations/src/winston.js +1 -1
  111. package/packages/datadog-instrumentations/src/ws.js +38 -19
  112. package/packages/datadog-plugin-amqp10/src/index.js +1 -1
  113. package/packages/datadog-plugin-amqplib/src/index.js +1 -1
  114. package/packages/datadog-plugin-anthropic/src/index.js +1 -1
  115. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
  116. package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +4 -4
  117. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +2 -2
  118. package/packages/datadog-plugin-aws-sdk/src/util.js +3 -3
  119. package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
  120. package/packages/datadog-plugin-azure-event-hubs/src/producer.js +19 -5
  121. package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
  122. package/packages/datadog-plugin-azure-service-bus/src/producer.js +4 -0
  123. package/packages/datadog-plugin-bullmq/src/consumer.js +60 -0
  124. package/packages/datadog-plugin-bullmq/src/index.js +18 -0
  125. package/packages/datadog-plugin-bullmq/src/producer.js +178 -0
  126. package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +1 -1
  127. package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
  128. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +23 -2
  129. package/packages/datadog-plugin-cypress/src/plugin.js +2 -2
  130. package/packages/datadog-plugin-cypress/src/support.js +73 -31
  131. package/packages/datadog-plugin-express/src/index.js +1 -1
  132. package/packages/datadog-plugin-fastify/src/index.js +1 -1
  133. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +13 -3
  134. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +171 -12
  135. package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -2
  136. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +160 -13
  137. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +217 -0
  138. package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
  139. package/packages/datadog-plugin-google-genai/src/index.js +17 -0
  140. package/packages/datadog-plugin-google-genai/src/tracing.js +41 -0
  141. package/packages/datadog-plugin-graphql/src/resolve.js +1 -1
  142. package/packages/datadog-plugin-graphql/src/tools/transforms.js +5 -4
  143. package/packages/datadog-plugin-grpc/src/index.js +1 -1
  144. package/packages/datadog-plugin-http/src/client.js +2 -1
  145. package/packages/datadog-plugin-http/src/index.js +25 -5
  146. package/packages/datadog-plugin-http2/src/client.js +2 -2
  147. package/packages/datadog-plugin-http2/src/index.js +1 -1
  148. package/packages/datadog-plugin-jest/src/util.js +1 -1
  149. package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
  150. package/packages/datadog-plugin-langchain/src/index.js +1 -1
  151. package/packages/datadog-plugin-langchain/src/tracing.js +7 -3
  152. package/packages/datadog-plugin-moleculer/src/index.js +1 -1
  153. package/packages/datadog-plugin-mongodb-core/src/index.js +6 -2
  154. package/packages/datadog-plugin-next/src/index.js +11 -3
  155. package/packages/datadog-plugin-openai/src/index.js +1 -1
  156. package/packages/datadog-plugin-openai/src/stream-helpers.js +30 -10
  157. package/packages/datadog-plugin-openai/src/tracing.js +2 -2
  158. package/packages/datadog-plugin-rhea/src/index.js +1 -1
  159. package/packages/datadog-plugin-ws/src/close.js +56 -3
  160. package/packages/datadog-plugin-ws/src/index.js +4 -0
  161. package/packages/datadog-plugin-ws/src/producer.js +39 -4
  162. package/packages/datadog-plugin-ws/src/receiver.js +39 -3
  163. package/packages/datadog-plugin-ws/src/server.js +13 -1
  164. package/packages/datadog-plugin-ws/src/util.js +107 -0
  165. package/packages/datadog-shimmer/src/shimmer.js +2 -2
  166. package/packages/dd-trace/src/aiguard/sdk.js +21 -13
  167. package/packages/dd-trace/src/appsec/api_security_sampler.js +1 -1
  168. package/packages/dd-trace/src/appsec/graphql.js +2 -2
  169. package/packages/dd-trace/src/appsec/iast/analyzers/code-injection-analyzer.js +1 -1
  170. package/packages/dd-trace/src/appsec/iast/analyzers/command-injection-analyzer.js +1 -1
  171. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
  172. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +1 -1
  173. package/packages/dd-trace/src/appsec/iast/analyzers/injection-analyzer.js +1 -1
  174. package/packages/dd-trace/src/appsec/iast/analyzers/ldap-injection-analyzer.js +1 -1
  175. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +3 -3
  176. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +1 -1
  177. package/packages/dd-trace/src/appsec/iast/analyzers/ssrf-analyzer.js +1 -1
  178. package/packages/dd-trace/src/appsec/iast/analyzers/untrusted-deserialization-analyzer.js +1 -1
  179. package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +1 -1
  180. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
  181. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +3 -2
  182. package/packages/dd-trace/src/appsec/iast/analyzers/weak-randomness-analyzer.js +1 -1
  183. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +3 -3
  184. package/packages/dd-trace/src/appsec/iast/index.js +5 -5
  185. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +1 -1
  186. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +1 -1
  187. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -2
  188. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +1 -1
  189. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
  190. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +1 -1
  191. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +11 -16
  192. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +1 -1
  193. package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +1 -1
  194. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -4
  195. package/packages/dd-trace/src/appsec/index.js +8 -8
  196. package/packages/dd-trace/src/appsec/rasp/command_injection.js +1 -1
  197. package/packages/dd-trace/src/appsec/rasp/index.js +1 -1
  198. package/packages/dd-trace/src/appsec/rasp/lfi.js +1 -1
  199. package/packages/dd-trace/src/appsec/rc-products.js +10 -0
  200. package/packages/dd-trace/src/appsec/recommended.json +230 -3
  201. package/packages/dd-trace/src/appsec/remote_config.js +177 -0
  202. package/packages/dd-trace/src/appsec/reporter.js +3 -7
  203. package/packages/dd-trace/src/appsec/rule_manager.js +37 -20
  204. package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
  205. package/packages/dd-trace/src/appsec/sdk/set_user.js +1 -1
  206. package/packages/dd-trace/src/appsec/sdk/track_event.js +2 -2
  207. package/packages/dd-trace/src/appsec/sdk/user_blocking.js +2 -2
  208. package/packages/dd-trace/src/appsec/user_tracking.js +2 -2
  209. package/packages/dd-trace/src/appsec/waf/index.js +17 -3
  210. package/packages/dd-trace/src/appsec/waf/waf_manager.js +11 -0
  211. package/packages/dd-trace/src/azure_metadata.js +8 -2
  212. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +8 -6
  213. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -2
  214. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +1 -1
  215. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +1 -1
  216. package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +4 -2
  217. package/packages/dd-trace/src/config/remote_config.js +34 -0
  218. package/packages/dd-trace/src/config.js +109 -34
  219. package/packages/dd-trace/src/config_defaults.js +16 -3
  220. package/packages/dd-trace/src/constants.js +5 -0
  221. package/packages/dd-trace/src/crashtracking/crashtracker.js +10 -1
  222. package/packages/dd-trace/src/datastreams/checkpointer.js +2 -2
  223. package/packages/dd-trace/src/datastreams/encoding.js +23 -6
  224. package/packages/dd-trace/src/datastreams/index.js +1 -1
  225. package/packages/dd-trace/src/datastreams/pathway.js +41 -2
  226. package/packages/dd-trace/src/datastreams/processor.js +3 -3
  227. package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +1 -1
  228. package/packages/dd-trace/src/datastreams/writer.js +2 -2
  229. package/packages/dd-trace/src/debugger/config.js +1 -0
  230. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +15 -5
  231. package/packages/dd-trace/src/debugger/devtools_client/condition.js +1 -1
  232. package/packages/dd-trace/src/debugger/devtools_client/config.js +3 -1
  233. package/packages/dd-trace/src/debugger/devtools_client/index.js +37 -17
  234. package/packages/dd-trace/src/debugger/devtools_client/inspector_promises_polyfill.js +2 -0
  235. package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +24 -18
  236. package/packages/dd-trace/src/debugger/devtools_client/send.js +21 -11
  237. package/packages/dd-trace/src/debugger/devtools_client/session.js +1 -1
  238. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +103 -15
  239. package/packages/dd-trace/src/debugger/devtools_client/snapshot/constants.js +25 -0
  240. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +56 -25
  241. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +64 -23
  242. package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +3 -1
  243. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +404 -0
  244. package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +1 -1
  245. package/packages/dd-trace/src/debugger/devtools_client/state.js +8 -3
  246. package/packages/dd-trace/src/debugger/devtools_client/status.js +3 -3
  247. package/packages/dd-trace/src/debugger/index.js +2 -2
  248. package/packages/dd-trace/src/dogstatsd.js +3 -2
  249. package/packages/dd-trace/src/encode/0.4.js +1 -1
  250. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +2 -2
  251. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +1 -1
  252. package/packages/dd-trace/src/encode/span-stats.js +13 -2
  253. package/packages/dd-trace/src/exporter.js +2 -2
  254. package/packages/dd-trace/src/exporters/agent/index.js +1 -1
  255. package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +1 -1
  256. package/packages/dd-trace/src/exporters/common/request.js +2 -2
  257. package/packages/dd-trace/src/exporters/common/writer.js +1 -1
  258. package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
  259. package/packages/dd-trace/src/external-logger/src/index.js +1 -2
  260. package/packages/dd-trace/src/flare/index.js +1 -1
  261. package/packages/dd-trace/src/guardrails/index.js +6 -3
  262. package/packages/dd-trace/src/histogram.js +1 -1
  263. package/packages/dd-trace/src/id.js +60 -0
  264. package/packages/dd-trace/src/index.js +1 -1
  265. package/packages/dd-trace/src/lambda/handler.js +4 -4
  266. package/packages/dd-trace/src/lambda/index.js +1 -1
  267. package/packages/dd-trace/src/lambda/runtime/patch.js +4 -4
  268. package/packages/dd-trace/src/lambda/runtime/ritm.js +2 -2
  269. package/packages/dd-trace/src/llmobs/constants/tags.js +8 -1
  270. package/packages/dd-trace/src/llmobs/index.js +8 -9
  271. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +38 -7
  272. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +30 -9
  273. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +3 -3
  274. package/packages/dd-trace/src/llmobs/plugins/genai/index.js +104 -0
  275. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +486 -0
  276. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chain.js +1 -1
  277. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +1 -1
  278. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/embedding.js +1 -1
  279. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/llm.js +1 -1
  280. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
  281. package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +2 -2
  282. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +16 -0
  283. package/packages/dd-trace/src/llmobs/plugins/{openai.js → openai/index.js} +63 -6
  284. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +126 -0
  285. package/packages/dd-trace/src/llmobs/plugins/vertexai.js +1 -1
  286. package/packages/dd-trace/src/llmobs/sdk.js +20 -22
  287. package/packages/dd-trace/src/llmobs/span_processor.js +15 -14
  288. package/packages/dd-trace/src/llmobs/tagger.js +4 -0
  289. package/packages/dd-trace/src/llmobs/telemetry.js +3 -4
  290. package/packages/dd-trace/src/llmobs/writers/base.js +2 -2
  291. package/packages/dd-trace/src/llmobs/writers/spans.js +1 -2
  292. package/packages/dd-trace/src/log/index.js +1 -1
  293. package/packages/dd-trace/src/noop/proxy.js +2 -2
  294. package/packages/dd-trace/src/noop/span.js +1 -1
  295. package/packages/dd-trace/src/openfeature/index.js +2 -2
  296. package/packages/dd-trace/src/openfeature/noop.js +14 -14
  297. package/packages/dd-trace/src/openfeature/remote_config.js +31 -0
  298. package/packages/dd-trace/src/openfeature/writers/base.js +5 -5
  299. package/packages/dd-trace/src/openfeature/writers/exposures.js +9 -9
  300. package/packages/dd-trace/src/opentelemetry/context_manager.js +2 -2
  301. package/packages/dd-trace/src/opentelemetry/logs/index.js +2 -2
  302. package/packages/dd-trace/src/opentelemetry/logs/logger.js +3 -2
  303. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +4 -4
  304. package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +5 -3
  305. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +17 -16
  306. package/packages/dd-trace/src/opentelemetry/metrics/constants.js +34 -0
  307. package/packages/dd-trace/src/opentelemetry/metrics/index.js +81 -0
  308. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +225 -0
  309. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +171 -0
  310. package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +54 -0
  311. package/packages/dd-trace/src/opentelemetry/metrics/otlp_http_metric_exporter.js +62 -0
  312. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +251 -0
  313. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +557 -0
  314. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +10 -18
  315. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +47 -32
  316. package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +1 -1
  317. package/packages/dd-trace/src/opentelemetry/span.js +3 -3
  318. package/packages/dd-trace/src/opentelemetry/tracer.js +4 -4
  319. package/packages/dd-trace/src/opentelemetry/tracer_provider.js +1 -1
  320. package/packages/dd-trace/src/opentracing/propagation/text_map.js +24 -8
  321. package/packages/dd-trace/src/opentracing/span.js +3 -3
  322. package/packages/dd-trace/src/opentracing/tracer.js +5 -5
  323. package/packages/dd-trace/src/payload-tagging/index.js +8 -4
  324. package/packages/dd-trace/src/plugin_manager.js +5 -3
  325. package/packages/dd-trace/src/plugins/apollo.js +1 -1
  326. package/packages/dd-trace/src/plugins/ci_plugin.js +27 -27
  327. package/packages/dd-trace/src/plugins/database.js +1 -1
  328. package/packages/dd-trace/src/plugins/index.js +6 -1
  329. package/packages/dd-trace/src/plugins/log_plugin.js +1 -1
  330. package/packages/dd-trace/src/plugins/outbound.js +1 -1
  331. package/packages/dd-trace/src/plugins/tracing.js +1 -1
  332. package/packages/dd-trace/src/plugins/util/ci.js +1 -1
  333. package/packages/dd-trace/src/plugins/util/git.js +8 -8
  334. package/packages/dd-trace/src/plugins/util/stacktrace.js +1 -1
  335. package/packages/dd-trace/src/plugins/util/test.js +27 -27
  336. package/packages/dd-trace/src/plugins/util/url.js +119 -1
  337. package/packages/dd-trace/src/plugins/util/user-provided-git.js +1 -1
  338. package/packages/dd-trace/src/plugins/util/web.js +18 -46
  339. package/packages/dd-trace/src/priority_sampler.js +15 -16
  340. package/packages/dd-trace/src/process-tags/index.js +83 -0
  341. package/packages/dd-trace/src/profiling/config.js +33 -22
  342. package/packages/dd-trace/src/profiling/exporter_cli.js +4 -4
  343. package/packages/dd-trace/src/profiling/exporters/agent.js +5 -5
  344. package/packages/dd-trace/src/profiling/index.js +1 -1
  345. package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
  346. package/packages/dd-trace/src/profiling/profiler.js +4 -5
  347. package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
  348. package/packages/dd-trace/src/profiling/profilers/events.js +11 -2
  349. package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
  350. package/packages/dd-trace/src/proxy.js +17 -18
  351. package/packages/dd-trace/src/rate_limiter.js +1 -1
  352. package/packages/dd-trace/src/remote_config/index.js +541 -137
  353. package/packages/dd-trace/src/require-package-json.js +1 -1
  354. package/packages/dd-trace/src/ritm.js +50 -27
  355. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +1 -1
  356. package/packages/dd-trace/src/serverless.js +16 -0
  357. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +8 -0
  358. package/packages/dd-trace/src/service-naming/schemas/v0/web.js +4 -0
  359. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +8 -0
  360. package/packages/dd-trace/src/service-naming/schemas/v1/web.js +4 -0
  361. package/packages/dd-trace/src/span_format.js +10 -5
  362. package/packages/dd-trace/src/span_processor.js +8 -3
  363. package/packages/dd-trace/src/span_stats.js +21 -8
  364. package/packages/dd-trace/src/spanleak.js +1 -1
  365. package/packages/dd-trace/src/standalone/index.js +1 -1
  366. package/packages/dd-trace/src/startup-log.js +3 -3
  367. package/packages/dd-trace/src/supported-configurations.json +16 -0
  368. package/packages/dd-trace/src/telemetry/dependencies.js +4 -4
  369. package/packages/dd-trace/src/telemetry/endpoints.js +8 -8
  370. package/packages/dd-trace/src/telemetry/logs/index.js +1 -1
  371. package/packages/dd-trace/src/telemetry/telemetry.js +22 -8
  372. package/packages/dd-trace/src/tracer.js +3 -3
  373. package/packages/dd-trace/src/tracer_metadata.js +19 -15
  374. package/vendor/dist/@datadog/sketches-js/LICENSE +39 -0
  375. package/vendor/dist/@datadog/sketches-js/index.js +1 -0
  376. package/vendor/dist/@datadog/source-map/LICENSE +28 -0
  377. package/vendor/dist/@datadog/source-map/index.js +1 -0
  378. package/vendor/dist/@isaacs/ttlcache/LICENSE +55 -0
  379. package/vendor/dist/@isaacs/ttlcache/index.js +1 -0
  380. package/vendor/dist/@opentelemetry/core/LICENSE +201 -0
  381. package/vendor/dist/@opentelemetry/core/index.js +1 -0
  382. package/vendor/dist/@opentelemetry/resources/LICENSE +201 -0
  383. package/vendor/dist/@opentelemetry/resources/index.js +1 -0
  384. package/vendor/dist/astring/LICENSE +19 -0
  385. package/vendor/dist/astring/index.js +1 -0
  386. package/vendor/dist/crypto-randomuuid/index.js +1 -0
  387. package/vendor/dist/escape-string-regexp/LICENSE +9 -0
  388. package/vendor/dist/escape-string-regexp/index.js +1 -0
  389. package/vendor/dist/esquery/LICENSE +24 -0
  390. package/vendor/dist/esquery/index.js +1 -0
  391. package/vendor/dist/ignore/LICENSE +21 -0
  392. package/vendor/dist/ignore/index.js +1 -0
  393. package/vendor/dist/istanbul-lib-coverage/LICENSE +24 -0
  394. package/vendor/dist/istanbul-lib-coverage/index.js +1 -0
  395. package/vendor/dist/jest-docblock/LICENSE +21 -0
  396. package/vendor/dist/jest-docblock/index.js +1 -0
  397. package/vendor/dist/jsonpath-plus/LICENSE +22 -0
  398. package/vendor/dist/jsonpath-plus/index.js +1 -0
  399. package/vendor/dist/limiter/LICENSE +19 -0
  400. package/vendor/dist/limiter/index.js +1 -0
  401. package/vendor/dist/lodash.sortby/LICENSE +47 -0
  402. package/vendor/dist/lodash.sortby/index.js +1 -0
  403. package/vendor/dist/lru-cache/LICENSE +15 -0
  404. package/vendor/dist/lru-cache/index.js +1 -0
  405. package/vendor/dist/meriyah/LICENSE +7 -0
  406. package/vendor/dist/meriyah/index.js +1 -0
  407. package/vendor/dist/module-details-from-path/LICENSE +21 -0
  408. package/vendor/dist/module-details-from-path/index.js +1 -0
  409. package/vendor/dist/mutexify/promise/LICENSE +21 -0
  410. package/vendor/dist/mutexify/promise/index.js +1 -0
  411. package/vendor/dist/opentracing/LICENSE +201 -0
  412. package/vendor/dist/opentracing/binary_carrier.d.ts +11 -0
  413. package/vendor/dist/opentracing/constants.d.ts +61 -0
  414. package/vendor/dist/opentracing/examples/demo/demo.d.ts +2 -0
  415. package/vendor/dist/opentracing/ext/tags.d.ts +90 -0
  416. package/vendor/dist/opentracing/functions.d.ts +20 -0
  417. package/vendor/dist/opentracing/global_tracer.d.ts +14 -0
  418. package/vendor/dist/opentracing/index.d.ts +12 -0
  419. package/vendor/dist/opentracing/index.js +1 -0
  420. package/vendor/dist/opentracing/mock_tracer/index.d.ts +5 -0
  421. package/vendor/dist/opentracing/mock_tracer/mock_context.d.ts +13 -0
  422. package/vendor/dist/opentracing/mock_tracer/mock_report.d.ts +16 -0
  423. package/vendor/dist/opentracing/mock_tracer/mock_span.d.ts +50 -0
  424. package/vendor/dist/opentracing/mock_tracer/mock_tracer.d.ts +26 -0
  425. package/vendor/dist/opentracing/noop.d.ts +8 -0
  426. package/vendor/dist/opentracing/reference.d.ts +33 -0
  427. package/vendor/dist/opentracing/span.d.ts +147 -0
  428. package/vendor/dist/opentracing/span_context.d.ts +26 -0
  429. package/vendor/dist/opentracing/test/api_compatibility.d.ts +16 -0
  430. package/vendor/dist/opentracing/test/mocktracer_implemenation.d.ts +3 -0
  431. package/vendor/dist/opentracing/test/noop_implementation.d.ts +4 -0
  432. package/vendor/dist/opentracing/test/opentracing_api.d.ts +3 -0
  433. package/vendor/dist/opentracing/test/unittest.d.ts +2 -0
  434. package/vendor/dist/opentracing/tracer.d.ts +127 -0
  435. package/vendor/dist/path-to-regexp/LICENSE +21 -0
  436. package/vendor/dist/path-to-regexp/index.js +1 -0
  437. package/vendor/dist/pprof-format/LICENSE +8 -0
  438. package/vendor/dist/pprof-format/index.js +1 -0
  439. package/vendor/dist/protobufjs/LICENSE +39 -0
  440. package/vendor/dist/protobufjs/index.js +1 -0
  441. package/vendor/dist/protobufjs/minimal/LICENSE +39 -0
  442. package/vendor/dist/protobufjs/minimal/index.js +1 -0
  443. package/vendor/dist/retry/LICENSE +21 -0
  444. package/vendor/dist/retry/index.js +1 -0
  445. package/vendor/dist/rfdc/LICENSE +15 -0
  446. package/vendor/dist/rfdc/index.js +1 -0
  447. package/vendor/dist/semifies/LICENSE +201 -0
  448. package/vendor/dist/semifies/index.js +1 -0
  449. package/vendor/dist/shell-quote/LICENSE +24 -0
  450. package/vendor/dist/shell-quote/index.js +1 -0
  451. package/vendor/dist/source-map/LICENSE +28 -0
  452. package/vendor/dist/source-map/index.js +1 -0
  453. package/vendor/dist/source-map/lib/util/LICENSE +28 -0
  454. package/vendor/dist/source-map/lib/util/index.js +1 -0
  455. package/vendor/dist/source-map/mappings.wasm +0 -0
  456. package/vendor/dist/tlhunter-sorted-set/LICENSE +21 -0
  457. package/vendor/dist/tlhunter-sorted-set/index.js +1 -0
  458. package/vendor/dist/ttl-set/LICENSE +21 -0
  459. package/vendor/dist/ttl-set/index.js +1 -0
  460. package/packages/dd-trace/src/remote_config/manager.js +0 -368
@@ -2,13 +2,18 @@
2
2
 
3
3
  /* eslint-disable no-console */
4
4
 
5
+ const { execSync } = require('child_process')
6
+ const fs = require('fs')
7
+ const RAW_BUILTINS = require('module').builtinModules
8
+ const path = require('path')
9
+ const { pathToFileURL, fileURLToPath } = require('url')
10
+
5
11
  const instrumentations = require('../datadog-instrumentations/src/helpers/instrumentations.js')
6
- const hooks = require('../datadog-instrumentations/src/helpers/hooks.js')
12
+
7
13
  const extractPackageAndModulePath = require(
8
14
  '../datadog-instrumentations/src/helpers/extract-package-and-module-path.js'
9
15
  )
10
-
11
- const { pathToFileURL, fileURLToPath } = require('url')
16
+ const hooks = require('../datadog-instrumentations/src/helpers/hooks.js')
12
17
  const { processModule, isESMFile } = require('./src/utils.js')
13
18
 
14
19
  const ESM_INTERCEPTED_SUFFIX = '._dd_esbuild_intercepted'
@@ -36,11 +41,7 @@ for (const instrumentation of Object.values(instrumentations)) {
36
41
  }
37
42
  }
38
43
 
39
- const RAW_BUILTINS = require('module').builtinModules
40
44
  const CHANNEL = 'dd-trace:bundler:load'
41
- const path = require('path')
42
- const fs = require('fs')
43
- const { execSync } = require('child_process')
44
45
 
45
46
  const builtins = new Set()
46
47
 
@@ -245,28 +246,45 @@ ${build.initialOptions.banner.js}`
245
246
  }
246
247
  }
247
248
 
248
- const packageJson = JSON.parse(fs.readFileSync(pathToPackageJson).toString())
249
+ try {
250
+ const packageJson = JSON.parse(fs.readFileSync(pathToPackageJson).toString())
249
251
 
250
- const isESM = isESMFile(fullPathToModule, pathToPackageJson, packageJson)
251
- if (isESM && !interceptedESMModules.has(fullPathToModule)) {
252
- fullPathToModule += ESM_INTERCEPTED_SUFFIX
253
- }
252
+ const isESM = isESMFile(fullPathToModule, pathToPackageJson, packageJson)
253
+ if (isESM && !interceptedESMModules.has(fullPathToModule)) {
254
+ fullPathToModule += ESM_INTERCEPTED_SUFFIX
255
+ }
254
256
 
255
- if (DEBUG) console.log(`RESOLVE: ${args.path}@${packageJson.version}`)
257
+ if (DEBUG) console.log(`RESOLVE: ${args.path}@${packageJson.version}`)
256
258
 
257
- // https://esbuild.github.io/plugins/#on-resolve-arguments
258
- return {
259
- path: fullPathToModule,
260
- pluginData: {
261
- version: packageJson.version,
262
- pkg: extracted.pkg,
263
- path: extracted.path,
264
- full: fullPathToModule,
265
- raw: args.path,
266
- pkgOfInterest: true,
267
- kind: args.kind,
268
- internal,
269
- isESM
259
+ // https://esbuild.github.io/plugins/#on-resolve-arguments
260
+ return {
261
+ path: fullPathToModule,
262
+ pluginData: {
263
+ version: packageJson.version,
264
+ pkg: extracted.pkg,
265
+ path: extracted.path,
266
+ full: fullPathToModule,
267
+ raw: args.path,
268
+ pkgOfInterest: true,
269
+ kind: args.kind,
270
+ internal,
271
+ isESM
272
+ }
273
+ }
274
+ } catch (e) {
275
+ // Skip vendored dependencies which never have a `package.json`. This
276
+ // will use the default resolve logic of ESBuild which is what we want
277
+ // since those files should be treated as regular files and not modules
278
+ // even though they are in a `node_modules` folder.
279
+ if (e.code === 'ENOENT') {
280
+ if (DEBUG) {
281
+ console.log([
282
+ 'Skipping `package.json` lookup.',
283
+ 'This usually means the package was vendored but could indicate an issue otherwise.'
284
+ ].join(' '))
285
+ }
286
+ } else {
287
+ throw e
270
288
  }
271
289
  }
272
290
  }
@@ -7,8 +7,20 @@ const path = require('node:path')
7
7
  const { NODE_MAJOR, NODE_MINOR } = require('../../../version.js')
8
8
 
9
9
  const getExportsImporting = (url) => import(url).then(Object.keys)
10
+ let getExportsModulePromise
11
+
12
+ const loadGetExportsModule = () => {
13
+ if (!getExportsModulePromise) {
14
+ getExportsModulePromise = import('import-in-the-middle/lib/get-exports.mjs')
15
+ }
16
+ return getExportsModulePromise
17
+ }
18
+
10
19
  const getExports = NODE_MAJOR >= 20 || (NODE_MAJOR === 18 && NODE_MINOR >= 19)
11
- ? require('import-in-the-middle/lib/get-exports.js')
20
+ ? async (srcUrl, context, getSource) => {
21
+ const mod = await loadGetExportsModule()
22
+ return mod.getExports(srcUrl, context, getSource)
23
+ }
12
24
  : getExportsImporting
13
25
 
14
26
  function isStarExportLine (line) {
@@ -168,7 +180,7 @@ async function processModule ({ path, internal, context, excludeDefault }) {
168
180
  *
169
181
  * @param {string} fullPathToModule File to analize
170
182
  * @param {string} [modulePackageJsonPath] Path of the package.json
171
- * @param {Object} [packageJson] The content of the module package.json
183
+ * @param {object} [packageJson] The content of the module package.json
172
184
  * @returns {boolean}
173
185
  */
174
186
  function isESMFile (fullPathToModule, modulePackageJsonPath, packageJson = {}) {
@@ -2,3 +2,4 @@
2
2
 
3
3
  require('./src/helpers/bundler-register')
4
4
  require('./src/helpers/register')
5
+ require('./src/helpers/rewriter/loader')
@@ -1,11 +1,12 @@
1
1
  'use strict'
2
2
 
3
+ const tracingChannel = require('dc-polyfill').tracingChannel
4
+
5
+ const shimmer = require('../../datadog-shimmer')
3
6
  const {
4
7
  addHook
5
8
  } = require('./helpers/instrument')
6
- const shimmer = require('../../datadog-shimmer')
7
9
 
8
- const tracingChannel = require('dc-polyfill').tracingChannel
9
10
  const ch = tracingChannel('apm:aerospike:command')
10
11
 
11
12
  function wrapCreateCommand (createCommand) {
@@ -1,9 +1,9 @@
1
1
  'use strict'
2
2
 
3
- const { addHook } = require('./helpers/instrument')
3
+ const { channel, tracingChannel } = require('dc-polyfill')
4
4
  const shimmer = require('../../datadog-shimmer')
5
+ const { addHook } = require('./helpers/instrument')
5
6
 
6
- const { channel, tracingChannel } = require('dc-polyfill')
7
7
  const toolCreationChannel = channel('dd-trace:vercel-ai:tool')
8
8
 
9
9
  const TRACED_FUNCTIONS = {
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
3
4
  const {
4
5
  channel,
5
6
  addHook
6
7
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
8
 
9
9
  addHook({ name: 'amqp10', file: 'lib/sender_link.js', versions: ['>=3'] }, SenderLink => {
10
10
  const startCh = channel('apm:amqp10:send:start')
@@ -1,13 +1,13 @@
1
1
  'use strict'
2
2
 
3
- const {
4
- channel,
5
- addHook
6
- } = require('./helpers/instrument')
7
3
  const kebabCase = require('../../datadog-core/src/utils/src/kebabcase')
8
4
  const shimmer = require('../../datadog-shimmer')
9
5
 
10
6
  const { NODE_MAJOR, NODE_MINOR } = require('../../../version')
7
+ const {
8
+ channel,
9
+ addHook
10
+ } = require('./helpers/instrument')
11
11
  const MIN_VERSION = ((NODE_MAJOR > 22) || (NODE_MAJOR === 22 && NODE_MINOR >= 2)) ? '>=0.5.3' : '>=0.5.0'
12
12
 
13
13
  const commandStartCh = channel('apm:amqplib:command:start')
@@ -1,8 +1,8 @@
1
1
  'use strict'
2
2
 
3
- const { addHook } = require('./helpers/instrument')
4
- const shimmer = require('../../datadog-shimmer')
5
3
  const { channel, tracingChannel } = require('dc-polyfill')
4
+ const shimmer = require('../../datadog-shimmer')
5
+ const { addHook } = require('./helpers/instrument')
6
6
 
7
7
  const anthropicTracingChannel = tracingChannel('apm:anthropic:request')
8
8
  const onStreamedChunkCh = channel('apm:anthropic:request:chunk')
@@ -112,4 +112,16 @@ for (const extension of extensions) {
112
112
 
113
113
  return exports
114
114
  })
115
+
116
+ addHook({
117
+ name: '@anthropic-ai/sdk',
118
+ file: `resources/beta/messages/messages.${extension}`,
119
+ versions: ['>=0.33.0']
120
+ }, exports => {
121
+ const Messages = exports.Messages
122
+
123
+ shimmer.wrap(Messages.prototype, 'create', wrapCreate)
124
+
125
+ return exports
126
+ })
115
127
  }
@@ -1,8 +1,8 @@
1
1
  'use strict'
2
2
 
3
- const { addHook } = require('./helpers/instrument')
4
- const shimmer = require('../../datadog-shimmer')
5
3
  const dc = require('dc-polyfill')
4
+ const shimmer = require('../../datadog-shimmer')
5
+ const { addHook } = require('./helpers/instrument')
6
6
 
7
7
  const requestChannel = dc.tracingChannel('datadog:apollo-server-core:request')
8
8
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  const dc = require('dc-polyfill')
4
4
 
5
- const { addHook } = require('./helpers/instrument')
6
5
  const shimmer = require('../../datadog-shimmer')
6
+ const { addHook } = require('./helpers/instrument')
7
7
 
8
8
  const graphqlMiddlewareChannel = dc.tracingChannel('datadog:apollo:middleware')
9
9
  const apolloHttpServerChannel = dc.tracingChannel('datadog:apollo:httpserver')
@@ -1,11 +1,12 @@
1
1
  'use strict'
2
2
 
3
+ const tracingChannel = require('dc-polyfill').tracingChannel
4
+
5
+ const shimmer = require('../../datadog-shimmer')
3
6
  const {
4
7
  addHook,
5
8
  channel
6
9
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
- const tracingChannel = require('dc-polyfill').tracingChannel
9
10
 
10
11
  const CHANNELS = {
11
12
  'gateway.request': tracingChannel('apm:apollo:gateway:request'),
@@ -1,9 +1,9 @@
1
1
  'use strict'
2
2
 
3
+ const dc = require('dc-polyfill')
3
4
  const shimmer = require('../../datadog-shimmer')
4
5
  const { addHook } = require('./helpers/instrument')
5
6
 
6
- const dc = require('dc-polyfill')
7
7
  const serializeChannel = dc.channel('apm:avsc:serialize-start')
8
8
  const deserializeChannel = dc.channel('apm:avsc:deserialize-end')
9
9
 
@@ -1,7 +1,9 @@
1
1
  'use strict'
2
2
 
3
- const { channel, addHook } = require('./helpers/instrument')
4
3
  const shimmer = require('../../datadog-shimmer')
4
+ const { channel, addHook } = require('./helpers/instrument')
5
+
6
+ const patchedClientConfigProtocols = new WeakSet()
5
7
 
6
8
  function wrapRequest (send) {
7
9
  return function wrappedRequest (cb) {
@@ -67,12 +69,14 @@ function wrapSmithySend (send) {
67
69
 
68
70
  if (typeof command.deserialize === 'function') {
69
71
  shimmer.wrap(command, 'deserialize', deserialize => wrapDeserialize(deserialize, channelSuffix))
70
- } else if (this.config?.protocol?.deserializeResponse) {
72
+ } else if (this.config?.protocol?.deserializeResponse && !patchedClientConfigProtocols.has(this.config.protocol)) {
71
73
  shimmer.wrap(
72
74
  this.config.protocol,
73
75
  'deserializeResponse',
74
76
  deserializeResponse => wrapDeserialize(deserializeResponse, channelSuffix, 2)
75
77
  )
78
+
79
+ patchedClientConfigProtocols.add(this.config.protocol)
76
80
  }
77
81
 
78
82
  const ctx = {
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const dc = require('dc-polyfill')
4
+ const shimmer = require('../../datadog-shimmer')
3
5
  const {
4
6
  addHook
5
7
  } = require('./helpers/instrument')
6
- const shimmer = require('../../datadog-shimmer')
7
- const dc = require('dc-polyfill')
8
8
 
9
9
  const producerCh = dc.tracingChannel('apm:azure-event-hubs:send')
10
10
 
@@ -13,6 +13,7 @@ addHook({
13
13
  versions: ['>=6.0.0']
14
14
  }, obj => {
15
15
  const EventHubProducerClient = obj.EventHubProducerClient
16
+
16
17
  shimmer.wrap(EventHubProducerClient.prototype, 'createBatch',
17
18
  createBatch => async function () {
18
19
  const batch = await createBatch.apply(this, arguments)
@@ -20,7 +21,7 @@ addHook({
20
21
  tryAdd => function (eventData) {
21
22
  const config = this._context.config
22
23
  const functionName = tryAdd.name
23
- return producerCh.tracePromise(
24
+ return producerCh.traceSync(
24
25
  tryAdd,
25
26
  { functionName, eventData, batch: this, config },
26
27
  this, ...arguments)
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const dc = require('dc-polyfill')
4
+ const shimmer = require('../../datadog-shimmer')
3
5
  const {
4
6
  addHook
5
7
  } = require('./helpers/instrument')
6
- const shimmer = require('../../datadog-shimmer')
7
- const dc = require('dc-polyfill')
8
8
 
9
9
  const azureFunctionsChannel = dc.tracingChannel('datadog:azure:functions:invoke')
10
10
 
@@ -1,12 +1,11 @@
1
1
  'use strict'
2
2
 
3
+ const dc = require('dc-polyfill')
4
+ const shimmer = require('../../datadog-shimmer')
3
5
  const {
4
6
  addHook
5
7
  } = require('./helpers/instrument')
6
8
 
7
- const shimmer = require('../../datadog-shimmer')
8
- const dc = require('dc-polyfill')
9
-
10
9
  const producerCh = dc.tracingChannel('apm:azure-service-bus:send')
11
10
  const isItDefault = new WeakSet()
12
11
 
@@ -38,7 +37,7 @@ addHook({ name: '@azure/service-bus', versions: ['>=7.9.2'] }, (obj) => {
38
37
  shimmer.wrap(batch, 'tryAddMessage', tryAddMessage => function (msg) {
39
38
  const functionName = tryAddMessage.name
40
39
  const config = this._context.config
41
- return producerCh.tracePromise(
40
+ return producerCh.traceSync(
42
41
  tryAddMessage, { config, functionName, batch, msg }, this, ...arguments)
43
42
  })
44
43
  return batch
@@ -1,8 +1,8 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
3
4
  const { addHook } = require('./helpers/instrument')
4
5
  const { wrapThen } = require('./helpers/promise')
5
- const shimmer = require('../../datadog-shimmer')
6
6
 
7
7
  function createGetNewLibraryCopyWrap (originalLib) {
8
8
  return function wrapGetNewLibraryCopy (getNewLibraryCopy) {
@@ -0,0 +1,11 @@
1
+ // AUTO-GENERATED by dd-compile
2
+ // Orchestrion rewriter handles the actual instrumentation via JSON config.
3
+ // This file registers the module hooks for the rewriter to process.
4
+
5
+ 'use strict'
6
+
7
+ const { addHook, getHooks } = require('./helpers/instrument')
8
+
9
+ for (const hook of getHooks('bullmq')) {
10
+ addHook(hook, exports => exports)
11
+ }
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
3
4
  const {
4
5
  channel,
5
6
  addHook
6
7
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
8
 
9
9
  addHook({ name: 'bunyan', versions: ['>=1'] }, Logger => {
10
10
  const logCh = channel('apm:bunyan:log')
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
3
4
  const {
4
5
  channel,
5
6
  addHook
6
7
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
8
 
9
9
  const startCh = channel('apm:cassandra-driver:query:start')
10
10
  const finishCh = channel('apm:cassandra-driver:query:finish')
@@ -3,11 +3,11 @@
3
3
  const { errorMonitor } = require('events')
4
4
  const util = require('util')
5
5
 
6
+ const dc = require('dc-polyfill')
7
+ const shimmer = require('../../datadog-shimmer')
6
8
  const {
7
9
  addHook
8
10
  } = require('./helpers/instrument')
9
- const shimmer = require('../../datadog-shimmer')
10
- const dc = require('dc-polyfill')
11
11
 
12
12
  const childProcessChannel = dc.tracingChannel('datadog:child_process:execution')
13
13
 
@@ -1,12 +1,12 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
4
+
5
+ const log = require('../../dd-trace/src/log')
3
6
  const {
4
7
  addHook,
5
8
  channel
6
9
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
-
9
- const log = require('../../dd-trace/src/log')
10
10
 
11
11
  // Create channels for Confluent Kafka JavaScript
12
12
  const channels = {
@@ -1,11 +1,11 @@
1
1
  'use strict'
2
2
 
3
3
  const { errorMonitor } = require('events')
4
+ const shimmer = require('../../datadog-shimmer')
4
5
  const {
5
6
  channel,
6
7
  addHook
7
8
  } = require('./helpers/instrument')
8
- const shimmer = require('../../datadog-shimmer')
9
9
 
10
10
  function findCallbackIndex (args, lowerbound = 2) {
11
11
  for (let i = args.length - 1; i >= lowerbound; i--) {
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
3
4
  const {
4
5
  channel,
5
6
  addHook
6
7
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
8
 
9
9
  const cryptoHashCh = channel('datadog:crypto:hashing:start')
10
10
  const cryptoCipherCh = channel('datadog:crypto:cipher:start')
@@ -1,10 +1,20 @@
1
1
  'use strict'
2
- const { createCoverageMap } = require('istanbul-lib-coverage')
3
2
 
4
- const { addHook, channel } = require('./helpers/instrument')
3
+ const { createCoverageMap } = require('../../../vendor/dist/istanbul-lib-coverage')
5
4
  const shimmer = require('../../datadog-shimmer')
6
5
  const log = require('../../dd-trace/src/log')
7
6
  const { getEnvironmentVariable } = require('../../dd-trace/src/config-helper')
7
+ const {
8
+ getCoveredFilenamesFromCoverage,
9
+ resetCoverage,
10
+ mergeCoverage,
11
+ fromCoverageMapToCoverage,
12
+ getTestSuitePath,
13
+ CUCUMBER_WORKER_TRACE_PAYLOAD_CODE,
14
+ getIsFaultyEarlyFlakeDetection
15
+ } = require('../../dd-trace/src/plugins/util/test')
16
+ const satisfies = require('../../../vendor/dist/semifies')
17
+ const { addHook, channel } = require('./helpers/instrument')
8
18
 
9
19
  const testStartCh = channel('ci:cucumber:test:start')
10
20
  const testRetryCh = channel('ci:cucumber:test:retry')
@@ -34,17 +44,6 @@ const itrSkippedSuitesCh = channel('ci:cucumber:itr:skipped-suites')
34
44
 
35
45
  const getCodeCoverageCh = channel('ci:nyc:get-coverage')
36
46
 
37
- const {
38
- getCoveredFilenamesFromCoverage,
39
- resetCoverage,
40
- mergeCoverage,
41
- fromCoverageMapToCoverage,
42
- getTestSuitePath,
43
- CUCUMBER_WORKER_TRACE_PAYLOAD_CODE,
44
- getIsFaultyEarlyFlakeDetection
45
- } = require('../../dd-trace/src/plugins/util/test')
46
- const satisfies = require('semifies')
47
-
48
47
  const isMarkedAsUnskippable = (pickle) => {
49
48
  return pickle.tags.some(tag => tag.name === '@datadog:unskippable')
50
49
  }
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const { addHook } = require('./helpers/instrument')
4
3
  const { DD_MAJOR } = require('../../../version')
4
+ const { addHook } = require('./helpers/instrument')
5
5
 
6
6
  // No handler because this is only useful for testing.
7
7
  // Cypress plugin does not patch any library.
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const { channel, addHook } = require('./helpers/instrument')
4
3
  const shimmer = require('../../datadog-shimmer')
4
+ const { channel, addHook } = require('./helpers/instrument')
5
5
 
6
6
  const rrtypes = {
7
7
  resolveAny: 'ANY',
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
3
4
  const {
4
5
  channel,
5
6
  addHook
6
7
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
8
 
9
9
  addHook({ name: '@elastic/transport', file: 'lib/Transport.js', versions: ['>=8'] }, (exports) => {
10
10
  shimmer.wrap(exports.default.prototype, 'request', createWrapRequest('elasticsearch'))
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
+ const shimmer = require('../../datadog-shimmer')
3
4
  const {
4
5
  channel,
5
6
  addHook
6
7
  } = require('./helpers/instrument')
7
- const shimmer = require('../../datadog-shimmer')
8
8
 
9
9
  const sanitizeMethodFinished = channel('datadog:express-mongo-sanitize:sanitize:finish')
10
10
  const sanitizeMiddlewareFinished = channel('datadog:express-mongo-sanitize:filter:finish')
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const { createWrapRouterMethod } = require('./router')
4
3
  const shimmer = require('../../datadog-shimmer')
4
+ const { createWrapRouterMethod } = require('./router')
5
5
  const { addHook, channel, tracingChannel } = require('./helpers/instrument')
6
6
  const {
7
7
  setRouterMountPath,
@@ -9,13 +9,13 @@ function wrapOn (on) {
9
9
  return function onWithTrace (method, path, opts) {
10
10
  const index = typeof opts === 'function' ? 2 : 3
11
11
  const handler = arguments[index]
12
- const wrapper = shimmer.wrapFunction(handler, handler => function (req) {
13
- routeChannel.publish({ req, route: path })
14
-
15
- return handler.apply(this, arguments)
16
- })
17
12
 
18
13
  if (typeof handler === 'function') {
14
+ const wrapper = shimmer.wrapFunction(handler, handler => function (req) {
15
+ routeChannel.publish({ req, route: path })
16
+
17
+ return handler.apply(this, arguments)
18
+ })
19
19
  arguments[index] = wrapper
20
20
  }
21
21
 
@@ -24,6 +24,7 @@ function wrapOn (on) {
24
24
  }
25
25
 
26
26
  addHook({ name: 'find-my-way', versions: ['>=1'] }, Router => {
27
+ // No need to wrap the off method as it would not contain the handler function.
27
28
  shimmer.wrap(Router.prototype, 'on', wrapOn)
28
29
 
29
30
  return Router
@@ -1,8 +1,8 @@
1
1
  'use strict'
2
2
 
3
3
  const { errorMonitor } = require('events')
4
- const { channel, addHook } = require('./helpers/instrument')
5
4
  const shimmer = require('../../datadog-shimmer')
5
+ const { channel, addHook } = require('./helpers/instrument')
6
6
 
7
7
  const startChannel = channel('apm:fs:operation:start')
8
8
  const finishChannel = channel('apm:fs:operation:finish')
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const { addHook, AsyncResource } = require('./helpers/instrument')
4
3
  const shimmer = require('../../datadog-shimmer')
4
+ const { addHook, AsyncResource } = require('./helpers/instrument')
5
5
 
6
6
  function createWrapAcquire () {
7
7
  return function wrapAcquire (acquire) {