dd-trace 5.105.0 → 5.107.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 (108) hide show
  1. package/index.d.ts +20 -1
  2. package/package.json +5 -7
  3. package/packages/datadog-core/src/storage.js +47 -48
  4. package/packages/datadog-esbuild/index.js +6 -1
  5. package/packages/datadog-instrumentations/src/ai.js +12 -3
  6. package/packages/datadog-instrumentations/src/aws-sdk.js +3 -2
  7. package/packages/datadog-instrumentations/src/body-parser.js +5 -2
  8. package/packages/datadog-instrumentations/src/connect.js +3 -2
  9. package/packages/datadog-instrumentations/src/cookie-parser.js +3 -2
  10. package/packages/datadog-instrumentations/src/cucumber-worker-threads.js +19 -0
  11. package/packages/datadog-instrumentations/src/cucumber.js +319 -152
  12. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +7 -5
  13. package/packages/datadog-instrumentations/src/express-session.js +12 -11
  14. package/packages/datadog-instrumentations/src/express.js +24 -20
  15. package/packages/datadog-instrumentations/src/fastify.js +18 -6
  16. package/packages/datadog-instrumentations/src/helpers/openai-ai-guard.js +27 -12
  17. package/packages/datadog-instrumentations/src/http/client.js +9 -12
  18. package/packages/datadog-instrumentations/src/http/server.js +30 -16
  19. package/packages/datadog-instrumentations/src/http2/client.js +15 -12
  20. package/packages/datadog-instrumentations/src/http2/server.js +15 -8
  21. package/packages/datadog-instrumentations/src/jest/bail-reporter.js +42 -0
  22. package/packages/datadog-instrumentations/src/jest.js +143 -73
  23. package/packages/datadog-instrumentations/src/mocha/main.js +43 -8
  24. package/packages/datadog-instrumentations/src/mocha/utils.js +128 -17
  25. package/packages/datadog-instrumentations/src/multer.js +3 -2
  26. package/packages/datadog-instrumentations/src/mysql2.js +34 -0
  27. package/packages/datadog-instrumentations/src/net.js +8 -6
  28. package/packages/datadog-instrumentations/src/openai.js +19 -7
  29. package/packages/datadog-instrumentations/src/pg.js +19 -0
  30. package/packages/datadog-instrumentations/src/router.js +12 -10
  31. package/packages/datadog-instrumentations/src/vitest.js +29 -4
  32. package/packages/datadog-plugin-aws-sdk/src/base.js +0 -3
  33. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +1 -1
  34. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +218 -4
  35. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +62 -11
  36. package/packages/datadog-plugin-cucumber/src/index.js +2 -0
  37. package/packages/datadog-plugin-cypress/src/support.js +31 -1
  38. package/packages/datadog-plugin-http/src/client.js +0 -3
  39. package/packages/datadog-plugin-http/src/server.js +11 -1
  40. package/packages/datadog-plugin-mocha/src/index.js +2 -0
  41. package/packages/datadog-plugin-pg/src/index.js +10 -0
  42. package/packages/dd-trace/src/aiguard/index.js +34 -15
  43. package/packages/dd-trace/src/aiguard/sdk.js +34 -3
  44. package/packages/dd-trace/src/aiguard/tags.js +6 -0
  45. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +1 -1
  46. package/packages/dd-trace/src/config/defaults.js +14 -0
  47. package/packages/dd-trace/src/config/generated-config-types.d.ts +1 -1
  48. package/packages/dd-trace/src/config/helper.js +1 -0
  49. package/packages/dd-trace/src/config/index.js +5 -9
  50. package/packages/dd-trace/src/config/parsers.js +8 -0
  51. package/packages/dd-trace/src/config/supported-configurations.json +13 -6
  52. package/packages/dd-trace/src/crashtracking/crashtracker.js +2 -2
  53. package/packages/dd-trace/src/datastreams/writer.js +1 -2
  54. package/packages/dd-trace/src/debugger/config.js +1 -1
  55. package/packages/dd-trace/src/debugger/devtools_client/config.js +3 -2
  56. package/packages/dd-trace/src/debugger/index.js +1 -2
  57. package/packages/dd-trace/src/dogstatsd.js +2 -3
  58. package/packages/dd-trace/src/encode/0.4.js +49 -41
  59. package/packages/dd-trace/src/encode/agentless-json.js +5 -1
  60. package/packages/dd-trace/src/encode/tags-processors.js +14 -0
  61. package/packages/dd-trace/src/exporters/agent/index.js +1 -2
  62. package/packages/dd-trace/src/exporters/agentless/index.js +6 -10
  63. package/packages/dd-trace/src/exporters/common/buffering-exporter.js +1 -2
  64. package/packages/dd-trace/src/exporters/common/request.js +26 -0
  65. package/packages/dd-trace/src/exporters/span-stats/index.js +1 -2
  66. package/packages/dd-trace/src/id.js +15 -0
  67. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +91 -5
  68. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +43 -21
  69. package/packages/dd-trace/src/llmobs/plugins/genai/index.js +4 -0
  70. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +45 -0
  71. package/packages/dd-trace/src/llmobs/sdk.js +4 -1
  72. package/packages/dd-trace/src/llmobs/span_processor.js +17 -1
  73. package/packages/dd-trace/src/llmobs/tagger.js +5 -3
  74. package/packages/dd-trace/src/llmobs/util.js +54 -0
  75. package/packages/dd-trace/src/llmobs/writers/base.js +1 -2
  76. package/packages/dd-trace/src/llmobs/writers/util.js +1 -2
  77. package/packages/dd-trace/src/openfeature/writers/base.js +1 -10
  78. package/packages/dd-trace/src/openfeature/writers/util.js +1 -2
  79. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +26 -13
  80. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +7 -10
  81. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +92 -0
  82. package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +25 -5
  83. package/packages/dd-trace/src/opentracing/propagation/text_map.js +2 -10
  84. package/packages/dd-trace/src/opentracing/span.js +23 -18
  85. package/packages/dd-trace/src/opentracing/span_context.js +1 -3
  86. package/packages/dd-trace/src/opentracing/tracer.js +16 -12
  87. package/packages/dd-trace/src/plugins/ci_plugin.js +131 -46
  88. package/packages/dd-trace/src/priority_sampler.js +6 -5
  89. package/packages/dd-trace/src/profiling/config.js +11 -25
  90. package/packages/dd-trace/src/profiling/exporters/agent.js +11 -10
  91. package/packages/dd-trace/src/profiling/profiler.js +19 -9
  92. package/packages/dd-trace/src/profiling/profilers/wall.js +2 -3
  93. package/packages/dd-trace/src/proxy.js +13 -10
  94. package/packages/dd-trace/src/remote_config/index.js +1 -2
  95. package/packages/dd-trace/src/runtime_metrics/client.js +30 -0
  96. package/packages/dd-trace/src/runtime_metrics/index.js +12 -2
  97. package/packages/dd-trace/src/runtime_metrics/otlp_runtime_metrics.js +284 -0
  98. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +2 -11
  99. package/packages/dd-trace/src/service-naming/source-resolver.js +5 -1
  100. package/packages/dd-trace/src/span_format.js +33 -25
  101. package/packages/dd-trace/src/span_stats.js +1 -1
  102. package/packages/dd-trace/src/startup-log.js +1 -2
  103. package/packages/dd-trace/src/telemetry/send-data.js +1 -1
  104. package/packages/dd-trace/src/tracer.js +1 -1
  105. package/vendor/dist/@apm-js-collab/code-transformer/index.js +2 -2
  106. package/vendor/dist/shell-quote/index.js +1 -1
  107. package/packages/dd-trace/src/agent/url.js +0 -28
  108. package/scripts/preinstall.js +0 -34
