@sentry/node 10.55.0 → 10.57.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 (185) hide show
  1. package/build/cjs/integrations/node-fetch/vendored/undici.js +2 -3
  2. package/build/cjs/integrations/node-fetch/vendored/undici.js.map +1 -1
  3. package/build/cjs/integrations/tracing/InstrumentationNodeModuleFile.js +15 -0
  4. package/build/cjs/integrations/tracing/InstrumentationNodeModuleFile.js.map +1 -0
  5. package/build/cjs/integrations/tracing/amqplib/vendored/amqplib.js +9 -9
  6. package/build/cjs/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
  7. package/build/cjs/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
  8. package/build/cjs/integrations/tracing/anthropic-ai/index.js.map +1 -1
  9. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js +3 -5
  10. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
  11. package/build/cjs/integrations/tracing/express.js +3 -5
  12. package/build/cjs/integrations/tracing/express.js.map +1 -1
  13. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js +10 -11
  14. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  15. package/build/cjs/integrations/tracing/fastify/vendored/instrumentation.js +3 -4
  16. package/build/cjs/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
  17. package/build/cjs/integrations/tracing/firebase/otel/patches/firestore.js +2 -1
  18. package/build/cjs/integrations/tracing/firebase/otel/patches/firestore.js.map +1 -1
  19. package/build/cjs/integrations/tracing/firebase/otel/patches/functions.js +2 -1
  20. package/build/cjs/integrations/tracing/firebase/otel/patches/functions.js.map +1 -1
  21. package/build/cjs/integrations/tracing/google-genai/index.js.map +1 -1
  22. package/build/cjs/integrations/tracing/google-genai/instrumentation.js +2 -1
  23. package/build/cjs/integrations/tracing/google-genai/instrumentation.js.map +1 -1
  24. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js +4 -3
  25. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
  26. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js +2 -5
  27. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
  28. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js +3 -2
  29. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  30. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js +3 -4
  31. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
  32. package/build/cjs/integrations/tracing/langchain/index.js.map +1 -1
  33. package/build/cjs/integrations/tracing/langchain/instrumentation.js +3 -2
  34. package/build/cjs/integrations/tracing/langchain/instrumentation.js.map +1 -1
  35. package/build/cjs/integrations/tracing/langgraph/index.js.map +1 -1
  36. package/build/cjs/integrations/tracing/langgraph/instrumentation.js +7 -5
  37. package/build/cjs/integrations/tracing/langgraph/instrumentation.js.map +1 -1
  38. package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js +8 -11
  39. package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
  40. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js +7 -6
  41. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
  42. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js +3 -2
  43. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  44. package/build/cjs/integrations/tracing/openai/index.js.map +1 -1
  45. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js +5 -5
  46. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  47. package/build/cjs/integrations/tracing/postgresjs.js +3 -2
  48. package/build/cjs/integrations/tracing/postgresjs.js.map +1 -1
  49. package/build/cjs/integrations/tracing/redis/index.js +3 -2
  50. package/build/cjs/integrations/tracing/redis/index.js.map +1 -1
  51. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js +1 -1
  52. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  53. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js +4 -3
  54. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  55. package/build/cjs/integrations/tracing/utils/sql-common.js.map +1 -1
  56. package/build/cjs/integrations/tracing/vercelai/instrumentation.js +6 -5
  57. package/build/cjs/integrations/tracing/vercelai/instrumentation.js.map +1 -1
  58. package/build/cjs/utils/setHttpServerSpanRouteAttribute.js +21 -0
  59. package/build/cjs/utils/setHttpServerSpanRouteAttribute.js.map +1 -0
  60. package/build/esm/integrations/node-fetch/vendored/undici.js +3 -4
  61. package/build/esm/integrations/node-fetch/vendored/undici.js.map +1 -1
  62. package/build/esm/integrations/tracing/InstrumentationNodeModuleFile.js +13 -0
  63. package/build/esm/integrations/tracing/InstrumentationNodeModuleFile.js.map +1 -0
  64. package/build/esm/integrations/tracing/amqplib/vendored/amqplib.js +7 -7
  65. package/build/esm/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
  66. package/build/esm/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
  67. package/build/esm/integrations/tracing/anthropic-ai/index.js.map +1 -1
  68. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js +3 -5
  69. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
  70. package/build/esm/integrations/tracing/express.js +3 -5
  71. package/build/esm/integrations/tracing/express.js.map +1 -1
  72. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js +3 -4
  73. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  74. package/build/esm/integrations/tracing/fastify/vendored/instrumentation.js +3 -4
  75. package/build/esm/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
  76. package/build/esm/integrations/tracing/firebase/otel/patches/firestore.js +2 -1
  77. package/build/esm/integrations/tracing/firebase/otel/patches/firestore.js.map +1 -1
  78. package/build/esm/integrations/tracing/firebase/otel/patches/functions.js +2 -1
  79. package/build/esm/integrations/tracing/firebase/otel/patches/functions.js.map +1 -1
  80. package/build/esm/integrations/tracing/google-genai/index.js.map +1 -1
  81. package/build/esm/integrations/tracing/google-genai/instrumentation.js +2 -1
  82. package/build/esm/integrations/tracing/google-genai/instrumentation.js.map +1 -1
  83. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js +2 -1
  84. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
  85. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js +2 -5
  86. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
  87. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js +2 -1
  88. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  89. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js +3 -4
  90. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
  91. package/build/esm/integrations/tracing/langchain/index.js.map +1 -1
  92. package/build/esm/integrations/tracing/langchain/instrumentation.js +2 -1
  93. package/build/esm/integrations/tracing/langchain/instrumentation.js.map +1 -1
  94. package/build/esm/integrations/tracing/langgraph/index.js.map +1 -1
  95. package/build/esm/integrations/tracing/langgraph/instrumentation.js +5 -3
  96. package/build/esm/integrations/tracing/langgraph/instrumentation.js.map +1 -1
  97. package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js +8 -11
  98. package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
  99. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js +2 -1
  100. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
  101. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js +2 -1
  102. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  103. package/build/esm/integrations/tracing/openai/index.js.map +1 -1
  104. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js +5 -5
  105. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  106. package/build/esm/integrations/tracing/postgresjs.js +3 -2
  107. package/build/esm/integrations/tracing/postgresjs.js.map +1 -1
  108. package/build/esm/integrations/tracing/redis/index.js +3 -2
  109. package/build/esm/integrations/tracing/redis/index.js.map +1 -1
  110. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js +1 -1
  111. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  112. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js +2 -1
  113. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  114. package/build/esm/integrations/tracing/utils/sql-common.js.map +1 -1
  115. package/build/esm/integrations/tracing/vercelai/instrumentation.js +6 -5
  116. package/build/esm/integrations/tracing/vercelai/instrumentation.js.map +1 -1
  117. package/build/esm/package.json +1 -1
  118. package/build/esm/utils/setHttpServerSpanRouteAttribute.js +19 -0
  119. package/build/esm/utils/setHttpServerSpanRouteAttribute.js.map +1 -0
  120. package/build/types/integrations/node-fetch/vendored/undici.d.ts.map +1 -1
  121. package/build/types/integrations/tracing/InstrumentationNodeModuleFile.d.ts +9 -0
  122. package/build/types/integrations/tracing/InstrumentationNodeModuleFile.d.ts.map +1 -0
  123. package/build/types/integrations/tracing/amqplib/vendored/amqplib.d.ts.map +1 -1
  124. package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts +2 -2
  125. package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts.map +1 -1
  126. package/build/types/integrations/tracing/anthropic-ai/index.d.ts +8 -7
  127. package/build/types/integrations/tracing/anthropic-ai/index.d.ts.map +1 -1
  128. package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts.map +1 -1
  129. package/build/types/integrations/tracing/express.d.ts.map +1 -1
  130. package/build/types/integrations/tracing/fastify/v3/instrumentation.d.ts.map +1 -1
  131. package/build/types/integrations/tracing/fastify/vendored/instrumentation.d.ts.map +1 -1
  132. package/build/types/integrations/tracing/firebase/otel/patches/firestore.d.ts.map +1 -1
  133. package/build/types/integrations/tracing/firebase/otel/patches/functions.d.ts.map +1 -1
  134. package/build/types/integrations/tracing/google-genai/index.d.ts +8 -7
  135. package/build/types/integrations/tracing/google-genai/index.d.ts.map +1 -1
  136. package/build/types/integrations/tracing/google-genai/instrumentation.d.ts.map +1 -1
  137. package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts.map +1 -1
  138. package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts.map +1 -1
  139. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts.map +1 -1
  140. package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts.map +1 -1
  141. package/build/types/integrations/tracing/langchain/index.d.ts +9 -8
  142. package/build/types/integrations/tracing/langchain/index.d.ts.map +1 -1
  143. package/build/types/integrations/tracing/langchain/instrumentation.d.ts.map +1 -1
  144. package/build/types/integrations/tracing/langgraph/index.d.ts +8 -7
  145. package/build/types/integrations/tracing/langgraph/index.d.ts.map +1 -1
  146. package/build/types/integrations/tracing/langgraph/instrumentation.d.ts.map +1 -1
  147. package/build/types/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts +2 -2
  148. package/build/types/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts.map +1 -1
  149. package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts.map +1 -1
  150. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts.map +1 -1
  151. package/build/types/integrations/tracing/openai/index.d.ts +8 -7
  152. package/build/types/integrations/tracing/openai/index.d.ts.map +1 -1
  153. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts.map +1 -1
  154. package/build/types/integrations/tracing/postgresjs.d.ts.map +1 -1
  155. package/build/types/integrations/tracing/redis/index.d.ts +4 -1
  156. package/build/types/integrations/tracing/redis/index.d.ts.map +1 -1
  157. package/build/types/integrations/tracing/redis/vendored/redis-instrumentation.d.ts.map +1 -1
  158. package/build/types/integrations/tracing/utils/sql-common.d.ts +1 -1
  159. package/build/types/integrations/tracing/utils/sql-common.d.ts.map +1 -1
  160. package/build/types/integrations/tracing/vercelai/instrumentation.d.ts +2 -2
  161. package/build/types/integrations/tracing/vercelai/instrumentation.d.ts.map +1 -1
  162. package/build/types/integrations/tracing/vercelai/types.d.ts +6 -4
  163. package/build/types/integrations/tracing/vercelai/types.d.ts.map +1 -1
  164. package/build/types/utils/setHttpServerSpanRouteAttribute.d.ts +9 -0
  165. package/build/types/utils/setHttpServerSpanRouteAttribute.d.ts.map +1 -0
  166. package/build/types-ts3.8/integrations/tracing/InstrumentationNodeModuleFile.d.ts +9 -0
  167. package/build/types-ts3.8/integrations/tracing/amqplib/vendored/utils.d.ts +2 -2
  168. package/build/types-ts3.8/integrations/tracing/anthropic-ai/index.d.ts +8 -7
  169. package/build/types-ts3.8/integrations/tracing/google-genai/index.d.ts +8 -7
  170. package/build/types-ts3.8/integrations/tracing/langchain/index.d.ts +9 -8
  171. package/build/types-ts3.8/integrations/tracing/langgraph/index.d.ts +8 -7
  172. package/build/types-ts3.8/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts +2 -2
  173. package/build/types-ts3.8/integrations/tracing/openai/index.d.ts +8 -7
  174. package/build/types-ts3.8/integrations/tracing/redis/index.d.ts +4 -1
  175. package/build/types-ts3.8/integrations/tracing/vercelai/instrumentation.d.ts +2 -2
  176. package/build/types-ts3.8/integrations/tracing/vercelai/types.d.ts +6 -4
  177. package/build/types-ts3.8/utils/setHttpServerSpanRouteAttribute.d.ts +9 -0
  178. package/package.json +5 -4
  179. package/build/cjs/integrations/tracing/redis/redis-dc-subscriber.js +0 -151
  180. package/build/cjs/integrations/tracing/redis/redis-dc-subscriber.js.map +0 -1
  181. package/build/esm/integrations/tracing/redis/redis-dc-subscriber.js +0 -149
  182. package/build/esm/integrations/tracing/redis/redis-dc-subscriber.js.map +0 -1
  183. package/build/types/integrations/tracing/redis/redis-dc-subscriber.d.ts +0 -17
  184. package/build/types/integrations/tracing/redis/redis-dc-subscriber.d.ts.map +0 -1
  185. package/build/types-ts3.8/integrations/tracing/redis/redis-dc-subscriber.d.ts +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/redis/index.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,kBAAkB,CAAC;AAK/E,UAAU,YAAY;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,eAAO,IAAI,aAAa,EAAE,YAAiB,CAAC;AAG5C,eAAO,MAAM,iBAAiB,EAAE,sCAoD/B,CAAC;AAcF,qJAAqJ;AACrJ,eAAO,MAAM,eAAe,SACtB,IAAI;;CAaT,CAAC;AAYF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,4EAAuC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/redis/index.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,kBAAkB,CAAC;AAI/E,UAAU,YAAY;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,eAAO,IAAI,aAAa,EAAE,YAAiB,CAAC;AAG5C,eAAO,MAAM,iBAAiB,EAAE,sCAoD/B,CAAC;AAcF;;;GAGG;AACH,eAAO,MAAM,eAAe,SACtB,IAAI;;CAcT,CAAC;AAYF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,4EAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"redis-instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/redis/vendored/redis-instrumentation.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EACL,mBAAmB,EAOpB,MAAM,gCAAgC,CAAC;AAmBxC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAmnB1D,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,0BAA0B,CAAC;IACvF,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,GAAE,0BAA+B;IAQ1C,SAAS,CAAC,MAAM,GAAE,0BAA+B,GAAG,IAAI;IAUjE,IAAI;IAEK,oBAAoB;IAIpB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IASvD,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;CAQzB"}
