@sentry/node 10.58.0 → 10.60.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 (561) hide show
  1. package/build/cjs/index.js +3 -0
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/cjs/integrations/fs/index.js +3 -84
  4. package/build/cjs/integrations/fs/index.js.map +1 -1
  5. package/build/cjs/integrations/fs/vendored/constants.js.map +1 -1
  6. package/build/cjs/integrations/fs/vendored/instrumentation.js +145 -175
  7. package/build/cjs/integrations/fs/vendored/instrumentation.js.map +1 -1
  8. package/build/cjs/integrations/fs/vendored/utils.js.map +1 -1
  9. package/build/cjs/integrations/node-fetch/index.js +7 -8
  10. package/build/cjs/integrations/node-fetch/index.js.map +1 -1
  11. package/build/cjs/integrations/node-fetch/vendored/semconv.js +28 -0
  12. package/build/cjs/integrations/node-fetch/vendored/semconv.js.map +1 -0
  13. package/build/cjs/integrations/node-fetch/vendored/undici.js +91 -127
  14. package/build/cjs/integrations/node-fetch/vendored/undici.js.map +1 -1
  15. package/build/cjs/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
  16. package/build/cjs/integrations/tracing/amqplib/vendored/semconv-obsolete.js.map +1 -1
  17. package/build/cjs/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
  18. package/build/cjs/integrations/tracing/amqplib/vendored/types.js.map +1 -1
  19. package/build/cjs/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
  20. package/build/cjs/integrations/tracing/connect/index.js +0 -21
  21. package/build/cjs/integrations/tracing/connect/index.js.map +1 -1
  22. package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js +0 -6
  23. package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -1
  24. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js +33 -42
  25. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
  26. package/build/cjs/integrations/tracing/connect/vendored/internal-types.js.map +1 -1
  27. package/build/cjs/integrations/tracing/connect/vendored/utils.js +3 -2
  28. package/build/cjs/integrations/tracing/connect/vendored/utils.js.map +1 -1
  29. package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
  30. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js +1 -1
  31. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  32. package/build/cjs/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
  33. package/build/cjs/integrations/tracing/genericPool/index.js +1 -15
  34. package/build/cjs/integrations/tracing/genericPool/index.js.map +1 -1
  35. package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js +30 -18
  36. package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -1
  37. package/build/cjs/integrations/tracing/graphql/index.js +1 -51
  38. package/build/cjs/integrations/tracing/graphql/index.js.map +1 -1
  39. package/build/cjs/integrations/tracing/graphql/vendored/enum.js.map +1 -1
  40. package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js +0 -2
  41. package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -1
  42. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js +67 -57
  43. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
  44. package/build/cjs/integrations/tracing/graphql/vendored/internal-types.js.map +1 -1
  45. package/build/cjs/integrations/tracing/graphql/vendored/symbols.js.map +1 -1
  46. package/build/cjs/integrations/tracing/graphql/vendored/utils.js +28 -62
  47. package/build/cjs/integrations/tracing/graphql/vendored/utils.js.map +1 -1
  48. package/build/cjs/integrations/tracing/hapi/index.js +0 -17
  49. package/build/cjs/integrations/tracing/hapi/index.js.map +1 -1
  50. package/build/cjs/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -1
  51. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js +28 -45
  52. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
  53. package/build/cjs/integrations/tracing/hapi/vendored/internal-types.js.map +1 -1
  54. package/build/cjs/integrations/tracing/hapi/vendored/semconv.js.map +1 -1
  55. package/build/cjs/integrations/tracing/hapi/vendored/utils.js +4 -9
  56. package/build/cjs/integrations/tracing/hapi/vendored/utils.js.map +1 -1
  57. package/build/cjs/integrations/tracing/index.js +1 -0
  58. package/build/cjs/integrations/tracing/index.js.map +1 -1
  59. package/build/cjs/integrations/tracing/kafka/index.js +1 -11
  60. package/build/cjs/integrations/tracing/kafka/index.js.map +1 -1
  61. package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js +45 -247
  62. package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
  63. package/build/cjs/integrations/tracing/kafka/vendored/semconv.js +4 -8
  64. package/build/cjs/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
  65. package/build/cjs/integrations/tracing/kafka/vendored/utils.js +113 -0
  66. package/build/cjs/integrations/tracing/kafka/vendored/utils.js.map +1 -0
  67. package/build/cjs/integrations/tracing/knex/index.js +2 -17
  68. package/build/cjs/integrations/tracing/knex/index.js.map +1 -1
  69. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js +65 -93
  70. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  71. package/build/cjs/integrations/tracing/knex/vendored/semconv.js +2 -0
  72. package/build/cjs/integrations/tracing/knex/vendored/semconv.js.map +1 -1
  73. package/build/cjs/integrations/tracing/knex/vendored/utils.js +2 -15
  74. package/build/cjs/integrations/tracing/knex/vendored/utils.js.map +1 -1
  75. package/build/cjs/integrations/tracing/koa/index.js +1 -24
  76. package/build/cjs/integrations/tracing/koa/index.js.map +1 -1
  77. package/build/cjs/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -1
  78. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js +29 -41
  79. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
  80. package/build/cjs/integrations/tracing/koa/vendored/internal-types.js.map +1 -1
  81. package/build/cjs/integrations/tracing/koa/vendored/types.js.map +1 -1
  82. package/build/cjs/integrations/tracing/koa/vendored/utils.js.map +1 -1
  83. package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
  84. package/build/cjs/integrations/tracing/mongo/index.js +1 -42
  85. package/build/cjs/integrations/tracing/mongo/index.js.map +1 -1
  86. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js +12 -562
  87. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
  88. package/build/cjs/integrations/tracing/mongo/vendored/internal-types.js.map +1 -1
  89. package/build/cjs/integrations/tracing/mongo/vendored/patches.js +151 -0
  90. package/build/cjs/integrations/tracing/mongo/vendored/patches.js.map +1 -0
  91. package/build/cjs/integrations/tracing/mongo/vendored/semconv.js +0 -4
  92. package/build/cjs/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
  93. package/build/cjs/integrations/tracing/mongo/vendored/utils.js +153 -0
  94. package/build/cjs/integrations/tracing/mongo/vendored/utils.js.map +1 -0
  95. package/build/cjs/integrations/tracing/mongoose/index.js +1 -8
  96. package/build/cjs/integrations/tracing/mongoose/index.js.map +1 -1
  97. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js +56 -203
  98. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
  99. package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js +0 -4
  100. package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
  101. package/build/cjs/integrations/tracing/mongoose/vendored/utils.js +19 -49
  102. package/build/cjs/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
  103. package/build/cjs/integrations/tracing/mysql/vendored/AttributeNames.js.map +1 -1
  104. package/build/cjs/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
  105. package/build/cjs/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
  106. package/build/cjs/integrations/tracing/mysql/vendored/utils.js.map +1 -1
  107. package/build/cjs/integrations/tracing/mysql2/index.js +1 -8
  108. package/build/cjs/integrations/tracing/mysql2/index.js.map +1 -1
  109. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js +21 -59
  110. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  111. package/build/cjs/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
  112. package/build/cjs/integrations/tracing/mysql2/vendored/utils.js +14 -33
  113. package/build/cjs/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
  114. package/build/cjs/integrations/tracing/postgres/index.js +0 -4
  115. package/build/cjs/integrations/tracing/postgres/index.js.map +1 -1
  116. package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js +0 -1
  117. package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -1
  118. package/build/cjs/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -1
  119. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js +51 -261
  120. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  121. package/build/cjs/integrations/tracing/postgres/vendored/semconv.js +0 -12
  122. package/build/cjs/integrations/tracing/postgres/vendored/semconv.js.map +1 -1
  123. package/build/cjs/integrations/tracing/postgres/vendored/utils.js +43 -167
  124. package/build/cjs/integrations/tracing/postgres/vendored/utils.js.map +1 -1
  125. package/build/cjs/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +1 -1
  126. package/build/cjs/integrations/tracing/prisma/vendored/constants.js.map +1 -1
  127. package/build/cjs/integrations/tracing/prisma/vendored/global.js.map +1 -1
  128. package/build/cjs/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
  129. package/build/cjs/integrations/tracing/redis/index.js.map +1 -1
  130. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js +89 -160
  131. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  132. package/build/cjs/integrations/tracing/redis/vendored/redis-common.js.map +1 -1
  133. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js +92 -231
  134. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  135. package/build/cjs/integrations/tracing/redis/vendored/semconv.js +0 -2
  136. package/build/cjs/integrations/tracing/redis/vendored/semconv.js.map +1 -1
  137. package/build/cjs/integrations/tracing/tedious/index.js +1 -25
  138. package/build/cjs/integrations/tracing/tedious/index.js.map +1 -1
  139. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js +25 -76
  140. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
  141. package/build/cjs/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
  142. package/build/cjs/integrations/tracing/tedious/vendored/utils.js.map +1 -1
  143. package/build/cjs/sdk/diagnosticsChannelInjection.js +21 -0
  144. package/build/cjs/sdk/diagnosticsChannelInjection.js.map +1 -0
  145. package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js +19 -0
  146. package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
  147. package/build/cjs/sdk/index.js +17 -1
  148. package/build/cjs/sdk/index.js.map +1 -1
  149. package/build/cjs/sdk/initOtel.js +2 -1
  150. package/build/cjs/sdk/initOtel.js.map +1 -1
  151. package/build/esm/index.js +2 -1
  152. package/build/esm/index.js.map +1 -1
  153. package/build/esm/integrations/fs/index.js +4 -85
  154. package/build/esm/integrations/fs/index.js.map +1 -1
  155. package/build/esm/integrations/fs/vendored/constants.js.map +1 -1
  156. package/build/esm/integrations/fs/vendored/instrumentation.js +147 -177
  157. package/build/esm/integrations/fs/vendored/instrumentation.js.map +1 -1
  158. package/build/esm/integrations/fs/vendored/utils.js.map +1 -1
  159. package/build/esm/integrations/node-fetch/index.js +8 -9
  160. package/build/esm/integrations/node-fetch/index.js.map +1 -1
  161. package/build/esm/integrations/node-fetch/vendored/semconv.js +15 -0
  162. package/build/esm/integrations/node-fetch/vendored/semconv.js.map +1 -0
  163. package/build/esm/integrations/node-fetch/vendored/undici.js +80 -116
  164. package/build/esm/integrations/node-fetch/vendored/undici.js.map +1 -1
  165. package/build/esm/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
  166. package/build/esm/integrations/tracing/amqplib/vendored/semconv-obsolete.js.map +1 -1
  167. package/build/esm/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
  168. package/build/esm/integrations/tracing/amqplib/vendored/types.js.map +1 -1
  169. package/build/esm/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
  170. package/build/esm/integrations/tracing/connect/index.js +1 -22
  171. package/build/esm/integrations/tracing/connect/index.js.map +1 -1
  172. package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js +1 -6
  173. package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -1
  174. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js +36 -44
  175. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
  176. package/build/esm/integrations/tracing/connect/vendored/internal-types.js.map +1 -1
  177. package/build/esm/integrations/tracing/connect/vendored/utils.js +3 -2
  178. package/build/esm/integrations/tracing/connect/vendored/utils.js.map +1 -1
  179. package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
  180. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js +1 -1
  181. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  182. package/build/esm/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
  183. package/build/esm/integrations/tracing/genericPool/index.js +3 -17
  184. package/build/esm/integrations/tracing/genericPool/index.js.map +1 -1
  185. package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js +31 -19
  186. package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -1
  187. package/build/esm/integrations/tracing/graphql/index.js +3 -53
  188. package/build/esm/integrations/tracing/graphql/index.js.map +1 -1
  189. package/build/esm/integrations/tracing/graphql/vendored/enum.js.map +1 -1
  190. package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js +0 -2
  191. package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -1
  192. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js +69 -59
  193. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
  194. package/build/esm/integrations/tracing/graphql/vendored/internal-types.js.map +1 -1
  195. package/build/esm/integrations/tracing/graphql/vendored/symbols.js.map +1 -1
  196. package/build/esm/integrations/tracing/graphql/vendored/utils.js +29 -62
  197. package/build/esm/integrations/tracing/graphql/vendored/utils.js.map +1 -1
  198. package/build/esm/integrations/tracing/hapi/index.js +1 -18
  199. package/build/esm/integrations/tracing/hapi/index.js.map +1 -1
  200. package/build/esm/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -1
  201. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js +30 -47
  202. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
  203. package/build/esm/integrations/tracing/hapi/vendored/internal-types.js.map +1 -1
  204. package/build/esm/integrations/tracing/hapi/vendored/semconv.js.map +1 -1
  205. package/build/esm/integrations/tracing/hapi/vendored/utils.js +5 -10
  206. package/build/esm/integrations/tracing/hapi/vendored/utils.js.map +1 -1
  207. package/build/esm/integrations/tracing/index.js +1 -0
  208. package/build/esm/integrations/tracing/index.js.map +1 -1
  209. package/build/esm/integrations/tracing/kafka/index.js +2 -12
  210. package/build/esm/integrations/tracing/kafka/index.js.map +1 -1
  211. package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js +47 -249
  212. package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
  213. package/build/esm/integrations/tracing/kafka/vendored/semconv.js +3 -5
  214. package/build/esm/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
  215. package/build/esm/integrations/tracing/kafka/vendored/utils.js +107 -0
  216. package/build/esm/integrations/tracing/kafka/vendored/utils.js.map +1 -0
  217. package/build/esm/integrations/tracing/knex/index.js +4 -19
  218. package/build/esm/integrations/tracing/knex/index.js.map +1 -1
  219. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js +66 -94
  220. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  221. package/build/esm/integrations/tracing/knex/vendored/semconv.js +2 -1
  222. package/build/esm/integrations/tracing/knex/vendored/semconv.js.map +1 -1
  223. package/build/esm/integrations/tracing/knex/vendored/utils.js +3 -15
  224. package/build/esm/integrations/tracing/knex/vendored/utils.js.map +1 -1
  225. package/build/esm/integrations/tracing/koa/index.js +3 -26
  226. package/build/esm/integrations/tracing/koa/index.js.map +1 -1
  227. package/build/esm/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -1
  228. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js +31 -43
  229. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
  230. package/build/esm/integrations/tracing/koa/vendored/internal-types.js.map +1 -1
  231. package/build/esm/integrations/tracing/koa/vendored/types.js.map +1 -1
  232. package/build/esm/integrations/tracing/koa/vendored/utils.js.map +1 -1
  233. package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
  234. package/build/esm/integrations/tracing/mongo/index.js +3 -43
  235. package/build/esm/integrations/tracing/mongo/index.js.map +1 -1
  236. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js +13 -563
  237. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
  238. package/build/esm/integrations/tracing/mongo/vendored/internal-types.js.map +1 -1
  239. package/build/esm/integrations/tracing/mongo/vendored/patches.js +143 -0
  240. package/build/esm/integrations/tracing/mongo/vendored/patches.js.map +1 -0
  241. package/build/esm/integrations/tracing/mongo/vendored/semconv.js +1 -3
  242. package/build/esm/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
  243. package/build/esm/integrations/tracing/mongo/vendored/utils.js +146 -0
  244. package/build/esm/integrations/tracing/mongo/vendored/utils.js.map +1 -0
  245. package/build/esm/integrations/tracing/mongoose/index.js +2 -9
  246. package/build/esm/integrations/tracing/mongoose/index.js.map +1 -1
  247. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js +59 -206
  248. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
  249. package/build/esm/integrations/tracing/mongoose/vendored/semconv.js +1 -3
  250. package/build/esm/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
  251. package/build/esm/integrations/tracing/mongoose/vendored/utils.js +20 -50
  252. package/build/esm/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
  253. package/build/esm/integrations/tracing/mysql/vendored/AttributeNames.js.map +1 -1
  254. package/build/esm/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
  255. package/build/esm/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
  256. package/build/esm/integrations/tracing/mysql/vendored/utils.js.map +1 -1
  257. package/build/esm/integrations/tracing/mysql2/index.js +2 -9
  258. package/build/esm/integrations/tracing/mysql2/index.js.map +1 -1
  259. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js +26 -64
  260. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  261. package/build/esm/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
  262. package/build/esm/integrations/tracing/mysql2/vendored/utils.js +15 -34
  263. package/build/esm/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
  264. package/build/esm/integrations/tracing/postgres/index.js +1 -5
  265. package/build/esm/integrations/tracing/postgres/index.js.map +1 -1
  266. package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js +0 -1
  267. package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -1
  268. package/build/esm/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -1
  269. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js +52 -262
  270. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  271. package/build/esm/integrations/tracing/postgres/vendored/semconv.js +1 -7
  272. package/build/esm/integrations/tracing/postgres/vendored/semconv.js.map +1 -1
  273. package/build/esm/integrations/tracing/postgres/vendored/utils.js +44 -165
  274. package/build/esm/integrations/tracing/postgres/vendored/utils.js.map +1 -1
  275. package/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +1 -1
  276. package/build/esm/integrations/tracing/prisma/vendored/constants.js.map +1 -1
  277. package/build/esm/integrations/tracing/prisma/vendored/global.js.map +1 -1
  278. package/build/esm/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
  279. package/build/esm/integrations/tracing/redis/index.js.map +1 -1
  280. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js +92 -163
  281. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  282. package/build/esm/integrations/tracing/redis/vendored/redis-common.js.map +1 -1
  283. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js +94 -233
  284. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  285. package/build/esm/integrations/tracing/redis/vendored/semconv.js +1 -2
  286. package/build/esm/integrations/tracing/redis/vendored/semconv.js.map +1 -1
  287. package/build/esm/integrations/tracing/tedious/index.js +3 -27
  288. package/build/esm/integrations/tracing/tedious/index.js.map +1 -1
  289. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js +29 -79
  290. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
  291. package/build/esm/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
  292. package/build/esm/integrations/tracing/tedious/vendored/utils.js.map +1 -1
  293. package/build/esm/package.json +1 -1
  294. package/build/esm/sdk/diagnosticsChannelInjection.js +17 -0
  295. package/build/esm/sdk/diagnosticsChannelInjection.js.map +1 -0
  296. package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js +17 -0
  297. package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
  298. package/build/esm/sdk/index.js +17 -1
  299. package/build/esm/sdk/index.js.map +1 -1
  300. package/build/esm/sdk/initOtel.js +2 -1
  301. package/build/esm/sdk/initOtel.js.map +1 -1
  302. package/build/import-hook.mjs +6 -0
  303. package/build/types/index.d.ts +2 -1
  304. package/build/types/index.d.ts.map +1 -1
  305. package/build/types/integrations/fs/index.d.ts.map +1 -1
  306. package/build/types/integrations/fs/vendored/constants.d.ts.map +1 -1
  307. package/build/types/integrations/fs/vendored/instrumentation.d.ts +6 -10
  308. package/build/types/integrations/fs/vendored/instrumentation.d.ts.map +1 -1
  309. package/build/types/integrations/fs/vendored/types.d.ts +10 -15
  310. package/build/types/integrations/fs/vendored/types.d.ts.map +1 -1
  311. package/build/types/integrations/fs/vendored/utils.d.ts +2 -2
  312. package/build/types/integrations/fs/vendored/utils.d.ts.map +1 -1
  313. package/build/types/integrations/node-fetch/index.d.ts.map +1 -1
  314. package/build/types/integrations/node-fetch/vendored/internal-types.d.ts.map +1 -1
  315. package/build/types/integrations/node-fetch/vendored/semconv.d.ts +13 -0
  316. package/build/types/integrations/node-fetch/vendored/semconv.d.ts.map +1 -0
  317. package/build/types/integrations/node-fetch/vendored/types.d.ts +2 -4
  318. package/build/types/integrations/node-fetch/vendored/types.d.ts.map +1 -1
  319. package/build/types/integrations/node-fetch/vendored/undici.d.ts +6 -7
  320. package/build/types/integrations/node-fetch/vendored/undici.d.ts.map +1 -1
  321. package/build/types/integrations/tracing/amqplib/vendored/amqplib.d.ts.map +1 -1
  322. package/build/types/integrations/tracing/amqplib/vendored/semconv-obsolete.d.ts.map +1 -1
  323. package/build/types/integrations/tracing/amqplib/vendored/semconv.d.ts.map +1 -1
  324. package/build/types/integrations/tracing/amqplib/vendored/types.d.ts.map +1 -1
  325. package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts.map +1 -1
  326. package/build/types/integrations/tracing/connect/index.d.ts.map +1 -1
  327. package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +0 -4
  328. package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts.map +1 -1
  329. package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts +5 -5
  330. package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts.map +1 -1
  331. package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts +2 -2
  332. package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts.map +1 -1
  333. package/build/types/integrations/tracing/connect/vendored/utils.d.ts +1 -1
  334. package/build/types/integrations/tracing/connect/vendored/utils.d.ts.map +1 -1
  335. package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts.map +1 -1
  336. package/build/types/integrations/tracing/dataloader/vendored/types.d.ts.map +1 -1
  337. package/build/types/integrations/tracing/fastify/vendored/instrumentation.d.ts.map +1 -1
  338. package/build/types/integrations/tracing/genericPool/index.d.ts.map +1 -1
  339. package/build/types/integrations/tracing/genericPool/vendored/instrumentation.d.ts.map +1 -1
  340. package/build/types/integrations/tracing/graphql/index.d.ts.map +1 -1
  341. package/build/types/integrations/tracing/graphql/vendored/enum.d.ts.map +1 -1
  342. package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +1 -3
  343. package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts.map +1 -1
  344. package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts +7 -2
  345. package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts.map +1 -1
  346. package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts +4 -4
  347. package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts.map +1 -1
  348. package/build/types/integrations/tracing/graphql/vendored/symbols.d.ts.map +1 -1
  349. package/build/types/integrations/tracing/graphql/vendored/types.d.ts +5 -43
  350. package/build/types/integrations/tracing/graphql/vendored/types.d.ts.map +1 -1
  351. package/build/types/integrations/tracing/graphql/vendored/utils.d.ts +8 -11
  352. package/build/types/integrations/tracing/graphql/vendored/utils.d.ts.map +1 -1
  353. package/build/types/integrations/tracing/hapi/index.d.ts.map +1 -1
  354. package/build/types/integrations/tracing/hapi/vendored/enums/AttributeNames.d.ts.map +1 -1
  355. package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts +2 -2
  356. package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts.map +1 -1
  357. package/build/types/integrations/tracing/hapi/vendored/internal-types.d.ts.map +1 -1
  358. package/build/types/integrations/tracing/hapi/vendored/semconv.d.ts.map +1 -1
  359. package/build/types/integrations/tracing/hapi/vendored/utils.d.ts +3 -4
  360. package/build/types/integrations/tracing/hapi/vendored/utils.d.ts.map +1 -1
  361. package/build/types/integrations/tracing/index.d.ts.map +1 -1
  362. package/build/types/integrations/tracing/kafka/index.d.ts.map +1 -1
  363. package/build/types/integrations/tracing/kafka/vendored/instrumentation.d.ts +3 -13
  364. package/build/types/integrations/tracing/kafka/vendored/instrumentation.d.ts.map +1 -1
  365. package/build/types/integrations/tracing/kafka/vendored/kafkajs-types.d.ts +0 -32
  366. package/build/types/integrations/tracing/kafka/vendored/kafkajs-types.d.ts.map +1 -1
  367. package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts +9 -28
  368. package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts.map +1 -1
  369. package/build/types/integrations/tracing/kafka/vendored/utils.d.ts +29 -0
  370. package/build/types/integrations/tracing/kafka/vendored/utils.d.ts.map +1 -0
  371. package/build/types/integrations/tracing/knex/index.d.ts.map +1 -1
  372. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts +8 -10
  373. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts.map +1 -1
  374. package/build/types/integrations/tracing/knex/vendored/semconv.d.ts +1 -0
  375. package/build/types/integrations/tracing/knex/vendored/semconv.d.ts.map +1 -1
  376. package/build/types/integrations/tracing/knex/vendored/utils.d.ts +0 -6
  377. package/build/types/integrations/tracing/knex/vendored/utils.d.ts.map +1 -1
  378. package/build/types/integrations/tracing/koa/index.d.ts.map +1 -1
  379. package/build/types/integrations/tracing/koa/vendored/enums/AttributeNames.d.ts.map +1 -1
  380. package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts +1 -1
  381. package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts.map +1 -1
  382. package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts +4 -4
  383. package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts.map +1 -1
  384. package/build/types/integrations/tracing/koa/vendored/types.d.ts +2 -39
  385. package/build/types/integrations/tracing/koa/vendored/types.d.ts.map +1 -1
  386. package/build/types/integrations/tracing/koa/vendored/utils.d.ts +3 -3
  387. package/build/types/integrations/tracing/koa/vendored/utils.d.ts.map +1 -1
  388. package/build/types/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts.map +1 -1
  389. package/build/types/integrations/tracing/mongo/index.d.ts +0 -4
  390. package/build/types/integrations/tracing/mongo/index.d.ts.map +1 -1
  391. package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts +4 -72
  392. package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts.map +1 -1
  393. package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts +0 -59
  394. package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts.map +1 -1
  395. package/build/types/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
  396. package/build/types/integrations/tracing/mongo/vendored/patches.d.ts.map +1 -0
  397. package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts +0 -54
  398. package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts.map +1 -1
  399. package/build/types/integrations/tracing/mongo/vendored/utils.d.ts +24 -0
  400. package/build/types/integrations/tracing/mongo/vendored/utils.d.ts.map +1 -0
  401. package/build/types/integrations/tracing/mongoose/index.d.ts.map +1 -1
  402. package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +3 -0
  403. package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts.map +1 -1
  404. package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts +3 -8
  405. package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts.map +1 -1
  406. package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -14
  407. package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts.map +1 -1
  408. package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts +4 -6
  409. package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts.map +1 -1
  410. package/build/types/integrations/tracing/mysql/vendored/AttributeNames.d.ts.map +1 -1
  411. package/build/types/integrations/tracing/mysql/vendored/instrumentation.d.ts.map +1 -1
  412. package/build/types/integrations/tracing/mysql/vendored/mysql-types.d.ts.map +1 -1
  413. package/build/types/integrations/tracing/mysql/vendored/semconv.d.ts.map +1 -1
  414. package/build/types/integrations/tracing/mysql/vendored/types.d.ts.map +1 -1
  415. package/build/types/integrations/tracing/mysql/vendored/utils.d.ts.map +1 -1
  416. package/build/types/integrations/tracing/mysql2/index.d.ts.map +1 -1
  417. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts +3 -6
  418. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts.map +1 -1
  419. package/build/types/integrations/tracing/mysql2/vendored/semconv.d.ts.map +1 -1
  420. package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts +3 -5
  421. package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts.map +1 -1
  422. package/build/types/integrations/tracing/postgres/index.d.ts.map +1 -1
  423. package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +0 -1
  424. package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts.map +1 -1
  425. package/build/types/integrations/tracing/postgres/vendored/enums/SpanNames.d.ts.map +1 -1
  426. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts +1 -9
  427. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts.map +1 -1
  428. package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts +0 -2
  429. package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts.map +1 -1
  430. package/build/types/integrations/tracing/postgres/vendored/pg-pool-types.d.ts.map +1 -1
  431. package/build/types/integrations/tracing/postgres/vendored/pg-types.d.ts.map +1 -1
  432. package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts +0 -50
  433. package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts.map +1 -1
  434. package/build/types/integrations/tracing/postgres/vendored/types.d.ts +2 -56
  435. package/build/types/integrations/tracing/postgres/vendored/types.d.ts.map +1 -1
  436. package/build/types/integrations/tracing/postgres/vendored/utils.d.ts +13 -26
  437. package/build/types/integrations/tracing/postgres/vendored/utils.d.ts.map +1 -1
  438. package/build/types/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts.map +1 -1
  439. package/build/types/integrations/tracing/prisma/vendored/constants.d.ts.map +1 -1
  440. package/build/types/integrations/tracing/prisma/vendored/global.d.ts.map +1 -1
  441. package/build/types/integrations/tracing/prisma/vendored/instrumentation.d.ts.map +1 -1
  442. package/build/types/integrations/tracing/prisma/vendored/types.d.ts.map +1 -1
  443. package/build/types/integrations/tracing/redis/index.d.ts.map +1 -1
  444. package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +3 -8
  445. package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts.map +1 -1
  446. package/build/types/integrations/tracing/redis/vendored/redis-common.d.ts.map +1 -1
  447. package/build/types/integrations/tracing/redis/vendored/redis-instrumentation.d.ts.map +1 -1
  448. package/build/types/integrations/tracing/redis/vendored/semconv.d.ts.map +1 -1
  449. package/build/types/integrations/tracing/redis/vendored/types.d.ts +2 -36
  450. package/build/types/integrations/tracing/redis/vendored/types.d.ts.map +1 -1
  451. package/build/types/integrations/tracing/tedious/index.d.ts.map +1 -1
  452. package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts +3 -14
  453. package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts.map +1 -1
  454. package/build/types/integrations/tracing/tedious/vendored/semconv.d.ts.map +1 -1
  455. package/build/types/integrations/tracing/tedious/vendored/utils.d.ts.map +1 -1
  456. package/build/types/sdk/diagnosticsChannelInjection.d.ts +41 -0
  457. package/build/types/sdk/diagnosticsChannelInjection.d.ts.map +1 -0
  458. package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +34 -0
  459. package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts.map +1 -0
  460. package/build/types/sdk/index.d.ts.map +1 -1
  461. package/build/types/sdk/initOtel.d.ts.map +1 -1
  462. package/build/types-ts3.8/index.d.ts +2 -1
  463. package/build/types-ts3.8/integrations/fs/vendored/instrumentation.d.ts +6 -10
  464. package/build/types-ts3.8/integrations/fs/vendored/types.d.ts +10 -15
  465. package/build/types-ts3.8/integrations/fs/vendored/utils.d.ts +2 -2
  466. package/build/types-ts3.8/integrations/node-fetch/vendored/semconv.d.ts +13 -0
  467. package/build/types-ts3.8/integrations/node-fetch/vendored/types.d.ts +2 -4
  468. package/build/types-ts3.8/integrations/node-fetch/vendored/undici.d.ts +6 -7
  469. package/build/types-ts3.8/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +0 -4
  470. package/build/types-ts3.8/integrations/tracing/connect/vendored/instrumentation.d.ts +4 -4
  471. package/build/types-ts3.8/integrations/tracing/connect/vendored/internal-types.d.ts +2 -2
  472. package/build/types-ts3.8/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +1 -3
  473. package/build/types-ts3.8/integrations/tracing/graphql/vendored/instrumentation.d.ts +6 -1
  474. package/build/types-ts3.8/integrations/tracing/graphql/vendored/internal-types.d.ts +3 -3
  475. package/build/types-ts3.8/integrations/tracing/graphql/vendored/types.d.ts +4 -42
  476. package/build/types-ts3.8/integrations/tracing/graphql/vendored/utils.d.ts +6 -9
  477. package/build/types-ts3.8/integrations/tracing/hapi/vendored/instrumentation.d.ts +2 -2
  478. package/build/types-ts3.8/integrations/tracing/hapi/vendored/utils.d.ts +1 -2
  479. package/build/types-ts3.8/integrations/tracing/kafka/vendored/instrumentation.d.ts +3 -13
  480. package/build/types-ts3.8/integrations/tracing/kafka/vendored/kafkajs-types.d.ts +0 -32
  481. package/build/types-ts3.8/integrations/tracing/kafka/vendored/semconv.d.ts +9 -28
  482. package/build/types-ts3.8/integrations/tracing/kafka/vendored/utils.d.ts +29 -0
  483. package/build/types-ts3.8/integrations/tracing/knex/vendored/instrumentation.d.ts +8 -10
  484. package/build/types-ts3.8/integrations/tracing/knex/vendored/semconv.d.ts +1 -0
  485. package/build/types-ts3.8/integrations/tracing/knex/vendored/utils.d.ts +0 -6
  486. package/build/types-ts3.8/integrations/tracing/koa/vendored/internal-types.d.ts +4 -4
  487. package/build/types-ts3.8/integrations/tracing/koa/vendored/types.d.ts +1 -38
  488. package/build/types-ts3.8/integrations/tracing/mongo/index.d.ts +0 -4
  489. package/build/types-ts3.8/integrations/tracing/mongo/vendored/instrumentation.d.ts +4 -72
  490. package/build/types-ts3.8/integrations/tracing/mongo/vendored/internal-types.d.ts +0 -59
  491. package/build/types-ts3.8/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
  492. package/build/types-ts3.8/integrations/tracing/mongo/vendored/semconv.d.ts +0 -54
  493. package/build/types-ts3.8/integrations/tracing/mongo/vendored/utils.d.ts +24 -0
  494. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +3 -0
  495. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose.d.ts +3 -8
  496. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -14
  497. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/utils.d.ts +4 -6
  498. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/instrumentation.d.ts +3 -6
  499. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/utils.d.ts +3 -5
  500. package/build/types-ts3.8/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +0 -1
  501. package/build/types-ts3.8/integrations/tracing/postgres/vendored/instrumentation.d.ts +0 -8
  502. package/build/types-ts3.8/integrations/tracing/postgres/vendored/internal-types.d.ts +0 -2
  503. package/build/types-ts3.8/integrations/tracing/postgres/vendored/semconv.d.ts +0 -50
  504. package/build/types-ts3.8/integrations/tracing/postgres/vendored/types.d.ts +1 -55
  505. package/build/types-ts3.8/integrations/tracing/postgres/vendored/utils.d.ts +13 -26
  506. package/build/types-ts3.8/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +3 -8
  507. package/build/types-ts3.8/integrations/tracing/redis/vendored/types.d.ts +2 -36
  508. package/build/types-ts3.8/integrations/tracing/tedious/vendored/instrumentation.d.ts +3 -14
  509. package/build/types-ts3.8/sdk/diagnosticsChannelInjection.d.ts +41 -0
  510. package/build/types-ts3.8/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +34 -0
  511. package/package.json +20 -7
  512. package/build/cjs/integrations/tracing/kafka/vendored/internal-types.js +0 -6
  513. package/build/cjs/integrations/tracing/kafka/vendored/internal-types.js.map +0 -1
  514. package/build/cjs/integrations/tracing/kafka/vendored/propagator.js +0 -22
  515. package/build/cjs/integrations/tracing/kafka/vendored/propagator.js.map +0 -1
  516. package/build/cjs/integrations/tracing/knex/vendored/constants.js +0 -16
  517. package/build/cjs/integrations/tracing/knex/vendored/constants.js.map +0 -1
  518. package/build/cjs/integrations/tracing/postgres/vendored/internal-types.js +0 -6
  519. package/build/cjs/integrations/tracing/postgres/vendored/internal-types.js.map +0 -1
  520. package/build/cjs/integrations/tracing/utils/sql-common.js +0 -43
  521. package/build/cjs/integrations/tracing/utils/sql-common.js.map +0 -1
  522. package/build/esm/integrations/tracing/kafka/vendored/internal-types.js +0 -4
  523. package/build/esm/integrations/tracing/kafka/vendored/internal-types.js.map +0 -1
  524. package/build/esm/integrations/tracing/kafka/vendored/propagator.js +0 -20
  525. package/build/esm/integrations/tracing/kafka/vendored/propagator.js.map +0 -1
  526. package/build/esm/integrations/tracing/knex/vendored/constants.js +0 -13
  527. package/build/esm/integrations/tracing/knex/vendored/constants.js.map +0 -1
  528. package/build/esm/integrations/tracing/postgres/vendored/internal-types.js +0 -4
  529. package/build/esm/integrations/tracing/postgres/vendored/internal-types.js.map +0 -1
  530. package/build/esm/integrations/tracing/utils/sql-common.js +0 -41
  531. package/build/esm/integrations/tracing/utils/sql-common.js.map +0 -1
  532. package/build/types/integrations/tracing/kafka/vendored/internal-types.d.ts +0 -9
  533. package/build/types/integrations/tracing/kafka/vendored/internal-types.d.ts.map +0 -1
  534. package/build/types/integrations/tracing/kafka/vendored/propagator.d.ts +0 -3
  535. package/build/types/integrations/tracing/kafka/vendored/propagator.d.ts.map +0 -1
  536. package/build/types/integrations/tracing/kafka/vendored/types.d.ts +0 -26
  537. package/build/types/integrations/tracing/kafka/vendored/types.d.ts.map +0 -1
  538. package/build/types/integrations/tracing/knex/vendored/constants.d.ts +0 -3
  539. package/build/types/integrations/tracing/knex/vendored/constants.d.ts.map +0 -1
  540. package/build/types/integrations/tracing/knex/vendored/types.d.ts +0 -8
  541. package/build/types/integrations/tracing/knex/vendored/types.d.ts.map +0 -1
  542. package/build/types/integrations/tracing/mongo/vendored/types.d.ts +0 -51
  543. package/build/types/integrations/tracing/mongo/vendored/types.d.ts.map +0 -1
  544. package/build/types/integrations/tracing/mongoose/vendored/types.d.ts +0 -36
  545. package/build/types/integrations/tracing/mongoose/vendored/types.d.ts.map +0 -1
  546. package/build/types/integrations/tracing/mysql2/vendored/types.d.ts +0 -18
  547. package/build/types/integrations/tracing/mysql2/vendored/types.d.ts.map +0 -1
  548. package/build/types/integrations/tracing/tedious/vendored/types.d.ts +0 -10
  549. package/build/types/integrations/tracing/tedious/vendored/types.d.ts.map +0 -1
  550. package/build/types/integrations/tracing/utils/sql-common.d.ts +0 -3
  551. package/build/types/integrations/tracing/utils/sql-common.d.ts.map +0 -1
  552. package/build/types-ts3.8/integrations/tracing/kafka/vendored/internal-types.d.ts +0 -9
  553. package/build/types-ts3.8/integrations/tracing/kafka/vendored/propagator.d.ts +0 -3
  554. package/build/types-ts3.8/integrations/tracing/kafka/vendored/types.d.ts +0 -26
  555. package/build/types-ts3.8/integrations/tracing/knex/vendored/constants.d.ts +0 -3
  556. package/build/types-ts3.8/integrations/tracing/knex/vendored/types.d.ts +0 -8
  557. package/build/types-ts3.8/integrations/tracing/mongo/vendored/types.d.ts +0 -51
  558. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/types.d.ts +0 -36
  559. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/types.d.ts +0 -18
  560. package/build/types-ts3.8/integrations/tracing/tedious/vendored/types.d.ts +0 -10
  561. package/build/types-ts3.8/integrations/tracing/utils/sql-common.d.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/kafka/vendored/semconv.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-kafkajs\n * - Upstream version: @opentelemetry/instrumentation-kafkajs@0.27.0\n */\n/* eslint-disable */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * The number of messages sent, received, or processed in the scope of the batching operation.\n *\n * @example 0\n * @example 1\n * @example 2\n *\n * @note Instrumentations **SHOULD NOT** set `messaging.batch.message_count` on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations **SHOULD** use `messaging.batch.message_count` for batching APIs and **SHOULD NOT** use it for single-message APIs.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_BATCH_MESSAGE_COUNT = 'messaging.batch.message_count' as const;\n\n/**\n * The message destination name\n *\n * @example MyQueue\n * @example MyTopic\n *\n * @note Destination name **SHOULD** uniquely identify a specific queue, topic or other entity within the broker. If\n * the broker doesn't have such notion, the destination name **SHOULD** uniquely identify the broker.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_DESTINATION_NAME = 'messaging.destination.name' as const;\n\n/**\n * The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.\n *\n * @example \"1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_DESTINATION_PARTITION_ID = 'messaging.destination.partition.id' as const;\n\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute **MUST NOT** be set.\n *\n * @example \"myKey\"\n *\n * @note If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message.key' as const;\n\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = 'messaging.kafka.message.tombstone' as const;\n\n/**\n * The offset of a record in the corresponding Kafka partition.\n *\n * @example 42\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_OFFSET = 'messaging.kafka.offset' as const;\n\n/**\n * The system-specific name of the messaging operation.\n *\n * @example ack\n * @example nack\n * @example send\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_OPERATION_NAME = 'messaging.operation.name' as const;\n\n/**\n * A string identifying the type of the messaging operation.\n *\n * @note If a custom value is used, it **MUST** be of low cardinality.\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_OPERATION_TYPE = 'messaging.operation.type' as const;\n\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_SYSTEM = 'messaging.system' as const;\n\n/**\n * Enum value \"process\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_PROCESS = 'process' as const;\n\n/**\n * Enum value \"receive\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = 'receive' as const;\n\n/**\n * Enum value \"send\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_SEND = 'send' as const;\n\n/**\n * Enum value \"kafka\" for attribute {@link ATTR_MESSAGING_SYSTEM}.\n */\nexport const MESSAGING_SYSTEM_VALUE_KAFKA = 'kafka' as const;\n\n/**\n * Number of messages that were delivered to the application.\n *\n * @note Records the number of messages pulled from the broker or number of messages dispatched to the application in push-based scenarios.\n * The metric **SHOULD** be reported once per message delivery. For example, if receiving and processing operations are both instrumented for a single message delivery, this counter is incremented when the message is received and not reported when it is processed.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES = 'messaging.client.consumed.messages' as const;\n\n/**\n * Duration of messaging operation initiated by a producer or consumer client.\n *\n * @note This metric **SHOULD NOT** be used to report processing duration - processing duration is reported in `messaging.process.duration` metric.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_CLIENT_OPERATION_DURATION = 'messaging.client.operation.duration' as const;\n\n/**\n * Number of messages producer attempted to send to the broker.\n *\n * @note This metric **MUST NOT** count messages that were created but haven't yet been sent.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_CLIENT_SENT_MESSAGES = 'messaging.client.sent.messages' as const;\n\n/**\n * Duration of processing operation.\n *\n * @note This metric **MUST** be reported for operations with `messaging.operation.type` that matches `process`.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_PROCESS_DURATION = 'messaging.process.duration' as const;\n"],"names":[],"mappings":";;AAsCO,MAAM,kCAAA,GAAqC;AAa3C,MAAM,+BAAA,GAAkC;AASxC,MAAM,uCAAA,GAA0C;AAWhD,MAAM,gCAAA,GAAmC;AAOzC,MAAM,sCAAA,GAAyC;AAS/C,MAAM,2BAAA,GAA8B;AAWpC,MAAM,6BAAA,GAAgC;AAQtC,MAAM,6BAAA,GAAgC;AAStC,MAAM,qBAAA,GAAwB;AAK9B,MAAM,sCAAA,GAAyC;AAK/C,MAAM,sCAAA,GAAyC;AAK/C,MAAM,mCAAA,GAAsC;AAK5C,MAAM,4BAAA,GAA+B;AAUrC,MAAM,yCAAA,GAA4C;AASlD,MAAM,0CAAA,GAA6C;AASnD,MAAM,qCAAA,GAAwC;AAS9C,MAAM,iCAAA,GAAoC;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/kafka/vendored/semconv.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors, Aspecto\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-kafkajs\n * - Upstream version: @opentelemetry/instrumentation-kafkajs@0.27.0\n * - Metric semantic conventions dropped; `error.type` inlined from `@opentelemetry/semantic-conventions`\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * The number of messages sent, received, or processed in the scope of the batching operation.\n *\n * @example 0\n * @example 1\n * @example 2\n *\n * @note Instrumentations **SHOULD NOT** set `messaging.batch.message_count` on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations **SHOULD** use `messaging.batch.message_count` for batching APIs and **SHOULD NOT** use it for single-message APIs.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_BATCH_MESSAGE_COUNT = 'messaging.batch.message_count' as const;\n\n/**\n * The message destination name\n *\n * @example MyQueue\n * @example MyTopic\n *\n * @note Destination name **SHOULD** uniquely identify a specific queue, topic or other entity within the broker. If\n * the broker doesn't have such notion, the destination name **SHOULD** uniquely identify the broker.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_DESTINATION_NAME = 'messaging.destination.name' as const;\n\n/**\n * The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.\n *\n * @example \"1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_DESTINATION_PARTITION_ID = 'messaging.destination.partition.id' as const;\n\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute **MUST NOT** be set.\n *\n * @example \"myKey\"\n *\n * @note If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message.key' as const;\n\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE = 'messaging.kafka.message.tombstone' as const;\n\n/**\n * The offset of a record in the corresponding Kafka partition.\n *\n * @example 42\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_OFFSET = 'messaging.kafka.offset' as const;\n\n/**\n * The system-specific name of the messaging operation.\n *\n * @example ack\n * @example nack\n * @example send\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_OPERATION_NAME = 'messaging.operation.name' as const;\n\n/**\n * A string identifying the type of the messaging operation.\n *\n * @note If a custom value is used, it **MUST** be of low cardinality.\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_OPERATION_TYPE = 'messaging.operation.type' as const;\n\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_SYSTEM = 'messaging.system' as const;\n\n/**\n * Enum value \"process\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_PROCESS = 'process' as const;\n\n/**\n * Enum value \"receive\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = 'receive' as const;\n\n/**\n * Enum value \"send\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_SEND = 'send' as const;\n\n/**\n * Enum value \"kafka\" for attribute {@link ATTR_MESSAGING_SYSTEM}.\n */\nexport const MESSAGING_SYSTEM_VALUE_KAFKA = 'kafka' as const;\n\n/**\n * Describes a class of error the operation ended with.\n *\n * @example timeout\n * @example java.net.UnknownHostException\n * @example server_certificate_invalid\n * @example 500\n */\nexport const ATTR_ERROR_TYPE = 'error.type' as const;\n\n/**\n * Enum value \"_OTHER\" for attribute {@link ATTR_ERROR_TYPE}. A fallback error value to be used when\n * the instrumentation doesn't define a custom value.\n */\nexport const ERROR_TYPE_VALUE_OTHER = '_OTHER' as const;\n"],"names":[],"mappings":";;AA2BO,MAAM,kCAAA,GAAqC;AAa3C,MAAM,+BAAA,GAAkC;AASxC,MAAM,uCAAA,GAA0C;AAWhD,MAAM,gCAAA,GAAmC;AAOzC,MAAM,sCAAA,GAAyC;AAS/C,MAAM,2BAAA,GAA8B;AAWpC,MAAM,6BAAA,GAAgC;AAQtC,MAAM,6BAAA,GAAgC;AAStC,MAAM,qBAAA,GAAwB;AAK9B,MAAM,sCAAA,GAAyC;AAK/C,MAAM,sCAAA,GAAyC;AAK/C,MAAM,mCAAA,GAAsC;AAK5C,MAAM,4BAAA,GAA+B;AAUrC,MAAM,eAAA,GAAkB;AAMxB,MAAM,sBAAA,GAAyB;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,113 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const api = require('@opentelemetry/api');