@@ -1 +1 @@
1
- (()=>{"use strict";var e={"./shell-quote/parse.js"(e){for(var t="(?:\\|\\||\\&\\&|;;|\\|\\&|\\<\\(|\\<\\<\\<|>>|>\\&|<\\&|[&;()|<>])",r=RegExp("^"+t+"$"),n="|&;()<> \\t",a=/^#$/,o="",s=0;s<4;s++)o+=(0x100000000*Math.random()).toString(16);var i=RegExp("^"+o);function matchAll(e,t){for(var r,n=t.lastIndex,a=[];r=t.exec(e);)a.push(r),t.lastIndex===r.index&&(t.lastIndex+=1);return t.lastIndex=n,a}function getVar(e,t,r){var n="function"==typeof e?e(r):e[r];return(void 0===n&&""!=r?n="":void 0===n&&(n="$"),"object"==typeof n)?t+o+JSON.stringify(n)+o:t+n}function parseInternal(e,o,s){s||(s={});var i=s.escape||"\\",u=matchAll(e,RegExp(["("+t+")","("+("(\\"+i+"['\""+n+"]|[^\\s'\""+n)+"])+|\"((\\\\\"|[^\"])*?)\"|'((\\\\'|[^'])*?)')+"].join("|"),"g"));if(0===u.length)return[];o||(o={});var c=!1;return u.map(function(t){var n,s=t[0];if(s&&!c){if(r.test(s))return{op:s};var u=!1,l=!1,p="",f=!1;for(n=0;n<s.length;n++){var v=s.charAt(n);if(f=f||!u&&("*"===v||"?"===v),l)p+=v,l=!1;else if(u)v===u?u=!1:"'"==u?p+=v:v===i?(n+=1,'"'===(v=s.charAt(n))||v===i||"$"===v?p+=v:p+=i+v):"$"===v?p+=parseEnvVar():p+=v;else if('"'===v||"'"===v)u=v;else if(r.test(v))return{op:s};else if(a.test(v)){c=!0;var x={comment:e.slice(t.index+n+1)};if(p.length)return[p,x];return[x]}else v===i?l=!0:"$"===v?p+=parseEnvVar():p+=v}return f?{op:"glob",pattern:p}:p}function parseEnvVar(){n+=1;var e,t,r=s.charAt(n);if("{"===r){if(n+=1,"}"===s.charAt(n))throw Error("Bad substitution: "+s.slice(n-2,n+1));if((e=s.indexOf("}",n))<0)throw Error("Bad substitution: "+s.slice(n));t=s.slice(n,e),n=e}else if(/[*@#?$!_-]/.test(r))t=r,n+=1;else{var a=s.slice(n);(e=a.match(/[^\w\d_]/))?(t=a.slice(0,e.index),n+=e.index-1):(t=a,n=s.length)}return getVar(o,"",t)}}).reduce(function(e,t){return void 0===t?e:e.concat(t)},[])}e.exports=function(e,t,r){var n=parseInternal(e,t,r);return"function"!=typeof t?n:n.reduce(function(e,t){if("object"==typeof t)return e.concat(t);var r=t.split(RegExp("("+o+".*?"+o+")","g"));return 1===r.length?e.concat(r[0]):e.concat(r.filter(Boolean).map(function(e){return i.test(e)?JSON.parse(e.split(o)[1]):e}))},[])}},"./shell-quote/quote.js"(e){e.exports=function(e){return e.map(function(e){return""===e?"''":e&&"object"==typeof e?e.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(e)&&!/'/.test(e)?"'"+e.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(e)?'"'+e.replace(/(["\\$`!])/g,"\\$1")+'"':String(e).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}}},t={};function __webpack_require__(r){var n=t[r];if(void 0!==n)return n.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,__webpack_require__),a.exports}var r={};r.quote=__webpack_require__("./shell-quote/quote.js"),r.parse=__webpack_require__("./shell-quote/parse.js"),module.exports=r})();
1
+ (()=>{"use strict";var e={"./shell-quote/parse.js"(e){for(var t="(?:\\|\\||\\&\\&|;;|\\|\\&|\\<\\(|\\<\\<\\<|>>|>\\&|<\\&|[&;()|<>])",r=RegExp("^"+t+"$"),n="|&;()<> \\t",o=/^#$/,i="",a=0;a<4;a++)i+=(0x100000000*Math.random()).toString(16);var s=RegExp("^"+i);function matchAll(e,t){for(var r,n=t.lastIndex,o=[];r=t.exec(e);)o.push(r),t.lastIndex===r.index&&(t.lastIndex+=1);return t.lastIndex=n,o}function getVar(e,t,r){var n="function"==typeof e?e(r):e[r];return(void 0===n&&""!=r?n="":void 0===n&&(n="$"),"object"==typeof n)?t+i+JSON.stringify(n)+i:t+n}function parseInternal(e,i,a){a||(a={});var s=a.escape||"\\",p=matchAll(e,RegExp(["("+t+")","("+("(\\"+s+"['\""+n+"]|[^\\s'\""+n)+"])+|\"((\\\\\"|[^\"])*?)\"|'((\\\\'|[^'])*?)')+"].join("|"),"g"));if(0===p.length)return[];i||(i={});var u=!1;return p.map(function(t){var n,a=t[0];if(a&&!u){if(r.test(a))return{op:a};var p=!1,c=!1,f="",l=!1;for(n=0;n<a.length;n++){var g=a.charAt(n);if(l=l||!p&&("*"===g||"?"===g),c)f+=g,c=!1;else if(p)g===p?p=!1:"'"==p?f+=g:g===s?(n+=1,'"'===(g=a.charAt(n))||g===s||"$"===g?f+=g:f+=s+g):"$"===g?f+=parseEnvVar():f+=g;else if('"'===g||"'"===g)p=g;else if(r.test(g))return{op:a};else if(o.test(g)){u=!0;var v={comment:e.slice(t.index+n+1)};if(f.length)return[f,v];return[v]}else g===s?c=!0:"$"===g?f+=parseEnvVar():f+=g}return l?{op:"glob",pattern:f}:f}function parseEnvVar(){n+=1;var e,t,r=a.charAt(n);if("{"===r){if(n+=1,"}"===a.charAt(n))throw Error("Bad substitution: "+a.slice(n-2,n+1));if((e=a.indexOf("}",n))<0)throw Error("Bad substitution: "+a.slice(n));t=a.slice(n,e),n=e}else if(/[*@#?$!_-]/.test(r))t=r,n+=1;else{var o=a.slice(n);(e=o.match(/[^\w\d_]/))?(t=o.slice(0,e.index),n+=e.index-1):(t=o,n=a.length)}return getVar(i,"",t)}}).reduce(function(e,t){return void 0===t?e:e.concat(t)},[])}e.exports=function(e,t,r){var n=parseInternal(e,t,r);return"function"!=typeof t?n:n.reduce(function(e,t){if("object"==typeof t)return e.concat(t);var r=t.split(RegExp("("+i+".*?"+i+")","g"));return 1===r.length?e.concat(r[0]):e.concat(r.filter(Boolean).map(function(e){return s.test(e)?JSON.parse(e.split(i)[1]):e}))},[])}},"./shell-quote/quote.js"(e){var t=["||","&&",";;","|&","<(","<<<",">>",">&","<&","&",";","(",")","|","<",">"],r=/[\n\r\u2028\u2029]/,n=/[\s#!"$&'():;<=>@\\^`|]/g;e.exports=function(e){return e.map(function(e){if(""===e)return"''";if(e&&"object"==typeof e){if("glob"===e.op){if("string"!=typeof e.pattern)throw TypeError("glob token requires a string `pattern`");if(r.test(e.pattern))throw TypeError("glob `pattern` must not contain line terminators");return e.pattern.replace(n,"\\$&")}if("string"==typeof e.op){if(0>t.indexOf(e.op))throw TypeError("invalid `op` value: "+JSON.stringify(e.op));return e.op.replace(/[\s\S]/g,"\\$&")}if("string"==typeof e.comment){if(r.test(e.comment))throw TypeError("`comment` must not contain line terminators");return"#"+e.comment}throw TypeError("unrecognized object token shape")}return/["\s\\]/.test(e)&&!/'/.test(e)?"'"+e.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(e)?'"'+e.replace(/(["\\$`!])/g,"\\$1")+'"':String(e).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}}},t={};function __webpack_require__(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,__webpack_require__),o.exports}var r={};r.quote=__webpack_require__("./shell-quote/quote.js"),r.parse=__webpack_require__("./shell-quote/parse.js"),module.exports=r})();
@@ -1,28 +0,0 @@
1
- 'use strict'
2
-
3
- const { URL, format } = require('url')
4
- const { defaults } = require('../config/defaults')
5
-
6
- module.exports = { getAgentUrl }
7
-
8
- // TODO: Investigate merging with the getAgentUrl function in config/index.js which has
9
- // additional logic for unix socket auto-detection on Linux. The config version is only used
10
- // during config initialization, while this one is used throughout the codebase. Consider if
11
- // the unix socket detection should be part of this general helper or remain config-specific.
12
-
13
- /**
14
- * Gets the agent URL from config, constructing it from hostname/port if needed
15
- * @param {Partial<import('../config/config-base')>} config - Tracer configuration object
16
- * @returns {URL} The agent URL
17
- */
18
- function getAgentUrl (config) {
19
- const { url, hostname, port } = config
20
- if (url) {
21
- return url instanceof URL ? url : new URL(url)
22
- }
23
- return new URL(format({
24
- protocol: 'http:',
25
- hostname: hostname || defaults.hostname,
26
- port: port || defaults.port,
27
- }))
28
- }
@@ -1,34 +0,0 @@
1
- 'use strict'
2
-
3
- /* eslint-disable no-console */
4
-
5
- const npmArgv = (() => {
6
- try {
7
- return JSON.parse(process.env.npm_config_argv)
8
- } catch {
9
- return { original: [] }
10
- }
11
- })()
12
-
13
- const path = require('path')
14
- const requirePackageJson = require('../packages/dd-trace/src/require-package-json.js')
15
-
16
- const nodeMajor = Number(process.versions.node.split('.')[0])
17
-
18
- const min = Number(requirePackageJson(path.join(__dirname, '..')).engines.node.match(/\d+/)[0])
19
-
20
- // Most package managers don't support `npm_config_argv`, so we need a custom
21
- // flag to allow installing dd-trace on unsupported engines.
22
- const hasIgnoreEngines = process.env._DD_IGNORE_ENGINES === 'true' || npmArgv &&
23
- npmArgv.original &&
24
- npmArgv.original.includes('--ignore-engines')
25
-
26
- if (nodeMajor < min && !hasIgnoreEngines) {
27
- process.exitCode = 1
28
- console.error('\n' + `
29
- You're using Node.js v${process.versions.node}, which is not supported by
30
- dd-trace.
31
-
32
- Please upgrade to a more recent version of Node.js.
33
- `.trim() + '\n')
34
- }