1
+ {"version":3,"file":"redis-instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/redis/vendored/redis-instrumentation.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EACL,mBAAmB,EAMpB,MAAM,gCAAgC,CAAC;AAoBxC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAmnB1D,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,0BAA0B,CAAC;IACvF,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,GAAE,0BAA+B;IAQ1C,SAAS,CAAC,MAAM,GAAE,0BAA+B,GAAG,IAAI;IAUjE,IAAI;IAEK,oBAAoB;IAIpB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IASvD,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;CAQzB"}
@@ -1,3 +1,3 @@
1
- import { Span } from '@opentelemetry/api';
1
+ import type { Span } from '@opentelemetry/api';
2
2
  export declare function addSqlCommenterComment(span: Span, query: string): string;
3
3
  //# sourceMappingURL=sql-common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-common.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/utils/sql-common.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAS,IAAI,EAAsC,MAAM,oBAAoB,CAAC;AA8BrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BxE"}
1
+ {"version":3,"file":"sql-common.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/utils/sql-common.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA+B/C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BxE"}
@@ -22,9 +22,9 @@ export declare function cleanupToolCallSpanContexts(content: Array<object>): voi
22
22
  * 1. The vercel ai integration options
23
23
  * 2. The experimental_telemetry options in the vercel ai method calls