4
+ const core = require('@sentry/core');
5
+ const semconv = require('./semconv.js');
6
+
7
+ const PRODUCER_ORIGIN = "auto.kafkajs.otel.producer";
8
+ const CONSUMER_ORIGIN = "auto.kafkajs.otel.consumer";
9
+ function getHeaderAsString(headers, key) {
10
+ const value = headers?.[key];
11
+ if (value == null) {
12
+ return void 0;
13
+ }
14
+ return Array.isArray(value) ? value[0]?.toString() : value.toString();
15
+ }
16
+ function getLinksFromHeaders(headers) {
17
+ const sentryTrace = getHeaderAsString(headers, "sentry-trace");
18
+ if (!sentryTrace) {
19
+ return void 0;
20
+ }
21
+ const { traceId, parentSpanId, sampled } = core.propagationContextFromHeaders(
22
+ sentryTrace,
23
+ getHeaderAsString(headers, "baggage")
24
+ );
25
+ if (!parentSpanId) {
26
+ return void 0;
27
+ }
28
+ return [
29
+ {
30
+ context: {
31
+ traceId,
32
+ spanId: parentSpanId,
33
+ isRemote: true,
34
+ traceFlags: sampled ? api.TraceFlags.SAMPLED : api.TraceFlags.NONE
35
+ }
36
+ }
37
+ ];
38
+ }
39
+ function startConsumerSpan({ topic, message, operationType, links, attributes }) {
40
+ const operationName = operationType === semconv.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE ? "poll" : operationType;
41
+ return core.startInactiveSpan({
42
+ name: `${operationName} ${topic}`,
43
+ kind: operationType === semconv.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE ? api.SpanKind.CLIENT : api.SpanKind.CONSUMER,
44
+ links,
45
+ attributes: {
46
+ ...attributes,
47
+ [semconv.ATTR_MESSAGING_SYSTEM]: semconv.MESSAGING_SYSTEM_VALUE_KAFKA,
48
+ [semconv.ATTR_MESSAGING_DESTINATION_NAME]: topic,
49
+ [semconv.ATTR_MESSAGING_OPERATION_TYPE]: operationType,
50
+ [semconv.ATTR_MESSAGING_OPERATION_NAME]: operationName,
51
+ [semconv.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message?.key ? String(message.key) : void 0,
52
+ [semconv.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message?.key && message.value === null ? true : void 0,
53
+ [semconv.ATTR_MESSAGING_KAFKA_OFFSET]: message?.offset,
54
+ // Mirror the upstream behavior of only tagging per-message processing spans (not the batch
55
+ // receiving span, which carries no message) with the auto origin.
56
+ ...message ? { [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: CONSUMER_ORIGIN } : {}
57
+ }
58
+ });
59
+ }
60
+ function startProducerSpan(topic, message) {
61
+ const span = core.startInactiveSpan({
62
+ name: `send ${topic}`,
63
+ kind: api.SpanKind.PRODUCER,
64
+ attributes: {
65
+ [semconv.ATTR_MESSAGING_SYSTEM]: semconv.MESSAGING_SYSTEM_VALUE_KAFKA,
66
+ [semconv.ATTR_MESSAGING_DESTINATION_NAME]: topic,
67
+ [semconv.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message.key ? String(message.key) : void 0,
68
+ [semconv.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message.key && message.value === null ? true : void 0,
69
+ [semconv.ATTR_MESSAGING_DESTINATION_PARTITION_ID]: message.partition !== void 0 ? String(message.partition) : void 0,
70
+ [semconv.ATTR_MESSAGING_OPERATION_NAME]: "send",
71
+ [semconv.ATTR_MESSAGING_OPERATION_TYPE]: semconv.MESSAGING_OPERATION_TYPE_VALUE_SEND,
72
+ [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PRODUCER_ORIGIN
73
+ }
74
+ });
75
+ message.headers = message.headers ?? {};
76
+ const traceData = core.getTraceData({ span });
77
+ if (traceData["sentry-trace"]) {
78
+ message.headers["sentry-trace"] = traceData["sentry-trace"];
79
+ }
80
+ if (traceData.baggage) {
81
+ message.headers["baggage"] = traceData.baggage;
82
+ }
83
+ return span;
84
+ }
85
+ function endSpansOnPromise(spans, sendPromise) {
86
+ return Promise.resolve(sendPromise).catch((reason) => {
87
+ let errorMessage;
88
+ let errorType = semconv.ERROR_TYPE_VALUE_OTHER;
89
+ if (typeof reason === "string" || reason === void 0) {
90
+ errorMessage = reason;
91
+ } else if (typeof reason === "object" && Object.prototype.hasOwnProperty.call(reason, "message")) {
92
+ errorMessage = reason.message;
93
+ errorType = reason.constructor.name;
94
+ }
95
+ spans.forEach((span) => {
96
+ span.setAttribute(semconv.ATTR_ERROR_TYPE, errorType);
97
+ span.setStatus({
98
+ code: core.SPAN_STATUS_ERROR,
99
+ message: errorMessage
100
+ });
101
+ });
102
+ throw reason;
103
+ }).finally(() => {
104
+ spans.forEach((span) => span.end());
105
+ });
106
+ }
107
+
108
+ exports.endSpansOnPromise = endSpansOnPromise;
109
+ exports.getHeaderAsString = getHeaderAsString;
110
+ exports.getLinksFromHeaders = getLinksFromHeaders;
111
+ exports.startConsumerSpan = startConsumerSpan;
112
+ exports.startProducerSpan = startProducerSpan;
113
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/kafka/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors, Aspecto\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-kafkajs\n * - Upstream version: @opentelemetry/instrumentation-kafkajs@0.27.0\n * - Span creation extracted here and migrated to the @sentry/core API; origin folded into span creation\n */\n\nimport { SpanKind, TraceFlags } from '@opentelemetry/api';\nimport type { Span, SpanAttributes, SpanLink } from '@sentry/core';\nimport {\n getTraceData,\n propagationContextFromHeaders,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { KafkaMessage, Message } from './kafkajs-types';\nimport {\n ATTR_ERROR_TYPE,\n ATTR_MESSAGING_DESTINATION_NAME,\n ATTR_MESSAGING_DESTINATION_PARTITION_ID,\n ATTR_MESSAGING_KAFKA_MESSAGE_KEY,\n ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE,\n ATTR_MESSAGING_KAFKA_OFFSET,\n ATTR_MESSAGING_OPERATION_NAME,\n ATTR_MESSAGING_OPERATION_TYPE,\n ATTR_MESSAGING_SYSTEM,\n ERROR_TYPE_VALUE_OTHER,\n MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,\n MESSAGING_OPERATION_TYPE_VALUE_SEND,\n MESSAGING_SYSTEM_VALUE_KAFKA,\n} from './semconv';\n\nconst PRODUCER_ORIGIN = 'auto.kafkajs.otel.producer';\nconst CONSUMER_ORIGIN = 'auto.kafkajs.otel.consumer';\n\nexport interface ConsumerSpanOptions {\n topic: string;\n message: KafkaMessage | undefined;\n operationType: string;\n attributes: SpanAttributes;\n links?: SpanLink[];\n}\n\n/**\n * Reads a header value off a kafkajs message as a string. kafkajs delivers headers as `Buffer`s (or\n * arrays of them), so we normalize to a string before handing them to Sentry's trace helpers.\n */\nexport function getHeaderAsString(headers: KafkaMessage['headers'], key: string): string | undefined {\n const value = headers?.[key];\n if (value == null) {\n return undefined;\n }\n return Array.isArray(value) ? value[0]?.toString() : value.toString();\n}\n\n/**\n * Builds a span link to the producer span carried in the message headers, mirroring the upstream\n * behavior of linking each batch-processed message to its originating producer span.\n */\nexport function getLinksFromHeaders(headers: KafkaMessage['headers']): SpanLink[] | undefined {\n const sentryTrace = getHeaderAsString(headers, 'sentry-trace');\n if (!sentryTrace) {\n return undefined;\n }\n\n const { traceId, parentSpanId, sampled } = propagationContextFromHeaders(\n sentryTrace,\n getHeaderAsString(headers, 'baggage'),\n );\n if (!parentSpanId) {\n return undefined;\n }\n\n return [\n {\n context: {\n traceId,\n spanId: parentSpanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n },\n },\n ];\n}\n\n/** Starts an inactive consumer (process/receive) span carrying the kafkajs messaging attributes. */\nexport function startConsumerSpan({ topic, message, operationType, links, attributes }: ConsumerSpanOptions): Span {\n const operationName =\n operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE\n ? 'poll' // for batch processing spans\n : operationType; // for individual message processing spans\n\n return startInactiveSpan({\n name: `${operationName} ${topic}`,\n kind: operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE ? SpanKind.CLIENT : SpanKind.CONSUMER,\n links,\n attributes: {\n ...attributes,\n [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n [ATTR_MESSAGING_OPERATION_TYPE]: operationType,\n [ATTR_MESSAGING_OPERATION_NAME]: operationName,\n [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message?.key ? String(message.key) : undefined,\n [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message?.key && message.value === null ? true : undefined,\n [ATTR_MESSAGING_KAFKA_OFFSET]: message?.offset,\n // Mirror the upstream behavior of only tagging per-message processing spans (not the batch\n // receiving span, which carries no message) with the auto origin.\n ...(message ? { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: CONSUMER_ORIGIN } : {}),\n },\n });\n}\n\n/** Starts an inactive producer span and propagates its trace into the message headers. */\nexport function startProducerSpan(topic: string, message: Message): Span {\n const span = startInactiveSpan({\n name: `send ${topic}`,\n kind: SpanKind.PRODUCER,\n attributes: {\n [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message.key ? String(message.key) : undefined,\n [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]: message.key && message.value === null ? true : undefined,\n [ATTR_MESSAGING_DESTINATION_PARTITION_ID]:\n message.partition !== undefined ? String(message.partition) : undefined,\n [ATTR_MESSAGING_OPERATION_NAME]: 'send',\n [ATTR_MESSAGING_OPERATION_TYPE]: MESSAGING_OPERATION_TYPE_VALUE_SEND,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: PRODUCER_ORIGIN,\n },\n });\n\n // Propagate the producer span's trace to consumers via the message headers.\n message.headers = message.headers ?? {};\n const traceData = getTraceData({ span });\n if (traceData['sentry-trace']) {\n message.headers['sentry-trace'] = traceData['sentry-trace'];\n }\n if (traceData.baggage) {\n message.headers['baggage'] = traceData.baggage;\n }\n\n return span;\n}\n\n/**\n * Resolves once `sendPromise` settles, ending all `spans` and, on failure, marking them with the\n * error status and `error.type` before re-throwing.\n */\nexport function endSpansOnPromise<T>(spans: Span[], sendPromise: Promise<T>): Promise<T> {\n return Promise.resolve(sendPromise)\n .catch(reason => {\n let errorMessage: string | undefined;\n let errorType: string = ERROR_TYPE_VALUE_OTHER;\n if (typeof reason === 'string' || reason === undefined) {\n errorMessage = reason;\n } else if (typeof reason === 'object' && Object.prototype.hasOwnProperty.call(reason, 'message')) {\n errorMessage = reason.message;\n errorType = reason.constructor.name;\n }\n\n spans.forEach(span => {\n span.setAttribute(ATTR_ERROR_TYPE, errorType);\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: errorMessage,\n });\n });\n\n throw reason;\n })\n .finally(() => {\n spans.forEach(span => span.end());\n });\n}\n"],"names":["propagationContextFromHeaders","TraceFlags","MESSAGING_OPERATION_TYPE_VALUE_RECEIVE","startInactiveSpan","SpanKind","ATTR_MESSAGING_SYSTEM","MESSAGING_SYSTEM_VALUE_KAFKA","ATTR_MESSAGING_DESTINATION_NAME","ATTR_MESSAGING_OPERATION_TYPE","ATTR_MESSAGING_OPERATION_NAME","ATTR_MESSAGING_KAFKA_MESSAGE_KEY","ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE","ATTR_MESSAGING_KAFKA_OFFSET","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","ATTR_MESSAGING_DESTINATION_PARTITION_ID","MESSAGING_OPERATION_TYPE_VALUE_SEND","getTraceData","ERROR_TYPE_VALUE_OTHER","ATTR_ERROR_TYPE","SPAN_STATUS_ERROR"],"mappings":";;;;;;AAoCA,MAAM,eAAA,GAAkB,4BAAA;AACxB,MAAM,eAAA,GAAkB,4BAAA;AAcjB,SAAS,iBAAA,CAAkB,SAAkC,GAAA,EAAiC;AACnG,EAAA,MAAM,KAAA,GAAQ,UAAU,GAAG,CAAA;AAC3B,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA,EAAG,QAAA,EAAS,GAAI,KAAA,CAAM,QAAA,EAAS;AACtE;AAMO,SAAS,oBAAoB,OAAA,EAA0D;AAC5F,EAAA,MAAM,WAAA,GAAc,iBAAA,CAAkB,OAAA,EAAS,cAAc,CAAA;AAC7D,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,EAAE,OAAA,EAAS,YAAA,EAAc,OAAA,EAAQ,GAAIA,kCAAA;AAAA,IACzC,WAAA;AAAA,IACA,iBAAA,CAAkB,SAAS,SAAS;AAAA,GACtC;AACA,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,OAAO;AAAA,IACL;AAAA,MACE,OAAA,EAAS;AAAA,QACP,OAAA;AAAA,QACA,MAAA,EAAQ,YAAA;AAAA,QACR,QAAA,EAAU,IAAA;AAAA,QACV,UAAA,EAAY,OAAA,GAAUC,cAAA,CAAW,OAAA,GAAUA,cAAA,CAAW;AAAA;AACxD;AACF,GACF;AACF;AAGO,SAAS,kBAAkB,EAAE,KAAA,EAAO,SAAS,aAAA,EAAe,KAAA,EAAO,YAAW,EAA8B;AACjH,EAAA,MAAM,aAAA,GACJ,aAAA,KAAkBC,8CAAA,GACd,MAAA,GACA,aAAA;AAEN,EAAA,OAAOC,sBAAA,CAAkB;AAAA,IACvB,IAAA,EAAM,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,IAC/B,IAAA,EAAM,aAAA,KAAkBD,8CAAA,GAAyCE,YAAA,CAAS,SAASA,YAAA,CAAS,QAAA;AAAA,IAC5F,KAAA;AAAA,IACA,UAAA,EAAY;AAAA,MACV,GAAG,UAAA;AAAA,MACH,CAACC,6BAAqB,GAAGC,oCAAA;AAAA,MACzB,CAACC,uCAA+B,GAAG,KAAA;AAAA,MACnC,CAACC,qCAA6B,GAAG,aAAA;AAAA,MACjC,CAACC,qCAA6B,GAAG,aAAA;AAAA,MACjC,CAACC,wCAAgC,GAAG,OAAA,EAAS,MAAM,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA,GAAI,MAAA;AAAA,MACzE,CAACC,8CAAsC,GAAG,OAAA,EAAS,OAAO,OAAA,CAAQ,KAAA,KAAU,OAAO,IAAA,GAAO,MAAA;AAAA,MAC1F,CAACC,mCAA2B,GAAG,OAAA,EAAS,MAAA;AAAA;AAAA;AAAA,MAGxC,GAAI,UAAU,EAAE,CAACC,qCAAgC,GAAG,eAAA,KAAoB;AAAC;AAC3E,GACD,CAAA;AACH;AAGO,SAAS,iBAAA,CAAkB,OAAe,OAAA,EAAwB;AACvE,EAAA,MAAM,OAAOV,sBAAA,CAAkB;AAAA,IAC7B,IAAA,EAAM,QAAQ,KAAK,CAAA,CAAA;AAAA,IACnB,MAAMC,YAAA,CAAS,QAAA;AAAA,IACf,UAAA,EAAY;AAAA,MACV,CAACC,6BAAqB,GAAGC,oCAAA;AAAA,MACzB,CAACC,uCAA+B,GAAG,KAAA;AAAA,MACnC,CAACG,wCAAgC,GAAG,OAAA,CAAQ,MAAM,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA,GAAI,MAAA;AAAA,MACxE,CAACC,8CAAsC,GAAG,OAAA,CAAQ,OAAO,OAAA,CAAQ,KAAA,KAAU,OAAO,IAAA,GAAO,MAAA;AAAA,MACzF,CAACG,+CAAuC,GACtC,OAAA,CAAQ,cAAc,MAAA,GAAY,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,GAAI,MAAA;AAAA,MAChE,CAACL,qCAA6B,GAAG,MAAA;AAAA,MACjC,CAACD,qCAA6B,GAAGO,2CAAA;AAAA,MACjC,CAACF,qCAAgC,GAAG;AAAA;AACtC,GACD,CAAA;AAGD,EAAA,OAAA,CAAQ,OAAA,GAAU,OAAA,CAAQ,OAAA,IAAW,EAAC;AACtC,EAAA,MAAM,SAAA,GAAYG,iBAAA,CAAa,EAAE,IAAA,EAAM,CAAA;AACvC,EAAA,IAAI,SAAA,CAAU,cAAc,CAAA,EAAG;AAC7B,IAAA,OAAA,CAAQ,OAAA,CAAQ,cAAc,CAAA,GAAI,SAAA,CAAU,cAAc,CAAA;AAAA,EAC5D;AACA,EAAA,IAAI,UAAU,OAAA,EAAS;AACrB,IAAA,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAA,GAAI,SAAA,CAAU,OAAA;AAAA,EACzC;AAEA,EAAA,OAAO,IAAA;AACT;AAMO,SAAS,iBAAA,CAAqB,OAAe,WAAA,EAAqC;AACvF,EAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,WAAW,CAAA,CAC/B,MAAM,CAAA,MAAA,KAAU;AACf,IAAA,IAAI,YAAA;AACJ,IAAA,IAAI,SAAA,GAAoBC,8BAAA;AACxB,IAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,KAAW,MAAA,EAAW;AACtD,MAAA,YAAA,GAAe,MAAA;AAAA,IACjB,CAAA,MAAA,IAAW,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,CAAO,UAAU,cAAA,CAAe,IAAA,CAAK,MAAA,EAAQ,SAAS,CAAA,EAAG;AAChG,MAAA,YAAA,GAAe,MAAA,CAAO,OAAA;AACtB,MAAA,SAAA,GAAY,OAAO,WAAA,CAAY,IAAA;AAAA,IACjC;AAEA,IAAA,KAAA,CAAM,QAAQ,CAAA,IAAA,KAAQ;AACpB,MAAA,IAAA,CAAK,YAAA,CAAaC,yBAAiB,SAAS,CAAA;AAC5C,MAAA,IAAA,CAAK,SAAA,CAAU;AAAA,QACb,IAAA,EAAMC,sBAAA;AAAA,QACN,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH,CAAC,CAAA;AAED,IAAA,MAAM,MAAA;AAAA,EACR,CAAC,CAAA,CACA,OAAA,CAAQ,MAAM;AACb,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAA,IAAA,KAAQ,IAAA,CAAK,GAAA,EAAK,CAAA;AAAA,EAClC,CAAC,CAAA;AACL;;;;;;;;"}
@@ -5,27 +5,12 @@ const core = require('@sentry/core');
5
5
  const nodeCore = require('@sentry/node-core');
6
6
 
7
7
  const INTEGRATION_NAME = "Knex";
8
- const instrumentKnex = nodeCore.generateInstrumentOnce(
9
- INTEGRATION_NAME,
10
- () => new instrumentation.KnexInstrumentation({ requireParentSpan: true })
11
- );
8
+ const instrumentKnex = nodeCore.generateInstrumentOnce(INTEGRATION_NAME, () => new instrumentation.KnexInstrumentation());
12
9
  const _knexIntegration = (() => {
13
- let instrumentationWrappedCallback;
14
10
  return {
15
11
  name: INTEGRATION_NAME,
16
12
  setupOnce() {
17
- const instrumentation = instrumentKnex();
18
- instrumentationWrappedCallback = nodeCore.instrumentWhenWrapped(instrumentation);
19
- },
20
- setup(client) {
21
- instrumentationWrappedCallback?.(
22
- () => client.on("spanStart", (span) => {
23
- const { data } = core.spanToJSON(span);
24
- if ("knex.version" in data) {
25
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, "auto.db.otel.knex");
26
- }
27
- })
28
- );
13
+ instrumentKnex();
29
14
  }
30
15
  };
31
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/knex/index.ts"],"sourcesContent":["import { KnexInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Knex';\n\nexport const instrumentKnex = generateInstrumentOnce(\n INTEGRATION_NAME,\n () => new KnexInstrumentation({ requireParentSpan: true }),\n);\n\nconst _knexIntegration = (() => {\n let instrumentationWrappedCallback: undefined | ((callback: () => void) => void);\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const instrumentation = instrumentKnex();\n instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n },\n\n setup(client) {\n instrumentationWrappedCallback?.(() =>\n client.on('spanStart', span => {\n const { data } = spanToJSON(span);\n // knex.version is always set in the span data\n // https://github.com/open-telemetry/opentelemetry-js-contrib/blob/0309caeafc44ac9cb13a3345b790b01b76d0497d/plugins/node/opentelemetry-instrumentation-knex/src/instrumentation.ts#L138\n if ('knex.version' in data) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.knex');\n }\n }),\n );\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Knex integration\n *\n * Capture tracing data for [Knex](https://knexjs.org/).\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.knexIntegration()],\n * });\n * ```\n */\nexport const knexIntegration = defineIntegration(_knexIntegration);\n"],"names":["generateInstrumentOnce","KnexInstrumentation","instrumentWhenWrapped","spanToJSON","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","defineIntegration"],"mappings":";;;;;;AAKA,MAAM,gBAAA,GAAmB,MAAA;AAElB,MAAM,cAAA,GAAiBA,+BAAA;AAAA,EAC5B,gBAAA;AAAA,EACA,MAAM,IAAIC,mCAAA,CAAoB,EAAE,iBAAA,EAAmB,MAAM;AAC3D;AAEA,MAAM,oBAAoB,MAAM;AAC9B,EAAA,IAAI,8BAAA;AAEJ,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,MAAM,kBAAkB,cAAA,EAAe;AACvC,MAAA,8BAAA,GAAiCC,+BAAsB,eAAe,CAAA;AAAA,IACxE,CAAA;AAAA,IAEA,MAAM,MAAA,EAAQ;AACZ,MAAA,8BAAA;AAAA,QAAiC,MAC/B,MAAA,CAAO,EAAA,CAAG,WAAA,EAAa,CAAA,IAAA,KAAQ;AAC7B,UAAA,MAAM,EAAE,IAAA,EAAK,GAAIC,eAAA,CAAW,IAAI,CAAA;AAGhC,UAAA,IAAI,kBAAkB,IAAA,EAAM;AAC1B,YAAA,IAAA,CAAK,YAAA,CAAaC,uCAAkC,mBAAmB,CAAA;AAAA,UACzE;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACF;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,eAAA,GAAkBC,uBAAkB,gBAAgB;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/knex/index.ts"],"sourcesContent":["import { KnexInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Knex';\n\nexport const instrumentKnex = generateInstrumentOnce(INTEGRATION_NAME, () => new KnexInstrumentation());\n\nconst _knexIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKnex();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Knex integration\n *\n * Capture tracing data for [Knex](https://knexjs.org/).\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.knexIntegration()],\n * });\n * ```\n */\nexport const knexIntegration = defineIntegration(_knexIntegration);\n"],"names":["generateInstrumentOnce","KnexInstrumentation","defineIntegration"],"mappings":";;;;;;AAKA,MAAM,gBAAA,GAAmB,MAAA;AAElB,MAAM,iBAAiBA,+BAAA,CAAuB,gBAAA,EAAkB,MAAM,IAAIC,qCAAqB;AAEtG,MAAM,oBAAoB,MAAM;AAC9B,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,cAAA,EAAe;AAAA,IACjB;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,eAAA,GAAkBC,uBAAkB,gBAAgB;;;;;"}
@@ -1,61 +1,63 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
3
  const api = require('@opentelemetry/api');
4
- const core = require('@sentry/core');
5
- const constants = require('./constants.js');
6
4
  const instrumentation = require('@opentelemetry/instrumentation');
5
+ const core = require('@sentry/core');
7
6
  const InstrumentationNodeModuleFile = require('../../InstrumentationNodeModuleFile.js');
8
- const utils = require('./utils.js');
9
- const semanticConventions = require('@opentelemetry/semantic-conventions');
10
7
  const semconv = require('./semconv.js');
8
+ const utils = require('./utils.js');
11
9
 
12
10
  const PACKAGE_NAME = "@sentry/instrumentation-knex";
13
- const contextSymbol = /* @__PURE__ */ Symbol("opentelemetry.instrumentation-knex.context");
14
- const DEFAULT_CONFIG = {
15
- maxQueryLength: 1022,
16
- requireParentSpan: false
17
- };
11
+ const ORIGIN = "auto.db.otel.knex";
12
+ const MODULE_NAME = "knex";
13
+ const SUPPORTED_VERSIONS = [
14
+ // use "lib/execution" for runner.js, "lib" for client.js as basepath, latest tested 0.95.6
15
+ ">=0.22.0 <4",
16
+ // use "lib" as basepath
17
+ ">=0.10.0 <0.18.0",
18
+ ">=0.19.0 <0.22.0",
19
+ // use "src" as basepath
20
+ ">=0.18.0 <0.19.0"
21
+ ];
22
+ const MAX_QUERY_LENGTH = 1022;
23
+ const parentSpanSymbol = /* @__PURE__ */ Symbol("sentry.instrumentation-knex.parent-span");
18
24
  class KnexInstrumentation extends instrumentation.InstrumentationBase {
19
25
  constructor(config = {}) {
20
- super(PACKAGE_NAME, core.SDK_VERSION, { ...DEFAULT_CONFIG, ...config });
21
- this._semconvStability = instrumentation.semconvStabilityFromStr("database", process.env.OTEL_SEMCONV_STABILITY_OPT_IN);
22
- }
23
- setConfig(config = {}) {
24
- super.setConfig({ ...DEFAULT_CONFIG, ...config });
26
+ super(PACKAGE_NAME, core.SDK_VERSION, config);
25
27
  }
26
28
  init() {
27
- const module = new instrumentation.InstrumentationNodeModuleDefinition(constants.MODULE_NAME, constants.SUPPORTED_VERSIONS);
29
+ const module = new instrumentation.InstrumentationNodeModuleDefinition(MODULE_NAME, SUPPORTED_VERSIONS);
28
30
  module.files.push(
29
- this.getClientNodeModuleFileInstrumentation("src"),
30
- this.getClientNodeModuleFileInstrumentation("lib"),
31
- this.getRunnerNodeModuleFileInstrumentation("src"),
32
- this.getRunnerNodeModuleFileInstrumentation("lib"),
33
- this.getRunnerNodeModuleFileInstrumentation("lib/execution")
31
+ this._getClientNodeModuleFileInstrumentation("src"),
32
+ this._getClientNodeModuleFileInstrumentation("lib"),
33
+ this._getRunnerNodeModuleFileInstrumentation("src"),
34
+ this._getRunnerNodeModuleFileInstrumentation("lib"),
35
+ this._getRunnerNodeModuleFileInstrumentation("lib/execution")
34
36
  );
35
37
  return module;
36
38
  }
37
- getRunnerNodeModuleFileInstrumentation(basePath) {
39
+ _getRunnerNodeModuleFileInstrumentation(basePath) {
38
40
  return new InstrumentationNodeModuleFile.InstrumentationNodeModuleFile(
39
41
  `knex/${basePath}/runner.js`,
40
- constants.SUPPORTED_VERSIONS,
42
+ SUPPORTED_VERSIONS,
41
43
  (Runner, moduleVersion) => {
42
- this.ensureWrapped(Runner.prototype, "query", this.createQueryWrapper(moduleVersion));
44
+ this._ensureWrapped(Runner.prototype, "query", this._createQueryWrapper(moduleVersion));
43
45
  return Runner;
44
46
  },
45
- (Runner, _moduleVersion) => {
47
+ (Runner) => {
46
48
  this._unwrap(Runner.prototype, "query");
47
49
  return Runner;
48
50
  }
49
51
  );
50
52
  }
51
- getClientNodeModuleFileInstrumentation(basePath) {
53
+ _getClientNodeModuleFileInstrumentation(basePath) {
52
54
  return new InstrumentationNodeModuleFile.InstrumentationNodeModuleFile(
53
55
  `knex/${basePath}/client.js`,
54
- constants.SUPPORTED_VERSIONS,
56
+ SUPPORTED_VERSIONS,
55
57
  (Client) => {
56
- this.ensureWrapped(Client.prototype, "queryBuilder", this.storeContext.bind(this));
57
- this.ensureWrapped(Client.prototype, "schemaBuilder", this.storeContext.bind(this));
58
- this.ensureWrapped(Client.prototype, "raw", this.storeContext.bind(this));
58
+ this._ensureWrapped(Client.prototype, "queryBuilder", this._storeContext.bind(this));
59
+ this._ensureWrapped(Client.prototype, "schemaBuilder", this._storeContext.bind(this));
60
+ this._ensureWrapped(Client.prototype, "raw", this._storeContext.bind(this));
59
61
  return Client;
60
62
  },
61
63
  (Client) => {
@@ -66,8 +68,7 @@ class KnexInstrumentation extends instrumentation.InstrumentationBase {
66
68
  }
67
69
  );
68
70
  }
69
- createQueryWrapper(moduleVersion) {
70
- const instrumentation$1 = this;
71
+ _createQueryWrapper(moduleVersion) {
71
72
  return function wrapQuery(original) {
72
73
  return function wrapped_logging_method(query) {
73
74
  const config = this.client.config;
@@ -75,83 +76,54 @@ class KnexInstrumentation extends instrumentation.InstrumentationBase {
75
76
  const operation = query?.method;
76
77
  const connectionString = config?.connection?.connectionString;
77
78
  const name = config?.connection?.filename || config?.connection?.database || utils.extractDatabaseFromConnectionString(connectionString);
78
- const { maxQueryLength } = instrumentation$1.getConfig();
79
79
  const attributes = {
80
- "knex.version": moduleVersion
80
+ [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,
81
+ "knex.version": moduleVersion,
82
+ [semconv.ATTR_DB_SYSTEM]: utils.mapSystem(this.client.driverName),
83
+ [semconv.ATTR_DB_SQL_TABLE]: table,
84
+ [semconv.ATTR_DB_OPERATION]: operation,
85
+ [semconv.ATTR_DB_USER]: config?.connection?.user,
86
+ [semconv.ATTR_DB_NAME]: name,
87
+ [semconv.ATTR_NET_PEER_NAME]: config?.connection?.host ?? utils.extractHostFromConnectionString(connectionString),
88
+ [semconv.ATTR_NET_PEER_PORT]: config?.connection?.port ?? utils.extractPortFromConnectionString(connectionString),
89
+ [semconv.ATTR_NET_TRANSPORT]: config?.connection?.filename === ":memory:" ? "inproc" : void 0,
90
+ [semconv.ATTR_DB_STATEMENT]: utils.limitLength(query?.sql, MAX_QUERY_LENGTH)
81
91
  };
82
- const transport = config?.connection?.filename === ":memory:" ? "inproc" : void 0;
83
- if (instrumentation$1._semconvStability & instrumentation.SemconvStability.OLD) {
84
- Object.assign(attributes, {
85
- [semconv.ATTR_DB_SYSTEM]: utils.mapSystem(this.client.driverName),
86
- [semconv.ATTR_DB_SQL_TABLE]: table,
87
- [semconv.ATTR_DB_OPERATION]: operation,
88
- [semconv.ATTR_DB_USER]: config?.connection?.user,
89
- [semconv.ATTR_DB_NAME]: name,
90
- [semconv.ATTR_NET_PEER_NAME]: config?.connection?.host ?? utils.extractHostFromConnectionString(connectionString),
91
- [semconv.ATTR_NET_PEER_PORT]: config?.connection?.port ?? utils.extractPortFromConnectionString(connectionString),
92
- [semconv.ATTR_NET_TRANSPORT]: transport
93
- });
94
- }
95
- if (instrumentation$1._semconvStability & instrumentation.SemconvStability.STABLE) {
96
- Object.assign(attributes, {
97
- [semanticConventions.ATTR_DB_SYSTEM_NAME]: utils.mapSystem(this.client.driverName),
98
- [semanticConventions.ATTR_DB_COLLECTION_NAME]: table,
99
- [semanticConventions.ATTR_DB_OPERATION_NAME]: operation,
100
- [semanticConventions.ATTR_DB_NAMESPACE]: name,
101
- [semanticConventions.ATTR_SERVER_ADDRESS]: config?.connection?.host ?? utils.extractHostFromConnectionString(connectionString),
102
- [semanticConventions.ATTR_SERVER_PORT]: config?.connection?.port ?? utils.extractPortFromConnectionString(connectionString)
103
- });
104
- }
105
- if (maxQueryLength) {
106
- const queryText = utils.limitLength(query?.sql, maxQueryLength);
107
- if (instrumentation$1._semconvStability & instrumentation.SemconvStability.STABLE) {
108
- attributes[semanticConventions.ATTR_DB_QUERY_TEXT] = queryText;
109
- }
110
- if (instrumentation$1._semconvStability & instrumentation.SemconvStability.OLD) {
111
- attributes[semconv.ATTR_DB_STATEMENT] = queryText;
112
- }
113
- }
114
- const parentContext = this.builder[contextSymbol] || api.context.active();
115
- const parentSpan = api.trace.getSpan(parentContext);
116
- const hasActiveParent = parentSpan && api.trace.isSpanContextValid(parentSpan.spanContext());
117
- if (instrumentation$1._config.requireParentSpan && !hasActiveParent) {
118
- return original.bind(this)(...arguments);
119
- }
120
- const span = instrumentation$1.tracer.startSpan(
121
- utils.getName(name, operation, table),
92
+ const parentSpan = this.builder[parentSpanSymbol] || core.getActiveSpan();
93
+ const args = arguments;
94
+ return core.startSpan(
122
95
  {
96
+ name: utils.getName(name, operation, table),
123
97
  kind: api.SpanKind.CLIENT,
124
- attributes
98
+ attributes,
99
+ parentSpan,
100
+ onlyIfParent: true
125
101
  },
126
- parentContext
102
+ (span) => (
103
+ // `Runner.query` returns a real, already-executing Promise, so it is safe to let
104
+ // `startSpan` await it and auto-end the span.
105
+ original.apply(this, args).catch((err) => {
106
+ const formatter = utils.getFormatter(this);
107
+ const fullQuery = formatter(query.sql, query.bindings || []);
108
+ const message = err.message.replace(`${fullQuery} - `, "");
109
+ span.setStatus({ code: core.SPAN_STATUS_ERROR, message });
110
+ throw err;
111
+ })
112
+ )
127
113
  );
128
- const spanContext = api.trace.setSpan(api.context.active(), span);
129
- return api.context.with(spanContext, original, this, ...arguments).then((result) => {
130
- span.end();
131
- return result;
132
- }).catch((err) => {
133
- const formatter = utils.getFormatter(this);
134
- const fullQuery = formatter(query.sql, query.bindings || []);
135
- const message = err.message.replace(fullQuery + " - ", "");
136
- const exc = utils.otelExceptionFromKnexError(err, message);
137
- span.recordException(exc);
138
- span.setStatus({ code: api.SpanStatusCode.ERROR, message });
139
- span.end();
140
- throw err;
141
- });
142
114
  };
143
115
  };
144
116
  }
145
- storeContext(original) {
117
+ _storeContext(original) {
146
118
  return function wrapped_logging_method() {
147
119
  const builder = original.apply(this, arguments);
148
- Object.defineProperty(builder, contextSymbol, {
149
- value: api.context.active()
120
+ Object.defineProperty(builder, parentSpanSymbol, {
121
+ value: core.getActiveSpan()
150
122
  });
151
123
  return builder;
152
124
  };
153
125
  }
154
- ensureWrapped(obj, methodName, wrapper) {
126
+ _ensureWrapped(obj, methodName, wrapper) {
155
127
  if (instrumentation.isWrapped(obj[methodName])) {
156
128
  this._unwrap(obj, methodName);
157
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/knex/vendored/instrumentation.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-knex\n * - Upstream version: @opentelemetry/instrumentation-knex@0.62.0\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n */\n/* eslint-disable */\n\nimport * as api from '@opentelemetry/api';\nimport { SDK_VERSION } from '@sentry/core';\nimport * as constants from './constants';\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition,\n isWrapped,\n SemconvStability,\n semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile';\nimport * as utils from './utils';\nimport { KnexInstrumentationConfig } from './types';\nimport {\n ATTR_DB_COLLECTION_NAME,\n ATTR_DB_NAMESPACE,\n ATTR_DB_OPERATION_NAME,\n ATTR_DB_QUERY_TEXT,\n ATTR_DB_SYSTEM_NAME,\n ATTR_SERVER_ADDRESS,\n ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport {\n ATTR_DB_NAME,\n ATTR_DB_OPERATION,\n ATTR_DB_SQL_TABLE,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_DB_USER,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n ATTR_NET_TRANSPORT,\n} from './semconv';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-knex';\n\nconst contextSymbol = Symbol('opentelemetry.instrumentation-knex.context');\nconst DEFAULT_CONFIG: KnexInstrumentationConfig = {\n maxQueryLength: 1022,\n requireParentSpan: false,\n};\n\nexport class KnexInstrumentation extends InstrumentationBase<KnexInstrumentationConfig> {\n private _semconvStability: SemconvStability;\n\n constructor(config: KnexInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, { ...DEFAULT_CONFIG, ...config });\n\n this._semconvStability = semconvStabilityFromStr('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n\n override setConfig(config: KnexInstrumentationConfig = {}) {\n super.setConfig({ ...DEFAULT_CONFIG, ...config });\n }\n\n init() {\n const module = new InstrumentationNodeModuleDefinition(constants.MODULE_NAME, constants.SUPPORTED_VERSIONS);\n\n module.files.push(\n this.getClientNodeModuleFileInstrumentation('src'),\n this.getClientNodeModuleFileInstrumentation('lib'),\n this.getRunnerNodeModuleFileInstrumentation('src'),\n this.getRunnerNodeModuleFileInstrumentation('lib'),\n this.getRunnerNodeModuleFileInstrumentation('lib/execution'),\n );\n\n return module;\n }\n\n private getRunnerNodeModuleFileInstrumentation(basePath: string) {\n return new InstrumentationNodeModuleFile(\n `knex/${basePath}/runner.js`,\n constants.SUPPORTED_VERSIONS,\n (Runner: any, moduleVersion?: string) => {\n this.ensureWrapped(Runner.prototype, 'query', this.createQueryWrapper(moduleVersion));\n return Runner;\n },\n (Runner: any, _moduleVersion?: string) => {\n this._unwrap(Runner.prototype, 'query');\n return Runner;\n },\n );\n }\n\n private getClientNodeModuleFileInstrumentation(basePath: string) {\n return new InstrumentationNodeModuleFile(\n `knex/${basePath}/client.js`,\n constants.SUPPORTED_VERSIONS,\n (Client: any) => {\n this.ensureWrapped(Client.prototype, 'queryBuilder', this.storeContext.bind(this));\n this.ensureWrapped(Client.prototype, 'schemaBuilder', this.storeContext.bind(this));\n this.ensureWrapped(Client.prototype, 'raw', this.storeContext.bind(this));\n return Client;\n },\n (Client: any) => {\n this._unwrap(Client.prototype, 'queryBuilder');\n this._unwrap(Client.prototype, 'schemaBuilder');\n this._unwrap(Client.prototype, 'raw');\n return Client;\n },\n );\n }\n\n private createQueryWrapper(moduleVersion?: string) {\n const instrumentation = this;\n\n return function wrapQuery(original: (...args: any[]) => any) {\n return function wrapped_logging_method(this: any, query: any) {\n const config = this.client.config;\n\n const table = utils.extractTableName(this.builder);\n const operation = query?.method;\n const connectionString = config?.connection?.connectionString;\n const name =\n config?.connection?.filename ||\n config?.connection?.database ||\n utils.extractDatabaseFromConnectionString(connectionString);\n const { maxQueryLength } = instrumentation.getConfig();\n\n const attributes: api.Attributes = {\n 'knex.version': moduleVersion,\n };\n const transport = config?.connection?.filename === ':memory:' ? 'inproc' : undefined;\n\n if (instrumentation._semconvStability & SemconvStability.OLD) {\n Object.assign(attributes, {\n [ATTR_DB_SYSTEM]: utils.mapSystem(this.client.driverName),\n [ATTR_DB_SQL_TABLE]: table,\n [ATTR_DB_OPERATION]: operation,\n [ATTR_DB_USER]: config?.connection?.user,\n [ATTR_DB_NAME]: name,\n [ATTR_NET_PEER_NAME]: config?.connection?.host ?? utils.extractHostFromConnectionString(connectionString),\n [ATTR_NET_PEER_PORT]: config?.connection?.port ?? utils.extractPortFromConnectionString(connectionString),\n [ATTR_NET_TRANSPORT]: transport,\n });\n }\n if (instrumentation._semconvStability & SemconvStability.STABLE) {\n Object.assign(attributes, {\n [ATTR_DB_SYSTEM_NAME]: utils.mapSystem(this.client.driverName),\n [ATTR_DB_COLLECTION_NAME]: table,\n [ATTR_DB_OPERATION_NAME]: operation,\n [ATTR_DB_NAMESPACE]: name,\n [ATTR_SERVER_ADDRESS]: config?.connection?.host ?? utils.extractHostFromConnectionString(connectionString),\n [ATTR_SERVER_PORT]: config?.connection?.port ?? utils.extractPortFromConnectionString(connectionString),\n });\n }\n if (maxQueryLength) {\n const queryText = utils.limitLength(query?.sql, maxQueryLength);\n if (instrumentation._semconvStability & SemconvStability.STABLE) {\n attributes[ATTR_DB_QUERY_TEXT] = queryText;\n }\n if (instrumentation._semconvStability & SemconvStability.OLD) {\n attributes[ATTR_DB_STATEMENT] = queryText;\n }\n }\n\n const parentContext = this.builder[contextSymbol] || api.context.active();\n const parentSpan = api.trace.getSpan(parentContext);\n const hasActiveParent = parentSpan && api.trace.isSpanContextValid(parentSpan.spanContext());\n if (instrumentation._config.requireParentSpan && !hasActiveParent) {\n return original.bind(this)(...arguments);\n }\n\n const span = instrumentation.tracer.startSpan(\n utils.getName(name, operation, table),\n {\n kind: api.SpanKind.CLIENT,\n attributes,\n },\n parentContext,\n );\n const spanContext = api.trace.setSpan(api.context.active(), span);\n\n return api.context\n .with(spanContext, original, this, ...arguments)\n .then((result: unknown) => {\n span.end();\n return result;\n })\n .catch((err: any) => {\n const formatter = utils.getFormatter(this);\n const fullQuery = formatter(query.sql, query.bindings || []);\n const message = err.message.replace(fullQuery + ' - ', '');\n const exc = utils.otelExceptionFromKnexError(err, message);\n span.recordException(exc);\n span.setStatus({ code: api.SpanStatusCode.ERROR, message });\n span.end();\n throw err;\n });\n };\n };\n }\n\n private storeContext(original: Function) {\n return function wrapped_logging_method(this: any) {\n const builder = original.apply(this, arguments);\n Object.defineProperty(builder, contextSymbol, {\n value: api.context.active(),\n });\n return builder;\n };\n }\n\n ensureWrapped(obj: any, methodName: string, wrapper: (original: any) => any) {\n if (isWrapped(obj[methodName])) {\n this._unwrap(obj, methodName);\n }\n this._wrap(obj, methodName, wrapper);\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","semconvStabilityFromStr","InstrumentationNodeModuleDefinition","constants.MODULE_NAME","constants.SUPPORTED_VERSIONS","InstrumentationNodeModuleFile","instrumentation","utils.extractTableName","utils.extractDatabaseFromConnectionString","SemconvStability","ATTR_DB_SYSTEM","utils.mapSystem","ATTR_DB_SQL_TABLE","ATTR_DB_OPERATION","ATTR_DB_USER","ATTR_DB_NAME","ATTR_NET_PEER_NAME","utils.extractHostFromConnectionString","ATTR_NET_PEER_PORT","utils.extractPortFromConnectionString","ATTR_NET_TRANSPORT","ATTR_DB_SYSTEM_NAME","ATTR_DB_COLLECTION_NAME","ATTR_DB_OPERATION_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","utils.limitLength","ATTR_DB_QUERY_TEXT","ATTR_DB_STATEMENT","utils.getName","utils.getFormatter","utils.otelExceptionFromKnexError","isWrapped"],"mappings":"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"}
1
+ {"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/knex/vendored/instrumentation.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-knex\n * - Upstream version: @opentelemetry/instrumentation-knex@0.62.0\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\n/* oxlint-disable typescript/no-deprecated */\n\nimport { SpanKind } from '@opentelemetry/api';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n getActiveSpan,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startSpan,\n} from '@sentry/core';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile';\nimport {\n ATTR_DB_NAME,\n ATTR_DB_OPERATION,\n ATTR_DB_SQL_TABLE,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_DB_USER,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n ATTR_NET_TRANSPORT,\n} from './semconv';\nimport * as utils from './utils';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-knex';\nconst ORIGIN = 'auto.db.otel.knex';\n\nconst MODULE_NAME = 'knex';\nconst SUPPORTED_VERSIONS = [\n // use \"lib/execution\" for runner.js, \"lib\" for client.js as basepath, latest tested 0.95.6\n '>=0.22.0 <4',\n // use \"lib\" as basepath\n '>=0.10.0 <0.18.0',\n '>=0.19.0 <0.22.0',\n // use \"src\" as basepath\n '>=0.18.0 <0.19.0',\n];\n\n// Max length of the query text captured in the `db.statement` attribute; \"..\" is appended when truncated.\nconst MAX_QUERY_LENGTH = 1022;\n\nconst parentSpanSymbol = Symbol('sentry.instrumentation-knex.parent-span');\n\nexport class KnexInstrumentation extends InstrumentationBase<InstrumentationConfig> {\n public constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n public init(): InstrumentationNodeModuleDefinition {\n const module = new InstrumentationNodeModuleDefinition(MODULE_NAME, SUPPORTED_VERSIONS);\n\n module.files.push(\n this._getClientNodeModuleFileInstrumentation('src'),\n this._getClientNodeModuleFileInstrumentation('lib'),\n this._getRunnerNodeModuleFileInstrumentation('src'),\n this._getRunnerNodeModuleFileInstrumentation('lib'),\n this._getRunnerNodeModuleFileInstrumentation('lib/execution'),\n );\n\n return module;\n }\n\n private _getRunnerNodeModuleFileInstrumentation(basePath: string): InstrumentationNodeModuleFile {\n return new InstrumentationNodeModuleFile(\n `knex/${basePath}/runner.js`,\n SUPPORTED_VERSIONS,\n (Runner: any, moduleVersion?: string) => {\n this._ensureWrapped(Runner.prototype, 'query', this._createQueryWrapper(moduleVersion));\n return Runner;\n },\n (Runner: any) => {\n this._unwrap(Runner.prototype, 'query');\n return Runner;\n },\n );\n }\n\n private _getClientNodeModuleFileInstrumentation(basePath: string): InstrumentationNodeModuleFile {\n return new InstrumentationNodeModuleFile(\n `knex/${basePath}/client.js`,\n SUPPORTED_VERSIONS,\n (Client: any) => {\n this._ensureWrapped(Client.prototype, 'queryBuilder', this._storeContext.bind(this));\n this._ensureWrapped(Client.prototype, 'schemaBuilder', this._storeContext.bind(this));\n this._ensureWrapped(Client.prototype, 'raw', this._storeContext.bind(this));\n return Client;\n },\n (Client: any) => {\n this._unwrap(Client.prototype, 'queryBuilder');\n this._unwrap(Client.prototype, 'schemaBuilder');\n this._unwrap(Client.prototype, 'raw');\n return Client;\n },\n );\n }\n\n private _createQueryWrapper(moduleVersion?: string) {\n return function wrapQuery(original: (...args: any[]) => any) {\n return function wrapped_logging_method(this: any, query: any) {\n const config = this.client.config;\n\n const table = utils.extractTableName(this.builder);\n const operation = query?.method;\n const connectionString = config?.connection?.connectionString;\n const name =\n config?.connection?.filename ||\n config?.connection?.database ||\n utils.extractDatabaseFromConnectionString(connectionString);\n\n const attributes: SpanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n 'knex.version': moduleVersion,\n [ATTR_DB_SYSTEM]: utils.mapSystem(this.client.driverName),\n [ATTR_DB_SQL_TABLE]: table,\n [ATTR_DB_OPERATION]: operation,\n [ATTR_DB_USER]: config?.connection?.user,\n [ATTR_DB_NAME]: name,\n [ATTR_NET_PEER_NAME]: config?.connection?.host ?? utils.extractHostFromConnectionString(connectionString),\n [ATTR_NET_PEER_PORT]: config?.connection?.port ?? utils.extractPortFromConnectionString(connectionString),\n [ATTR_NET_TRANSPORT]: config?.connection?.filename === ':memory:' ? 'inproc' : undefined,\n [ATTR_DB_STATEMENT]: utils.limitLength(query?.sql, MAX_QUERY_LENGTH),\n };\n\n // The query builder captures the span active when it was created (see `_storeContext`).\n // `onlyIfParent` ensures we only instrument queries that run as part of an existing trace.\n const parentSpan: Span | undefined = this.builder[parentSpanSymbol] || getActiveSpan();\n\n const args = arguments;\n return startSpan(\n {\n name: utils.getName(name, operation, table),\n kind: SpanKind.CLIENT,\n attributes,\n parentSpan,\n onlyIfParent: true,\n },\n span =>\n // `Runner.query` returns a real, already-executing Promise, so it is safe to let\n // `startSpan` await it and auto-end the span.\n original.apply(this, args).catch((err: any) => {\n const formatter = utils.getFormatter(this);\n const fullQuery = formatter(query.sql, query.bindings || []);\n const message = err.message.replace(`${fullQuery} - `, '');\n span.setStatus({ code: SPAN_STATUS_ERROR, message });\n throw err;\n }),\n );\n };\n };\n }\n\n private _storeContext(original: (...args: any[]) => any) {\n return function wrapped_logging_method(this: any) {\n const builder = original.apply(this, arguments);\n // Capture the span that is active when the query builder is created. The query often executes\n // in a different async context, so we reuse this span as the parent when the query runs.\n Object.defineProperty(builder, parentSpanSymbol, {\n value: getActiveSpan(),\n });\n return builder;\n };\n }\n\n private _ensureWrapped(obj: any, methodName: string, wrapper: (original: any) => any): void {\n if (isWrapped(obj[methodName])) {\n this._unwrap(obj, methodName);\n }\n this._wrap(obj, methodName, wrapper);\n }\n}\n"],"names":["InstrumentationBase","SDK_VERSION","InstrumentationNodeModuleDefinition","InstrumentationNodeModuleFile","utils.extractTableName","utils.extractDatabaseFromConnectionString","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","ATTR_DB_SYSTEM","utils.mapSystem","ATTR_DB_SQL_TABLE","ATTR_DB_OPERATION","ATTR_DB_USER","ATTR_DB_NAME","ATTR_NET_PEER_NAME","utils.extractHostFromConnectionString","ATTR_NET_PEER_PORT","utils.extractPortFromConnectionString","ATTR_NET_TRANSPORT","ATTR_DB_STATEMENT","utils.limitLength","getActiveSpan","startSpan","utils.getName","SpanKind","utils.getFormatter","SPAN_STATUS_ERROR","isWrapped"],"mappings":"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"}
@@ -10,6 +10,7 @@ const ATTR_NET_PEER_NAME = "net.peer.name";
10
10
  const ATTR_NET_PEER_PORT = "net.peer.port";
11
11
  const ATTR_NET_TRANSPORT = "net.transport";
12
12
  const DB_SYSTEM_NAME_VALUE_SQLITE = "sqlite";
13
+ const DB_SYSTEM_NAME_VALUE_POSTGRESQL = "postgresql";
13
14
 
14
15
  exports.ATTR_DB_NAME = ATTR_DB_NAME;
15
16
  exports.ATTR_DB_OPERATION = ATTR_DB_OPERATION;
@@ -20,5 +21,6 @@ exports.ATTR_DB_USER = ATTR_DB_USER;
20
21
  exports.ATTR_NET_PEER_NAME = ATTR_NET_PEER_NAME;
21
22
  exports.ATTR_NET_PEER_PORT = ATTR_NET_PEER_PORT;
22
23
  exports.ATTR_NET_TRANSPORT = ATTR_NET_TRANSPORT;
24
+ exports.DB_SYSTEM_NAME_VALUE_POSTGRESQL = DB_SYSTEM_NAME_VALUE_POSTGRESQL;
23
25
  exports.DB_SYSTEM_NAME_VALUE_SQLITE = DB_SYSTEM_NAME_VALUE_SQLITE;
24
26
  //# sourceMappingURL=semconv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/knex/vendored/semconv.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-knex\n * - Upstream version: @opentelemetry/instrumentation-knex@0.62.0\n */\n/* eslint-disable */\n\n/**\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * @deprecated Replaced by `db.operation.name`.\n */\nexport const ATTR_DB_OPERATION = 'db.operation' as const;\n\n/**\n * @deprecated Replaced by `db.collection.name`.\n */\nexport const ATTR_DB_SQL_TABLE = 'db.sql.table' as const;\n\n/**\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * @deprecated Replaced by `network.transport`.\n */\nexport const ATTR_NET_TRANSPORT = 'net.transport' as const;\n\nexport const DB_SYSTEM_NAME_VALUE_SQLITE = 'sqlite' as const;\n"],"names":[],"mappings":";;AAwBO,MAAM,YAAA,GAAe;AAKrB,MAAM,iBAAA,GAAoB;AAK1B,MAAM,iBAAA,GAAoB;AAK1B,MAAM,iBAAA,GAAoB;AAK1B,MAAM,cAAA,GAAiB;AAKvB,MAAM,YAAA,GAAe;AAKrB,MAAM,kBAAA,GAAqB;AAK3B,MAAM,kBAAA,GAAqB;AAK3B,MAAM,kBAAA,GAAqB;AAE3B,MAAM,2BAAA,GAA8B;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"semconv.js","sources":["../../../../../../src/integrations/tracing/knex/vendored/semconv.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-knex\n * - Upstream version: @opentelemetry/instrumentation-knex@0.62.0\n */\n\n/**\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * @deprecated Replaced by `db.operation.name`.\n */\nexport const ATTR_DB_OPERATION = 'db.operation' as const;\n\n/**\n * @deprecated Replaced by `db.collection.name`.\n */\nexport const ATTR_DB_SQL_TABLE = 'db.sql.table' as const;\n\n/**\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * @deprecated Replaced by `network.transport`.\n */\nexport const ATTR_NET_TRANSPORT = 'net.transport' as const;\n\nexport const DB_SYSTEM_NAME_VALUE_SQLITE = 'sqlite' as const;\n\nexport const DB_SYSTEM_NAME_VALUE_POSTGRESQL = 'postgresql' as const;\n"],"names":[],"mappings":";;AAYO,MAAM,YAAA,GAAe;AAKrB,MAAM,iBAAA,GAAoB;AAK1B,MAAM,iBAAA,GAAoB;AAK1B,MAAM,iBAAA,GAAoB;AAK1B,MAAM,cAAA,GAAiB;AAKvB,MAAM,YAAA,GAAe;AAKrB,MAAM,kBAAA,GAAqB;AAK3B,MAAM,kBAAA,GAAqB;AAK3B,MAAM,kBAAA,GAAqB;AAE3B,MAAM,2BAAA,GAA8B;AAEpC,MAAM,+BAAA,GAAkC;;;;;;;;;;;;;;"}
@@ -1,6 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- const semanticConventions = require('@opentelemetry/semantic-conventions');
4
3
  const semconv = require('./semconv.js');
5
4
 
6
5
  const getFormatter = (runner) => {
@@ -18,20 +17,9 @@ const getFormatter = (runner) => {
18
17
  }
19
18
  return () => "<noop formatter>";
20
19
  };
21
- function otelExceptionFromKnexError(err, message) {
22
- if (!(err && err instanceof Error)) {
23
- return err;
24
- }
25
- return {
26
- message,
27
- code: err.code,
28
- stack: err.stack,
29
- name: err.name
30
- };
31
- }
32
20
  const systemMap = /* @__PURE__ */ new Map([
33
21
  ["sqlite3", semconv.DB_SYSTEM_NAME_VALUE_SQLITE],
34
- ["pg", semanticConventions.DB_SYSTEM_NAME_VALUE_POSTGRESQL]
22
+ ["pg", semconv.DB_SYSTEM_NAME_VALUE_POSTGRESQL]
35
23
  ]);
36
24
  const mapSystem = (knexSystem) => {
37
25
  return systemMap.get(knexSystem) || knexSystem;
@@ -47,7 +35,7 @@ const getName = (db, operation, table) => {
47
35
  };
48
36
  const limitLength = (str, maxLength) => {
49
37
  if (typeof str === "string" && typeof maxLength === "number" && 0 < maxLength && maxLength < str.length) {
50
- return str.substring(0, maxLength) + "..";
38
+ return `${str.substring(0, maxLength)}..`;
51
39
  }
52
40
  return str;
53
41
  };
@@ -93,5 +81,4 @@ exports.getFormatter = getFormatter;
93
81
  exports.getName = getName;
94
82
  exports.limitLength = limitLength;
95
83
  exports.mapSystem = mapSystem;
96
- exports.otelExceptionFromKnexError = otelExceptionFromKnexError;
97
84
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/knex/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-knex\n * - Upstream version: @opentelemetry/instrumentation-knex@0.62.0\n */\n/* eslint-disable */\n\nimport { Exception } from '@opentelemetry/api';\nimport { DB_SYSTEM_NAME_VALUE_POSTGRESQL } from '@opentelemetry/semantic-conventions';\nimport { DB_SYSTEM_NAME_VALUE_SQLITE } from './semconv';\n\ntype KnexError = Error & {\n code?: string;\n};\n\nexport const getFormatter = (runner: any) => {\n if (runner) {\n if (runner.client) {\n if (runner.client._formatQuery) {\n return runner.client._formatQuery.bind(runner.client);\n } else if (runner.client.SqlString) {\n return runner.client.SqlString.format.bind(runner.client.SqlString);\n }\n }\n if (runner.builder) {\n return runner.builder.toString.bind(runner.builder);\n }\n }\n return () => '<noop formatter>';\n};\n\nexport function otelExceptionFromKnexError(err: KnexError, message: string): Exception {\n if (!(err && err instanceof Error)) {\n return err;\n }\n\n return {\n message,\n code: err.code,\n stack: err.stack,\n name: err.name,\n };\n}\n\nconst systemMap = new Map([\n ['sqlite3', DB_SYSTEM_NAME_VALUE_SQLITE],\n ['pg', DB_SYSTEM_NAME_VALUE_POSTGRESQL],\n]);\n\nexport const mapSystem = (knexSystem: string) => {\n return systemMap.get(knexSystem) || knexSystem;\n};\n\nexport const getName = (db: string, operation?: string, table?: string) => {\n if (operation) {\n if (table) {\n return `${operation} ${db}.${table}`;\n }\n return `${operation} ${db}`;\n }\n return db;\n};\n\nexport const limitLength = (str: string, maxLength: number) => {\n if (typeof str === 'string' && typeof maxLength === 'number' && 0 < maxLength && maxLength < str.length) {\n return str.substring(0, maxLength) + '..';\n }\n return str;\n};\n\nexport const extractDatabaseFromConnectionString = (connectionString?: string): string | undefined => {\n if (!connectionString) return undefined;\n try {\n const db = new URL(connectionString).pathname?.replace(/^\\//, '');\n return db || undefined;\n } catch {\n return undefined;\n }\n};\n\nexport const extractHostFromConnectionString = (connectionString?: string): string | undefined => {\n if (!connectionString) return undefined;\n try {\n return new URL(connectionString).hostname || undefined;\n } catch {\n return undefined;\n }\n};\n\nexport const extractPortFromConnectionString = (connectionString?: string): number | undefined => {\n if (!connectionString) return undefined;\n try {\n const port = new URL(connectionString).port;\n return port ? parseInt(port, 10) : undefined;\n } catch {\n return undefined;\n }\n};\n\nexport const extractTableName = (builder: any): string => {\n const table = builder?._single?.table;\n if (typeof table === 'object') {\n return extractTableName(table);\n }\n return table;\n};\n"],"names":["DB_SYSTEM_NAME_VALUE_SQLITE","DB_SYSTEM_NAME_VALUE_POSTGRESQL"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/knex/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-knex\n * - Upstream version: @opentelemetry/instrumentation-knex@0.62.0\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport { DB_SYSTEM_NAME_VALUE_POSTGRESQL, DB_SYSTEM_NAME_VALUE_SQLITE } from './semconv';\n\nexport const getFormatter = (runner: any) => {\n if (runner) {\n if (runner.client) {\n if (runner.client._formatQuery) {\n return runner.client._formatQuery.bind(runner.client);\n } else if (runner.client.SqlString) {\n return runner.client.SqlString.format.bind(runner.client.SqlString);\n }\n }\n if (runner.builder) {\n return runner.builder.toString.bind(runner.builder);\n }\n }\n return () => '<noop formatter>';\n};\n\nconst systemMap = new Map([\n ['sqlite3', DB_SYSTEM_NAME_VALUE_SQLITE],\n ['pg', DB_SYSTEM_NAME_VALUE_POSTGRESQL],\n]);\n\nexport const mapSystem = (knexSystem: string) => {\n return systemMap.get(knexSystem) || knexSystem;\n};\n\nexport const getName = (db: string, operation?: string, table?: string) => {\n if (operation) {\n if (table) {\n return `${operation} ${db}.${table}`;\n }\n return `${operation} ${db}`;\n }\n return db;\n};\n\nexport const limitLength = (str: string, maxLength: number) => {\n if (typeof str === 'string' && typeof maxLength === 'number' && 0 < maxLength && maxLength < str.length) {\n return `${str.substring(0, maxLength)}..`;\n }\n return str;\n};\n\nexport const extractDatabaseFromConnectionString = (connectionString?: string): string | undefined => {\n if (!connectionString) return undefined;\n try {\n const db = new URL(connectionString).pathname?.replace(/^\\//, '');\n return db || undefined;\n } catch {\n return undefined;\n }\n};\n\nexport const extractHostFromConnectionString = (connectionString?: string): string | undefined => {\n if (!connectionString) return undefined;\n try {\n return new URL(connectionString).hostname || undefined;\n } catch {\n return undefined;\n }\n};\n\nexport const extractPortFromConnectionString = (connectionString?: string): number | undefined => {\n if (!connectionString) return undefined;\n try {\n const port = new URL(connectionString).port;\n return port ? parseInt(port, 10) : undefined;\n } catch {\n return undefined;\n }\n};\n\nexport const extractTableName = (builder: any): string => {\n const table = builder?._single?.table;\n if (typeof table === 'object') {\n return extractTableName(table);\n }\n return table;\n};\n"],"names":["DB_SYSTEM_NAME_VALUE_SQLITE","DB_SYSTEM_NAME_VALUE_POSTGRESQL"],"mappings":"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"}