24
24
  * 3. When telemetry is explicitly enabled (isEnabled: true), default to recording
25
- * 4. Otherwise, use the sendDefaultPii option from client options
25
+ * 4. Otherwise, use the dataCollection.genAI settings from client options
26
26
  */
27
- export declare function determineRecordingSettings(integrationRecordingOptions: RecordingOptions | undefined, methodTelemetryOptions: RecordingOptions, telemetryExplicitlyEnabled: boolean | undefined, defaultRecordingEnabled: boolean): {
27
+ export declare function determineRecordingSettings(integrationRecordingOptions: RecordingOptions | undefined, methodTelemetryOptions: RecordingOptions, telemetryExplicitlyEnabled: boolean | undefined, defaultInputsEnabled: boolean, defaultOutputsEnabled: boolean): {
28
28
  recordInputs: boolean;
29
29
  recordOutputs: boolean;
30
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/vercelai/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAuC,MAAM,gCAAgC,CAAC;AAsC1G,UAAU,gBAAgB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA6BD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAY5D;AAgDD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAWxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,2BAA2B,EAAE,gBAAgB,GAAG,SAAS,EACzD,sBAAsB,EAAE,gBAAgB,EACxC,0BAA0B,EAAE,OAAO,GAAG,SAAS,EAC/C,uBAAuB,EAAE,OAAO,GAC/B;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAoBnD;AAED;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,mBAAmB;IACpE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAsB;gBAErB,MAAM,GAAE,qBAA0B;IAIrD;;OAEG;IACI,IAAI,IAAI,+BAA+B;IAK9C;;;OAGG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAQlD;;OAEG;IACH,OAAO,CAAC,MAAM;CA6Ef"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/vercelai/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAuC,MAAM,gCAAgC,CAAC;AAsC1G,UAAU,gBAAgB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA6BD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAY5D;AAgDD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAWxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,2BAA2B,EAAE,gBAAgB,GAAG,SAAS,EACzD,sBAAsB,EAAE,gBAAgB,EACxC,0BAA0B,EAAE,OAAO,GAAG,SAAS,EAC/C,oBAAoB,EAAE,OAAO,EAC7B,qBAAqB,EAAE,OAAO,GAC7B;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAoBnD;AAED;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,mBAAmB;IACpE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAsB;gBAErB,MAAM,GAAE,qBAA0B;IAIrD;;OAEG;IACI,IAAI,IAAI,+BAA+B;IAK9C;;;OAGG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAQlD;;OAEG;IACH,OAAO,CAAC,MAAM;CA8Ef"}
@@ -38,13 +38,15 @@ export type TelemetrySettings = {
38
38
  export declare type AttributeValue = string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>;
39
39
  export interface VercelAiOptions {
40
40
  /**
41
- * Enable or disable input recording. Enabled if `sendDefaultPii` is `true`
42
- * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings
41
+ * Enable or disable input recording. Enabled if `dataCollection.genAI.inputs` (or the deprecated `sendDefaultPii` option) is `true`
42
+ * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings.
43
+ * Integration-level options take precedence over global `dataCollection` config.
43
44
  */
44
45
  recordInputs?: boolean;
45
46
  /**
46
- * Enable or disable output recording. Enabled if `sendDefaultPii` is `true`
47
- * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings
47
+ * Enable or disable output recording. Enabled if `dataCollection.genAI.outputs` (or the deprecated `sendDefaultPii` option) is `true`
48
+ * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings.
49
+ * Integration-level options take precedence over global `dataCollection` config.
48
50
  */
49
51
  recordOutputs?: boolean;
50
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/vercelai/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3C,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,MAAM,cAAc,GAC9B,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAChC,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAChC,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,OAAO,EAAE,eAAe,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/vercelai/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3C,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,MAAM,cAAc,GAC9B,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAChC,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAChC,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,OAAO,EAAE,eAAe,CAAC;CAC1B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Set the `http.route` attribute on the root HTTP server span for the current trace.
3
+ *
4
+ * No-op when there is no active span, no root span, or the root span is not an
5
+ * `http.server` span — so framework instrumentations can call this unconditionally
6
+ * without risking attribute pollution on non-HTTP root spans.
7
+ */
8
+ export declare function setHttpServerSpanRouteAttribute(route: string): void;
9
+ //# sourceMappingURL=setHttpServerSpanRouteAttribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setHttpServerSpanRouteAttribute.d.ts","sourceRoot":"","sources":["../../../src/utils/setHttpServerSpanRouteAttribute.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAanE"}
@@ -0,0 +1,9 @@
1
+ import { InstrumentationModuleFile } from '@opentelemetry/instrumentation';
2
+ export declare class InstrumentationNodeModuleFile implements InstrumentationModuleFile {
3
+ name: string;
4
+ supportedVersions: string[];
5
+ patch: (moduleExports: any, moduleVersion?: string) => any;
6
+ unpatch: (moduleExports?: any, moduleVersion?: string) => void;
7
+ constructor(name: string, supportedVersions: string[], patch: (moduleExports: any, moduleVersion?: string) => any, unpatch: (moduleExports?: any, moduleVersion?: string) => void);
8
+ }
9
+ //# sourceMappingURL=InstrumentationNodeModuleFile.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Context, HrTime, Span, Attributes } from '@opentelemetry/api';
1
+ import { Context, Span, Attributes } from '@opentelemetry/api';
2
2
  import { SemconvStability } from '@opentelemetry/instrumentation';
3
3
  import { Connection, Channel, ConfirmChannel, Options } from './amqplib-types';
4
4
  import { ConsumeMessage, Message } from './types';
@@ -16,7 +16,7 @@ export type InstrumentationConsumeChannel = Channel & {
16
16
  connection: InstrumentationConnection;
17
17
  [CHANNEL_SPANS_NOT_ENDED]?: {
18
18
  msg: ConsumeMessage;
19
- timeOfConsume: HrTime;
19
+ timeOfConsume: number;
20
20
  }[];
21
21
  [CHANNEL_CONSUME_TIMEOUT_TIMER]?: NodeJS.Timeout;
22
22
  };
@@ -21,18 +21,19 @@ export declare const instrumentAnthropicAi: ((options?: AnthropicAiOptions | und
21
21
  *
22
22
  * ## Options
23
23
  *
24
- * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)
25
- * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)
24
+ * - `recordInputs`: Whether to record prompt messages (default: follows `dataCollection.genAI.inputs`, or the deprecated `sendDefaultPii` option)
25
+ * - `recordOutputs`: Whether to record response text (default: follows `dataCollection.genAI.outputs`, or the deprecated `sendDefaultPii` option)
26
26
  *
27
27
  * ### Default Behavior
28
28
  *
29
29
  * By default, the integration will:
30
- * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options
31
- * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled
30
+ * - Record inputs and outputs based on `dataCollection.genAI` in your Sentry client options
31
+ * (or the deprecated `sendDefaultPii` option, for backwards compatibility)
32
+ * - Integration-level `recordInputs`/`recordOutputs` options take precedence over global config
32
33
  *
33
34
  * @example
34
35
  * ```javascript
35
- * // Record inputs and outputs when sendDefaultPii is false
36
+ * // Always record inputs and outputs regardless of global dataCollection config
36
37
  * Sentry.init({
37
38
  * integrations: [
38
39
  * Sentry.anthropicAIIntegration({
@@ -42,9 +43,9 @@ export declare const instrumentAnthropicAi: ((options?: AnthropicAiOptions | und
42
43
  * ],
43
44
  * });
44
45
  *
45
- * // Never record inputs/outputs regardless of sendDefaultPii
46
+ * // Never record inputs/outputs regardless of global dataCollection config
46
47
  * Sentry.init({
47
- * sendDefaultPii: true,
48
+ * dataCollection: { genAI: { inputs: true, outputs: true } },
48
49
  * integrations: [
49
50
  * Sentry.anthropicAIIntegration({
50
51
  * recordInputs: false,
@@ -21,18 +21,19 @@ export declare const instrumentGoogleGenAI: ((options?: GoogleGenAIOptions | und
21
21
  *
22
22
  * ## Options
23
23
  *
24
- * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)
25
- * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)
24
+ * - `recordInputs`: Whether to record prompt messages (default: follows `dataCollection.genAI.inputs`)
25
+ * - `recordOutputs`: Whether to record response text (default: follows `dataCollection.genAI.outputs`)
26
26
  *
27
27
  * ### Default Behavior
28
28
  *
29
29
  * By default, the integration will:
30
- * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options
31
- * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled
30
+ * - Record inputs and outputs based on `dataCollection.genAI` in your Sentry client options
31
+ * (or the deprecated `sendDefaultPii` option, for backwards compatibility)
32
+ * - Integration-level `recordInputs`/`recordOutputs` options take precedence over global config
32
33
  *
33
34
  * @example
34
35
  * ```javascript
35
- * // Record inputs and outputs when sendDefaultPii is false
36
+ * // Always record inputs and outputs regardless of global dataCollection config
36
37
  * Sentry.init({
37
38
  * integrations: [
38
39
  * Sentry.googleGenAiIntegration({
@@ -42,9 +43,9 @@ export declare const instrumentGoogleGenAI: ((options?: GoogleGenAIOptions | und
42
43
  * ],
43
44
  * });
44
45
  *
45
- * // Never record inputs/outputs regardless of sendDefaultPii
46
+ * // Never record inputs/outputs regardless of global dataCollection config
46
47
  * Sentry.init({
47
- * sendDefaultPii: true,
48
+ * dataCollection: { genAI: { inputs: true, outputs: true } },
48
49
  * integrations: [
49
50
  * Sentry.googleGenAiIntegration({
50
51
  * recordInputs: false,
@@ -21,7 +21,7 @@ export declare const instrumentLangChain: ((options?: LangChainOptions | undefin
21
21
  *
22
22
  * Sentry.init({
23
23
  * integrations: [Sentry.langChainIntegration()],
24
- * sendDefaultPii: true, // Enable to record inputs/outputs
24
+ * dataCollection: { genAI: { inputs: true, outputs: true } }, // Enable to record inputs/outputs
25
25
  * });
26
26
  *
27
27
  * // LangChain calls are automatically instrumented
@@ -52,18 +52,19 @@ export declare const instrumentLangChain: ((options?: LangChainOptions | undefin
52
52
  *
53
53
  * ## Options
54
54
  *
55
- * - `recordInputs`: Whether to record input messages/prompts (default: respects `sendDefaultPii` client option)
56
- * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)
55
+ * - `recordInputs`: Whether to record input messages/prompts (default: follows `dataCollection.genAI.inputs`, or the deprecated `sendDefaultPii` option)
56
+ * - `recordOutputs`: Whether to record response text (default: follows `dataCollection.genAI.outputs`, or the deprecated `sendDefaultPii` option)
57
57
  *
58
58
  * ### Default Behavior
59
59
  *
60
60
  * By default, the integration will:
61
- * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options
62
- * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled
61
+ * - Record inputs and outputs based on `dataCollection.genAI` in your Sentry client options
62
+ * (or the deprecated `sendDefaultPii` option, for backwards compatibility)
63
+ * - Integration-level `recordInputs`/`recordOutputs` options take precedence over global config
63
64
  *
64
65
  * @example
65
66
  * ```javascript
66
- * // Record inputs and outputs when sendDefaultPii is false
67
+ * // Always record inputs and outputs regardless of global dataCollection config
67
68
  * Sentry.init({
68
69
  * integrations: [
69
70
  * Sentry.langChainIntegration({
@@ -73,9 +74,9 @@ export declare const instrumentLangChain: ((options?: LangChainOptions | undefin
73
74
  * ],
74
75
  * });
75
76
  *
76
- * // Never record inputs/outputs regardless of sendDefaultPii
77
+ * // Never record inputs/outputs regardless of global dataCollection config
77
78
  * Sentry.init({
78
- * sendDefaultPii: true,
79
+ * dataCollection: { genAI: { inputs: true, outputs: true } },
79
80
  * integrations: [
80
81
  * Sentry.langChainIntegration({
81
82
  * recordInputs: false,
@@ -21,18 +21,19 @@ export declare const instrumentLangGraph: ((options?: LangGraphOptions | undefin
21
21
  *
22
22
  * ## Options
23
23
  *
24
- * - `recordInputs`: Whether to record input messages (default: respects `sendDefaultPii` client option)
25
- * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)
24
+ * - `recordInputs`: Whether to record prompt messages (default: follows `dataCollection.genAI.inputs`, or the deprecated `sendDefaultPii` option)
25
+ * - `recordOutputs`: Whether to record response text (default: follows `dataCollection.genAI.outputs`, or the deprecated `sendDefaultPii` option)
26
26
  *
27
27
  * ### Default Behavior
28
28
  *
29
29
  * By default, the integration will:
30
- * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options
31
- * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled
30
+ * - Record inputs and outputs based on `dataCollection.genAI` in your Sentry client options
31
+ * (or the deprecated `sendDefaultPii` option, for backwards compatibility)
32
+ * - Integration-level `recordInputs`/`recordOutputs` options take precedence over global config
32
33
  *
33
34
  * @example
34
35
  * ```javascript
35
- * // Record inputs and outputs when sendDefaultPii is false
36
+ * // Always record inputs and outputs regardless of global dataCollection config
36
37
  * Sentry.init({
37
38
  * integrations: [
38
39
  * Sentry.langGraphIntegration({
@@ -42,9 +43,9 @@ export declare const instrumentLangGraph: ((options?: LangGraphOptions | undefin
42
43
  * ],
43
44
  * });
44
45
  *
45
- * // Never record inputs/outputs regardless of sendDefaultPii
46
+ * // Never record inputs/outputs regardless of global dataCollection config
46
47
  * Sentry.init({
47
- * sendDefaultPii: true,
48
+ * dataCollection: { genAI: { inputs: true, outputs: true } },
48
49
  * integrations: [
49
50
  * Sentry.langGraphIntegration({
50
51
  * recordInputs: false,
@@ -1,6 +1,6 @@
1
- import { InstrumentationBase, InstrumentationConfig, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
1
+ import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
2
2
  export declare class LruMemoizerInstrumentation extends InstrumentationBase {
3
- constructor(config?: InstrumentationConfig);
3
+ constructor();
4
4
  init(): InstrumentationNodeModuleDefinition[];
5
5
  }
6
6
  //# sourceMappingURL=instrumentation.d.ts.map
@@ -21,18 +21,19 @@ export declare const instrumentOpenAi: ((options?: OpenAiOptions | undefined) =>
21
21
  *
22
22
  * ## Options
23
23
  *
24
- * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)
25
- * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)
24
+ * - `recordInputs`: Whether to record input messages/prompts (default: follows `dataCollection.genAI.inputs`, or the deprecated `sendDefaultPii` option)
25
+ * - `recordOutputs`: Whether to record response text (default: follows `dataCollection.genAI.outputs`, or the deprecated `sendDefaultPii` option)
26
26
  *
27
27
  * ### Default Behavior
28
28
  *
29
29
  * By default, the integration will:
30
- * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options
31
- * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled
30
+ * - Record inputs and outputs based on `dataCollection.genAI` in your Sentry client options
31
+ * (or the deprecated `sendDefaultPii` option, for backwards compatibility)
32
+ * - Integration-level `recordInputs`/`recordOutputs` options take precedence over global config
32
33
  *
33
34
  * @example
34
35
  * ```javascript
35
- * // Record inputs and outputs when sendDefaultPii is false
36
+ * // Always record inputs and outputs regardless of global dataCollection config
36
37
  * Sentry.init({
37
38
  * integrations: [
38
39
  * Sentry.openAIIntegration({
@@ -42,9 +43,9 @@ export declare const instrumentOpenAi: ((options?: OpenAiOptions | undefined) =>
42
43
  * ],
43
44
  * });
44
45
  *
45
- * // Never record inputs/outputs regardless of sendDefaultPii
46
+ * // Never record inputs/outputs regardless of global dataCollection config
46
47
  * Sentry.init({
47
- * sendDefaultPii: true,
48
+ * dataCollection: { genAI: { inputs: true, outputs: true } },
48
49
  * integrations: [
49
50
  * Sentry.openAIIntegration({
50
51
  * recordInputs: false,
@@ -17,7 +17,10 @@ interface RedisOptions {
17
17
  }
18
18
  export declare let _redisOptions: RedisOptions;
19
19
  export declare const cacheResponseHook: IORedisResponseCustomAttributeFunction;
20
- /** To be able to preload all Redis OTel instrumentations with just one ID ("Redis"), all the instrumentations are generated in this one function */
20
+ /**
21
+ * To be able to preload all Redis OTel instrumentations with just one ID
22
+ * ("Redis"), all the instrumentations are generated in this one function
23
+ */
21
24
  export declare const instrumentRedis: (() => void) & {
22
25
  id: string;
23
26
  };
@@ -22,9 +22,9 @@ export declare function cleanupToolCallSpanContexts(content: Array<object>): voi
22
22
  * 1. The vercel ai integration options
23
23
  * 2. The experimental_telemetry options in the vercel ai method calls
24
24
  * 3. When telemetry is explicitly enabled (isEnabled: true), default to recording
25
- * 4. Otherwise, use the sendDefaultPii option from client options
25
+ * 4. Otherwise, use the dataCollection.genAI settings from client options
26
26
  */
27
- export declare function determineRecordingSettings(integrationRecordingOptions: RecordingOptions | undefined, methodTelemetryOptions: RecordingOptions, telemetryExplicitlyEnabled: boolean | undefined, defaultRecordingEnabled: boolean): {
27
+ export declare function determineRecordingSettings(integrationRecordingOptions: RecordingOptions | undefined, methodTelemetryOptions: RecordingOptions, telemetryExplicitlyEnabled: boolean | undefined, defaultInputsEnabled: boolean, defaultOutputsEnabled: boolean): {
28
28
  recordInputs: boolean;
29
29
  recordOutputs: boolean;
30
30
  };
@@ -38,13 +38,15 @@ export type TelemetrySettings = {
38
38
  export declare type AttributeValue = string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>;
39
39
  export interface VercelAiOptions {
40
40
  /**
41
- * Enable or disable input recording. Enabled if `sendDefaultPii` is `true`
42
- * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings
41
+ * Enable or disable input recording. Enabled if `dataCollection.genAI.inputs` (or the deprecated `sendDefaultPii` option) is `true`
42
+ * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings.
43
+ * Integration-level options take precedence over global `dataCollection` config.
43
44
  */
44
45
  recordInputs?: boolean;
45
46
  /**
46
- * Enable or disable output recording. Enabled if `sendDefaultPii` is `true`
47
- * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings
47
+ * Enable or disable output recording. Enabled if `dataCollection.genAI.outputs` (or the deprecated `sendDefaultPii` option) is `true`
48
+ * or if you set `isEnabled` to `true` in your ai SDK method telemetry settings.
49
+ * Integration-level options take precedence over global `dataCollection` config.
48
50
  */
49
51
  recordOutputs?: boolean;
50
52
  /**
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Set the `http.route` attribute on the root HTTP server span for the current trace.
3
+ *
4
+ * No-op when there is no active span, no root span, or the root span is not an
5
+ * `http.server` span — so framework instrumentations can call this unconditionally
6
+ * without risking attribute pollution on non-HTTP root spans.
7
+ */
8
+ export declare function setHttpServerSpanRouteAttribute(route: string): void;
9
+ //# sourceMappingURL=setHttpServerSpanRouteAttribute.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/node",
3
- "version": "10.55.0",
3
+ "version": "10.57.0",
4
4
  "description": "Sentry Node SDK using OpenTelemetry for performance instrumentation",
5
5
  "repository": "git://github.com/getsentry/sentry-javascript.git",
6
6
  "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/node",
@@ -70,9 +70,10 @@
70
70
  "@opentelemetry/instrumentation": "^0.214.0",
71
71
  "@opentelemetry/sdk-trace-base": "^2.6.1",
72
72
  "@opentelemetry/semantic-conventions": "^1.40.0",
73
- "@sentry/core": "10.55.0",
74
- "@sentry/node-core": "10.55.0",
75
- "@sentry/opentelemetry": "10.55.0",
73
+ "@sentry-internal/server-utils": "10.57.0",
74
+ "@sentry/core": "10.57.0",
75
+ "@sentry/node-core": "10.57.0",
76
+ "@sentry/opentelemetry": "10.57.0",
76
77
  "import-in-the-middle": "^3.0.0"
77
78
  },
78
79
  "devDependencies": {
@@ -1,151 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
-
3
- const core = require('@sentry/core');
4
- const tracingChannel = require('@sentry/opentelemetry/tracing-channel');
5
- const redisCommon = require('./vendored/redis-common.js');
6
- const semconv = require('./vendored/semconv.js');
7
-
8
- const CHANNEL_COMMAND = "node-redis:command";
9
- const CHANNEL_BATCH = "node-redis:batch";
10
- const CHANNEL_CONNECT = "node-redis:connect";
11
- const ORIGIN = "auto.db.redis.diagnostic_channel";
12
- const NOOP = () => {
13
- };
14
- let subscribed = false;
15
- let currentResponseHook;
16
- function subscribeRedisDiagnosticChannels(responseHook) {
17
- currentResponseHook = responseHook;
18
- if (subscribed) return;
19
- try {
20
- setupCommandChannel();
21
- setupBatchChannel();
22
- setupConnectChannel();
23
- subscribed = true;
24
- } catch {
25
- }
26
- }
27
- function setupCommandChannel() {
28
- const channel = tracingChannel.tracingChannel(CHANNEL_COMMAND, (data) => {
29
- const actualArgs = data.args.slice(1);
30
- const statement = safeSerialize(data.command, actualArgs);
31
- return core.startSpanManual(
32
- {
33
- name: `redis-${data.command}`,
34
- attributes: {
35
- [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
36
- [core.SEMANTIC_ATTRIBUTE_SENTRY_OP]: "db.redis",
37
- [semconv.ATTR_DB_SYSTEM]: semconv.DB_SYSTEM_VALUE_REDIS,
38
- ...statement != null ? { [semconv.ATTR_DB_STATEMENT]: statement } : {},
39
- ...data.serverAddress != null ? { [semconv.ATTR_NET_PEER_NAME]: data.serverAddress } : {},
40
- ...data.serverPort != null ? { [semconv.ATTR_NET_PEER_PORT]: data.serverPort } : {}
41
- }
42
- },
43
- (span) => span
44
- );
45
- });
46
- channel.subscribe({
47
- start: NOOP,
48
- asyncStart: NOOP,
49
- end: NOOP,
50
- asyncEnd: (data) => {
51
- const span = data._sentrySpan;
52
- if (!span || data.error) return;
53
- runResponseHook(span, data.command, data.args.slice(1), data.result);
54
- span.end();
55
- },
56
- error: (data) => {
57
- const span = data._sentrySpan;
58
- if (!span) return;
59
- if (data.error) {
60
- span.setStatus({ code: core.SPAN_STATUS_ERROR, message: data.error.message });
61
- }
62
- span.end();
63
- }
64
- });
65
- }
66
- function setupBatchChannel() {
67
- const channel = tracingChannel.tracingChannel(CHANNEL_BATCH, (data) => {
68
- const operationName = data.batchMode === "PIPELINE" ? "PIPELINE" : "MULTI";
69
- return core.startSpanManual(
70
- {
71
- name: operationName,
72
- attributes: {
73
- [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
74
- [core.SEMANTIC_ATTRIBUTE_SENTRY_OP]: "db.redis",
75
- [semconv.ATTR_DB_SYSTEM]: semconv.DB_SYSTEM_VALUE_REDIS,
76
- ...data.batchSize != null ? { "db.redis.batch_size": data.batchSize } : {},
77
- ...data.serverAddress != null ? { [semconv.ATTR_NET_PEER_NAME]: data.serverAddress } : {},
78
- ...data.serverPort != null ? { [semconv.ATTR_NET_PEER_PORT]: data.serverPort } : {}
79
- }
80
- },
81
- (span) => span
82
- );
83
- });
84
- channel.subscribe({
85
- start: NOOP,
86
- asyncStart: NOOP,
87
- end: NOOP,
88
- asyncEnd: (data) => {
89
- if (!data.error) data._sentrySpan?.end();
90
- },
91
- error: (data) => {
92
- const span = data._sentrySpan;
93
- if (!span) return;
94
- if (data.error) {
95
- span.setStatus({ code: core.SPAN_STATUS_ERROR, message: data.error.message });
96
- }
97
- span.end();
98
- }
99
- });
100
- }
101
- function setupConnectChannel() {
102
- const channel = tracingChannel.tracingChannel(CHANNEL_CONNECT, (data) => {
103
- return core.startSpanManual(
104
- {
105
- name: "redis-connect",
106
- attributes: {
107
- [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
108
- [core.SEMANTIC_ATTRIBUTE_SENTRY_OP]: "db.redis.connect",
109
- [semconv.ATTR_DB_SYSTEM]: semconv.DB_SYSTEM_VALUE_REDIS,
110
- ...data.serverAddress != null ? { [semconv.ATTR_NET_PEER_NAME]: data.serverAddress } : {},
111
- ...data.serverPort != null ? { [semconv.ATTR_NET_PEER_PORT]: data.serverPort } : {}
112
- }
113
- },
114
- (span) => span
115
- );
116
- });
117
- channel.subscribe({
118
- start: NOOP,
119
- asyncStart: NOOP,
120
- end: NOOP,
121
- asyncEnd: (data) => {
122
- if (!data.error) data._sentrySpan?.end();
123
- },
124
- error: (data) => {
125
- const span = data._sentrySpan;
126
- if (!span) return;
127
- if (data.error) {
128
- span.setStatus({ code: core.SPAN_STATUS_ERROR, message: data.error.message });
129
- }
130
- span.end();
131
- }
132
- });
133
- }
134
- function runResponseHook(span, command, args, result) {
135
- const hook = currentResponseHook;
136
- if (!hook) return;
137
- try {
138
- hook(span, command, args, result);
139
- } catch {
140
- }
141
- }
142
- function safeSerialize(command, args) {
143
- try {
144
- return redisCommon.defaultDbStatementSerializer(command, args);
145
- } catch {
146
- return void 0;
147
- }
148
- }
149
-
150
- exports.subscribeRedisDiagnosticChannels = subscribeRedisDiagnosticChannels;
151
- //# sourceMappingURL=redis-dc-subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis-dc-subscriber.js","sources":["../../../../../src/integrations/tracing/redis/redis-dc-subscriber.ts"],"sourcesContent":["import type { Span } from '@opentelemetry/api';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startSpanManual,\n} from '@sentry/core';\nimport { tracingChannel, type TracingChannelContextWithSpan } from '@sentry/opentelemetry/tracing-channel';\nimport { defaultDbStatementSerializer } from './vendored/redis-common';\nimport {\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n DB_SYSTEM_VALUE_REDIS,\n} from './vendored/semconv';\nimport type { IORedisInstrumentationConfig } from './vendored/types';\n\n// Channel names as published by node-redis >= 5.12.0.\n// Hardcoded so we don't import `redis` at module-load time.\nconst CHANNEL_COMMAND = 'node-redis:command';\nconst CHANNEL_BATCH = 'node-redis:batch';\nconst CHANNEL_CONNECT = 'node-redis:connect';\n\nconst ORIGIN = 'auto.db.redis.diagnostic_channel';\n\ninterface CommandData {\n command: string;\n args: Array<string | Buffer>;\n database?: number;\n serverAddress?: string;\n serverPort?: number;\n result?: unknown;\n error?: Error;\n}\n\ninterface BatchData {\n batchMode?: 'MULTI' | 'PIPELINE';\n batchSize?: number;\n database?: number;\n clientId?: string | number;\n serverAddress?: string;\n serverPort?: number;\n result?: unknown[];\n error?: Error;\n}\n\ninterface ConnectData {\n serverAddress?: string;\n serverPort?: number;\n url?: string;\n error?: Error;\n}\n\nconst NOOP = (): void => {};\n\nlet subscribed = false;\nlet currentResponseHook: IORedisInstrumentationConfig['responseHook'] | undefined;\n\n/**\n * Subscribe Sentry handlers to node-redis diagnostics_channel events (>= 5.12.0).\n *\n * Uses `@sentry/opentelemetry/tracing-channel` so OTel AsyncLocalStorage context propagates\n * automatically via `bindStore` — without it, spans created in `start` would not become\n * the active context for subsequent operations.\n *\n * Safe on every runtime that exposes `node:diagnostics_channel` (Node, Bun, Deno, Workers).\n * In node-redis < 5.12.0 the channels are never published to, so subscribers are inert and\n * there is no double-instrumentation against the IITM-based patcher (gated to < 5.12.0).\n */\nexport function subscribeRedisDiagnosticChannels(responseHook?: IORedisInstrumentationConfig['responseHook']): void {\n currentResponseHook = responseHook;\n if (subscribed) return;\n\n try {\n setupCommandChannel();\n setupBatchChannel();\n setupConnectChannel();\n subscribed = true;\n } catch {\n // tracingChannel from @sentry/opentelemetry requires `node:diagnostics_channel`.\n // On runtimes where it isn't available, fail closed.\n }\n}\n\nfunction setupCommandChannel(): void {\n const channel = tracingChannel<CommandData>(CHANNEL_COMMAND, data => {\n // node-redis >= 5.12.0 includes the command name as args[0] in the DC payload.\n // Strip it so serialization and cache key extraction see only the actual arguments.\n const actualArgs = data.args.slice(1);\n const statement = safeSerialize(data.command, actualArgs);\n return startSpanManual(\n {\n name: `redis-${data.command}`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'db.redis',\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n ...(statement != null ? { [ATTR_DB_STATEMENT]: statement } : {}),\n ...(data.serverAddress != null ? { [ATTR_NET_PEER_NAME]: data.serverAddress } : {}),\n ...(data.serverPort != null ? { [ATTR_NET_PEER_PORT]: data.serverPort } : {}),\n },\n },\n span => span,\n ) as Span;\n });\n\n channel.subscribe({\n start: NOOP,\n asyncStart: NOOP,\n end: NOOP,\n asyncEnd: data => {\n const span = data._sentrySpan;\n // only end if error handler isn't going to\n if (!span || data.error) return;\n // Same slice: strip command name from args before passing to the response hook.\n runResponseHook(span, data.command, data.args.slice(1), data.result);\n span.end();\n },\n error: data => {\n const span = data._sentrySpan;\n if (!span) return;\n if (data.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: data.error.message });\n }\n span.end();\n },\n });\n}\n\nfunction setupBatchChannel(): void {\n const channel = tracingChannel<BatchData>(CHANNEL_BATCH, data => {\n const operationName = data.batchMode === 'PIPELINE' ? 'PIPELINE' : 'MULTI';\n\n return startSpanManual(\n {\n name: operationName,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'db.redis',\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n ...(data.batchSize != null ? { 'db.redis.batch_size': data.batchSize } : {}),\n ...(data.serverAddress != null ? { [ATTR_NET_PEER_NAME]: data.serverAddress } : {}),\n ...(data.serverPort != null ? { [ATTR_NET_PEER_PORT]: data.serverPort } : {}),\n },\n },\n span => span,\n ) as Span;\n });\n\n channel.subscribe({\n start: NOOP,\n asyncStart: NOOP,\n end: NOOP,\n asyncEnd: data => {\n // only end if the error handler isn't going to\n if (!data.error) data._sentrySpan?.end();\n },\n error: data => {\n const span = data._sentrySpan;\n if (!span) return;\n if (data.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: data.error.message });\n }\n span.end();\n },\n });\n}\n\nfunction setupConnectChannel(): void {\n const channel = tracingChannel<ConnectData>(CHANNEL_CONNECT, data => {\n return startSpanManual(\n {\n name: 'redis-connect',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'db.redis.connect',\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n ...(data.serverAddress != null ? { [ATTR_NET_PEER_NAME]: data.serverAddress } : {}),\n ...(data.serverPort != null ? { [ATTR_NET_PEER_PORT]: data.serverPort } : {}),\n },\n },\n span => span,\n ) as Span;\n });\n\n channel.subscribe({\n start: NOOP,\n asyncStart: NOOP,\n end: NOOP,\n asyncEnd: data => {\n // only end if the error handler isn't going to\n if (!data.error) data._sentrySpan?.end();\n },\n error: data => {\n const span = data._sentrySpan;\n if (!span) return;\n if (data.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: data.error.message });\n }\n span.end();\n },\n });\n}\n\nfunction runResponseHook(span: Span, command: string, args: Array<string | Buffer>, result: unknown): void {\n const hook = currentResponseHook;\n if (!hook) return;\n try {\n hook(span, command, args as unknown as Parameters<typeof hook>[2], result);\n } catch {\n // never let user hooks break instrumentation\n }\n}\n\nfunction safeSerialize(command: string, args: Array<string | Buffer>): string | undefined {\n try {\n return defaultDbStatementSerializer(command, args);\n } catch {\n return undefined;\n }\n}\n\n// Test-only helper.\nexport function _resetRedisDiagnosticChannelsForTesting(): void {\n subscribed = false;\n currentResponseHook = undefined;\n}\n\n// Suppress unused-import lint when only used in types.\nexport type { TracingChannelContextWithSpan };\n"],"names":["tracingChannel","startSpanManual","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_OP","ATTR_DB_SYSTEM","DB_SYSTEM_VALUE_REDIS","ATTR_DB_STATEMENT","ATTR_NET_PEER_NAME","ATTR_NET_PEER_PORT","SPAN_STATUS_ERROR","defaultDbStatementSerializer"],"mappings":"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"}