autotel 3.6.0 → 3.7.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 (602) hide show
  1. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts +175 -0
  2. package/dist/attribute-redacting-processor-DtTS9xxh.d.cts.map +1 -0
  3. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts +175 -0
  4. package/dist/attribute-redacting-processor-DtTS9xxh.d.ts.map +1 -0
  5. package/dist/attribute-redacting-processor.cjs +374 -33
  6. package/dist/attribute-redacting-processor.cjs.map +1 -1
  7. package/dist/attribute-redacting-processor.d.cts +2 -207
  8. package/dist/attribute-redacting-processor.d.ts +2 -207
  9. package/dist/attribute-redacting-processor.js +368 -2
  10. package/dist/attribute-redacting-processor.js.map +1 -1
  11. package/dist/attributes-D3etyRVc.cjs +713 -0
  12. package/dist/attributes-D3etyRVc.cjs.map +1 -0
  13. package/dist/attributes-ksn4HVbd.js +600 -0
  14. package/dist/attributes-ksn4HVbd.js.map +1 -0
  15. package/dist/attributes.cjs +21 -85
  16. package/dist/attributes.d.cts +2 -20
  17. package/dist/attributes.d.ts +2 -20
  18. package/dist/attributes.js +3 -5
  19. package/dist/auto.cjs +50 -28
  20. package/dist/auto.cjs.map +1 -1
  21. package/dist/auto.d.cts +1 -2
  22. package/dist/auto.d.ts +1 -2
  23. package/dist/auto.js +49 -23
  24. package/dist/auto.js.map +1 -1
  25. package/dist/business-baggage.cjs +357 -13
  26. package/dist/business-baggage.cjs.map +1 -1
  27. package/dist/business-baggage.d.cts +106 -139
  28. package/dist/business-baggage.d.cts.map +1 -0
  29. package/dist/business-baggage.d.ts +106 -139
  30. package/dist/business-baggage.d.ts.map +1 -0
  31. package/dist/business-baggage.js +357 -2
  32. package/dist/business-baggage.js.map +1 -1
  33. package/dist/canonical-log-line-processor--RlFDHhm.cjs +377 -0
  34. package/dist/canonical-log-line-processor--RlFDHhm.cjs.map +1 -0
  35. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts +147 -0
  36. package/dist/canonical-log-line-processor-BcRuAdRk.d.ts.map +1 -0
  37. package/dist/canonical-log-line-processor-DbBQT5vY.js +366 -0
  38. package/dist/canonical-log-line-processor-DbBQT5vY.js.map +1 -0
  39. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts +147 -0
  40. package/dist/canonical-log-line-processor-xvjMgtpF.d.cts.map +1 -0
  41. package/dist/config.cjs +118 -22
  42. package/dist/config.cjs.map +1 -1
  43. package/dist/config.d.cts +33 -45
  44. package/dist/config.d.cts.map +1 -0
  45. package/dist/config.d.ts +33 -45
  46. package/dist/config.d.ts.map +1 -0
  47. package/dist/config.js +116 -3
  48. package/dist/config.js.map +1 -1
  49. package/dist/correlated-events-Bzh5y-UB.js +28 -0
  50. package/dist/correlated-events-Bzh5y-UB.js.map +1 -0
  51. package/dist/correlated-events-kSwLo3mi.cjs +34 -0
  52. package/dist/correlated-events-kSwLo3mi.cjs.map +1 -0
  53. package/dist/correlation-id.cjs +11 -54
  54. package/dist/correlation-id.d.cts +6 -5
  55. package/dist/correlation-id.d.cts.map +1 -0
  56. package/dist/correlation-id.d.ts +6 -5
  57. package/dist/correlation-id.d.ts.map +1 -0
  58. package/dist/correlation-id.js +3 -17
  59. package/dist/db.cjs +244 -209
  60. package/dist/db.cjs.map +1 -1
  61. package/dist/db.d.cts +28 -26
  62. package/dist/db.d.cts.map +1 -0
  63. package/dist/db.d.ts +28 -26
  64. package/dist/db.d.ts.map +1 -0
  65. package/dist/db.js +243 -207
  66. package/dist/db.js.map +1 -1
  67. package/dist/decorators.cjs +39 -66
  68. package/dist/decorators.cjs.map +1 -1
  69. package/dist/decorators.d.cts +10 -37
  70. package/dist/decorators.d.cts.map +1 -0
  71. package/dist/decorators.d.ts +10 -37
  72. package/dist/decorators.d.ts.map +1 -0
  73. package/dist/decorators.js +38 -64
  74. package/dist/decorators.js.map +1 -1
  75. package/dist/define-event-CreknLm3.d.ts +25 -0
  76. package/dist/define-event-CreknLm3.d.ts.map +1 -0
  77. package/dist/define-event-HZRizPwz.d.cts +25 -0
  78. package/dist/define-event-HZRizPwz.d.cts.map +1 -0
  79. package/dist/drain-pipeline.cjs +111 -9
  80. package/dist/drain-pipeline.cjs.map +1 -1
  81. package/dist/drain-pipeline.d.cts +27 -32
  82. package/dist/drain-pipeline.d.cts.map +1 -0
  83. package/dist/drain-pipeline.d.ts +27 -32
  84. package/dist/drain-pipeline.d.ts.map +1 -0
  85. package/dist/drain-pipeline.js +111 -2
  86. package/dist/drain-pipeline.js.map +1 -1
  87. package/dist/enrichers.cjs +59 -66
  88. package/dist/enrichers.cjs.map +1 -1
  89. package/dist/enrichers.d.cts +15 -13
  90. package/dist/enrichers.d.cts.map +1 -0
  91. package/dist/enrichers.d.ts +15 -13
  92. package/dist/enrichers.d.ts.map +1 -0
  93. package/dist/enrichers.js +58 -65
  94. package/dist/enrichers.js.map +1 -1
  95. package/dist/event-Dlqr4ZNL.cjs +778 -0
  96. package/dist/event-Dlqr4ZNL.cjs.map +1 -0
  97. package/dist/event-_58ryBjh.js +761 -0
  98. package/dist/event-_58ryBjh.js.map +1 -0
  99. package/dist/event-subscriber-D1XLkPzi.d.cts +223 -0
  100. package/dist/event-subscriber-D1XLkPzi.d.cts.map +1 -0
  101. package/dist/event-subscriber-D1XLkPzi.d.ts +223 -0
  102. package/dist/event-subscriber-D1XLkPzi.d.ts.map +1 -0
  103. package/dist/event-subscriber.cjs +0 -6
  104. package/dist/event-subscriber.d.cts +2 -221
  105. package/dist/event-subscriber.d.ts +2 -221
  106. package/dist/event-subscriber.js +1 -3
  107. package/dist/event-testing-BqRnI0z4.d.cts +106 -0
  108. package/dist/event-testing-BqRnI0z4.d.cts.map +1 -0
  109. package/dist/event-testing-CfFs3to2.d.ts +106 -0
  110. package/dist/event-testing-CfFs3to2.d.ts.map +1 -0
  111. package/dist/event-testing.cjs +93 -17
  112. package/dist/event-testing.cjs.map +1 -1
  113. package/dist/event-testing.d.cts +2 -110
  114. package/dist/event-testing.d.ts +2 -110
  115. package/dist/event-testing.js +91 -2
  116. package/dist/event-testing.js.map +1 -1
  117. package/dist/event.cjs +5 -37
  118. package/dist/event.d.cts +295 -340
  119. package/dist/event.d.cts.map +1 -0
  120. package/dist/event.d.ts +295 -340
  121. package/dist/event.d.ts.map +1 -0
  122. package/dist/event.js +3 -21
  123. package/dist/exporters.cjs +12 -16
  124. package/dist/exporters.d.cts +86 -111
  125. package/dist/exporters.d.cts.map +1 -0
  126. package/dist/exporters.d.ts +86 -111
  127. package/dist/exporters.d.ts.map +1 -0
  128. package/dist/exporters.js +4 -4
  129. package/dist/filtering-span-processor-B8R8B7Uk.d.cts +59 -0
  130. package/dist/filtering-span-processor-B8R8B7Uk.d.cts.map +1 -0
  131. package/dist/filtering-span-processor-B8R8B7Uk.d.ts +59 -0
  132. package/dist/filtering-span-processor-B8R8B7Uk.d.ts.map +1 -0
  133. package/dist/filtering-span-processor.cjs +49 -9
  134. package/dist/filtering-span-processor.cjs.map +1 -1
  135. package/dist/filtering-span-processor.d.cts +2 -80
  136. package/dist/filtering-span-processor.d.ts +2 -80
  137. package/dist/filtering-span-processor.js +49 -2
  138. package/dist/filtering-span-processor.js.map +1 -1
  139. package/dist/functional-BGkT8J-h.js +1265 -0
  140. package/dist/functional-BGkT8J-h.js.map +1 -0
  141. package/dist/functional-C4CzoVrX.cjs +1312 -0
  142. package/dist/functional-C4CzoVrX.cjs.map +1 -0
  143. package/dist/functional.cjs +11 -57
  144. package/dist/functional.d.cts +96 -97
  145. package/dist/functional.d.cts.map +1 -0
  146. package/dist/functional.d.ts +96 -97
  147. package/dist/functional.d.ts.map +1 -0
  148. package/dist/functional.js +3 -20
  149. package/dist/http.cjs +276 -176
  150. package/dist/http.cjs.map +1 -1
  151. package/dist/http.d.cts +17 -37
  152. package/dist/http.d.cts.map +1 -0
  153. package/dist/http.d.ts +17 -37
  154. package/dist/http.d.ts.map +1 -0
  155. package/dist/http.js +275 -174
  156. package/dist/http.js.map +1 -1
  157. package/dist/index-CX0aG1Uh.d.ts +708 -0
  158. package/dist/index-CX0aG1Uh.d.ts.map +1 -0
  159. package/dist/index-DIWZFKUS.d.cts +708 -0
  160. package/dist/index-DIWZFKUS.d.cts.map +1 -0
  161. package/dist/index.cjs +1049 -1172
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +401 -551
  164. package/dist/index.d.cts.map +1 -0
  165. package/dist/index.d.ts +401 -551
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +912 -714
  168. package/dist/index.js.map +1 -1
  169. package/dist/init-CNp-ee80.d.cts +1157 -0
  170. package/dist/init-CNp-ee80.d.cts.map +1 -0
  171. package/dist/init-Ch6t7MNI.js +1015 -0
  172. package/dist/init-Ch6t7MNI.js.map +1 -0
  173. package/dist/init-DJQOdVlN.d.ts +1157 -0
  174. package/dist/init-DJQOdVlN.d.ts.map +1 -0
  175. package/dist/init-DvapOXCc.cjs +1092 -0
  176. package/dist/init-DvapOXCc.cjs.map +1 -0
  177. package/dist/instrumentation.cjs +159 -185
  178. package/dist/instrumentation.cjs.map +1 -1
  179. package/dist/instrumentation.d.cts +42 -40
  180. package/dist/instrumentation.d.cts.map +1 -0
  181. package/dist/instrumentation.d.ts +42 -40
  182. package/dist/instrumentation.d.ts.map +1 -0
  183. package/dist/instrumentation.js +158 -183
  184. package/dist/instrumentation.js.map +1 -1
  185. package/dist/logger-BauSUhUv.d.cts +313 -0
  186. package/dist/logger-BauSUhUv.d.cts.map +1 -0
  187. package/dist/logger-BauSUhUv.d.ts +313 -0
  188. package/dist/logger-BauSUhUv.d.ts.map +1 -0
  189. package/dist/logger.cjs +225 -25
  190. package/dist/logger.cjs.map +1 -1
  191. package/dist/logger.d.cts +2 -348
  192. package/dist/logger.d.ts +2 -348
  193. package/dist/logger.js +204 -4
  194. package/dist/logger.js.map +1 -1
  195. package/dist/messaging-adapters.cjs +292 -187
  196. package/dist/messaging-adapters.cjs.map +1 -1
  197. package/dist/messaging-adapters.d.cts +28 -66
  198. package/dist/messaging-adapters.d.cts.map +1 -0
  199. package/dist/messaging-adapters.d.ts +28 -66
  200. package/dist/messaging-adapters.d.ts.map +1 -0
  201. package/dist/messaging-adapters.js +291 -185
  202. package/dist/messaging-adapters.js.map +1 -1
  203. package/dist/messaging-testing.cjs +306 -372
  204. package/dist/messaging-testing.cjs.map +1 -1
  205. package/dist/messaging-testing.d.cts +194 -223
  206. package/dist/messaging-testing.d.cts.map +1 -0
  207. package/dist/messaging-testing.d.ts +194 -223
  208. package/dist/messaging-testing.d.ts.map +1 -0
  209. package/dist/messaging-testing.js +305 -371
  210. package/dist/messaging-testing.js.map +1 -1
  211. package/dist/messaging.cjs +757 -36
  212. package/dist/messaging.cjs.map +1 -1
  213. package/dist/messaging.d.cts +603 -644
  214. package/dist/messaging.d.cts.map +1 -0
  215. package/dist/messaging.d.ts +603 -644
  216. package/dist/messaging.d.ts.map +1 -0
  217. package/dist/messaging.js +756 -21
  218. package/dist/messaging.js.map +1 -1
  219. package/dist/metric-helpers.cjs +27 -27
  220. package/dist/metric-helpers.cjs.map +1 -1
  221. package/dist/metric-helpers.d.cts +4 -2
  222. package/dist/metric-helpers.d.cts.map +1 -0
  223. package/dist/metric-helpers.d.ts +4 -2
  224. package/dist/metric-helpers.d.ts.map +1 -0
  225. package/dist/metric-helpers.js +24 -4
  226. package/dist/metric-helpers.js.map +1 -1
  227. package/dist/metric-testing-DXdK3-Q3.d.ts +106 -0
  228. package/dist/metric-testing-DXdK3-Q3.d.ts.map +1 -0
  229. package/dist/metric-testing-MxvzChDp.d.cts +106 -0
  230. package/dist/metric-testing-MxvzChDp.d.cts.map +1 -0
  231. package/dist/metric-testing.cjs +93 -17
  232. package/dist/metric-testing.cjs.map +1 -1
  233. package/dist/metric-testing.d.cts +2 -110
  234. package/dist/metric-testing.d.ts +2 -110
  235. package/dist/metric-testing.js +91 -2
  236. package/dist/metric-testing.js.map +1 -1
  237. package/dist/metric.cjs +306 -22
  238. package/dist/metric.cjs.map +1 -1
  239. package/dist/metric.d.cts +170 -198
  240. package/dist/metric.d.cts.map +1 -0
  241. package/dist/metric.d.ts +170 -198
  242. package/dist/metric.d.ts.map +1 -0
  243. package/dist/metric.js +277 -7
  244. package/dist/metric.js.map +1 -1
  245. package/dist/node-require-DF5QBX6z.cjs +99 -0
  246. package/dist/node-require-DF5QBX6z.cjs.map +1 -0
  247. package/dist/node-require-Db1oDpLj.js +88 -0
  248. package/dist/node-require-Db1oDpLj.js.map +1 -0
  249. package/dist/operation-context-C-2hmmtP.js +59 -0
  250. package/dist/operation-context-C-2hmmtP.js.map +1 -0
  251. package/dist/operation-context-n4_obUwq.cjs +70 -0
  252. package/dist/operation-context-n4_obUwq.cjs.map +1 -0
  253. package/dist/parse-error.cjs +55 -9
  254. package/dist/parse-error.cjs.map +1 -1
  255. package/dist/parse-error.d.cts +12 -10
  256. package/dist/parse-error.d.cts.map +1 -0
  257. package/dist/parse-error.d.ts +12 -10
  258. package/dist/parse-error.d.ts.map +1 -0
  259. package/dist/parse-error.js +55 -2
  260. package/dist/parse-error.js.map +1 -1
  261. package/dist/pretty-console-exporter-CMzlrRNg.cjs +232 -0
  262. package/dist/pretty-console-exporter-CMzlrRNg.cjs.map +1 -0
  263. package/dist/pretty-console-exporter-DqKl_q9z.js +227 -0
  264. package/dist/pretty-console-exporter-DqKl_q9z.js.map +1 -0
  265. package/dist/processors.cjs +13 -17
  266. package/dist/processors.d.cts +3 -171
  267. package/dist/processors.d.ts +3 -171
  268. package/dist/processors.js +4 -4
  269. package/dist/register.cjs +35 -6
  270. package/dist/register.cjs.map +1 -1
  271. package/dist/register.d.cts +1 -2
  272. package/dist/register.d.ts +1 -2
  273. package/dist/register.js +36 -3
  274. package/dist/register.js.map +1 -1
  275. package/dist/registry-DfXA3R1L.js +184 -0
  276. package/dist/registry-DfXA3R1L.js.map +1 -0
  277. package/dist/registry-JZg2J3RZ.cjs +334 -0
  278. package/dist/registry-JZg2J3RZ.cjs.map +1 -0
  279. package/dist/sampling-CR0Va1VB.d.ts +351 -0
  280. package/dist/sampling-CR0Va1VB.d.ts.map +1 -0
  281. package/dist/sampling-DfYhDJij.d.cts +351 -0
  282. package/dist/sampling-DfYhDJij.d.cts.map +1 -0
  283. package/dist/sampling.cjs +452 -60
  284. package/dist/sampling.cjs.map +1 -1
  285. package/dist/sampling.d.cts +2 -379
  286. package/dist/sampling.d.ts +2 -379
  287. package/dist/sampling.js +441 -5
  288. package/dist/sampling.js.map +1 -1
  289. package/dist/security-schema.cjs +65 -46
  290. package/dist/security-schema.cjs.map +1 -1
  291. package/dist/security-schema.d.cts +23 -26
  292. package/dist/security-schema.d.cts.map +1 -0
  293. package/dist/security-schema.d.ts +23 -26
  294. package/dist/security-schema.d.ts.map +1 -0
  295. package/dist/security-schema.js +64 -45
  296. package/dist/security-schema.js.map +1 -1
  297. package/dist/semantic-conventions-FhSxv-bK.d.cts +32 -0
  298. package/dist/semantic-conventions-FhSxv-bK.d.cts.map +1 -0
  299. package/dist/semantic-conventions-FhSxv-bK.d.ts +32 -0
  300. package/dist/semantic-conventions-FhSxv-bK.d.ts.map +1 -0
  301. package/dist/semantic-conventions.cjs +15 -26
  302. package/dist/semantic-conventions.cjs.map +1 -1
  303. package/dist/semantic-conventions.d.cts +2 -29
  304. package/dist/semantic-conventions.d.ts +2 -29
  305. package/dist/semantic-conventions.js +12 -3
  306. package/dist/semantic-conventions.js.map +1 -1
  307. package/dist/semantic-helpers.cjs +440 -39
  308. package/dist/semantic-helpers.cjs.map +1 -1
  309. package/dist/semantic-helpers.d.cts +38 -45
  310. package/dist/semantic-helpers.d.cts.map +1 -0
  311. package/dist/semantic-helpers.d.ts +38 -45
  312. package/dist/semantic-helpers.d.ts.map +1 -0
  313. package/dist/semantic-helpers.js +438 -20
  314. package/dist/semantic-helpers.js.map +1 -1
  315. package/dist/span-name-normalizer-8ZOGJuwv.d.cts +70 -0
  316. package/dist/span-name-normalizer-8ZOGJuwv.d.cts.map +1 -0
  317. package/dist/span-name-normalizer-8ZOGJuwv.d.ts +70 -0
  318. package/dist/span-name-normalizer-8ZOGJuwv.d.ts.map +1 -0
  319. package/dist/span-name-normalizer.cjs +95 -17
  320. package/dist/span-name-normalizer.cjs.map +1 -1
  321. package/dist/span-name-normalizer.d.cts +2 -94
  322. package/dist/span-name-normalizer.d.ts +2 -94
  323. package/dist/span-name-normalizer.js +93 -2
  324. package/dist/span-name-normalizer.js.map +1 -1
  325. package/dist/stable-hash-BNTMrmdB.cjs +28 -0
  326. package/dist/stable-hash-BNTMrmdB.cjs.map +1 -0
  327. package/dist/stable-hash-Cg5cT34Q.js +23 -0
  328. package/dist/stable-hash-Cg5cT34Q.js.map +1 -0
  329. package/dist/structured-error-9--cxBay.js +143 -0
  330. package/dist/structured-error-9--cxBay.js.map +1 -0
  331. package/dist/structured-error-CHg7DoIQ.cjs +178 -0
  332. package/dist/structured-error-CHg7DoIQ.cjs.map +1 -0
  333. package/dist/tail-sampling-processor.cjs +26 -13
  334. package/dist/tail-sampling-processor.cjs.map +1 -1
  335. package/dist/tail-sampling-processor.d.cts +11 -23
  336. package/dist/tail-sampling-processor.d.cts.map +1 -0
  337. package/dist/tail-sampling-processor.d.ts +11 -23
  338. package/dist/tail-sampling-processor.d.ts.map +1 -0
  339. package/dist/tail-sampling-processor.js +27 -6
  340. package/dist/tail-sampling-processor.js.map +1 -1
  341. package/dist/test-span-collector.cjs +70 -72
  342. package/dist/test-span-collector.cjs.map +1 -1
  343. package/dist/test-span-collector.d.cts +25 -43
  344. package/dist/test-span-collector.d.cts.map +1 -0
  345. package/dist/test-span-collector.d.ts +25 -43
  346. package/dist/test-span-collector.d.ts.map +1 -0
  347. package/dist/test-span-collector.js +69 -70
  348. package/dist/test-span-collector.js.map +1 -1
  349. package/dist/testing.cjs +389 -278
  350. package/dist/testing.cjs.map +1 -1
  351. package/dist/testing.d.cts +39 -62
  352. package/dist/testing.d.cts.map +1 -0
  353. package/dist/testing.d.ts +39 -62
  354. package/dist/testing.d.ts.map +1 -0
  355. package/dist/testing.js +386 -265
  356. package/dist/testing.js.map +1 -1
  357. package/dist/trace-context-Cijqoi6e.d.cts +212 -0
  358. package/dist/trace-context-Cijqoi6e.d.cts.map +1 -0
  359. package/dist/trace-context-Cijqoi6e.d.ts +212 -0
  360. package/dist/trace-context-Cijqoi6e.d.ts.map +1 -0
  361. package/dist/trace-helpers.cjs +634 -54
  362. package/dist/trace-helpers.cjs.map +1 -1
  363. package/dist/trace-helpers.d.cts +17 -49
  364. package/dist/trace-helpers.d.cts.map +1 -0
  365. package/dist/trace-helpers.d.ts +17 -49
  366. package/dist/trace-helpers.d.ts.map +1 -0
  367. package/dist/trace-helpers.js +624 -3
  368. package/dist/trace-helpers.js.map +1 -1
  369. package/dist/tracer-provider.cjs +227 -16
  370. package/dist/tracer-provider.cjs.map +1 -1
  371. package/dist/tracer-provider.d.cts +5 -4
  372. package/dist/tracer-provider.d.cts.map +1 -0
  373. package/dist/tracer-provider.d.ts +5 -4
  374. package/dist/tracer-provider.d.ts.map +1 -0
  375. package/dist/tracer-provider.js +227 -2
  376. package/dist/tracer-provider.js.map +1 -1
  377. package/dist/track-3HY4NGV-.cjs +1212 -0
  378. package/dist/track-3HY4NGV-.cjs.map +1 -0
  379. package/dist/track-nsKVy-pj.js +1111 -0
  380. package/dist/track-nsKVy-pj.js.map +1 -0
  381. package/dist/validate.cjs +178 -115
  382. package/dist/validate.cjs.map +1 -1
  383. package/dist/validate.d.cts +40 -64
  384. package/dist/validate.d.cts.map +1 -0
  385. package/dist/validate.d.ts +40 -64
  386. package/dist/validate.d.ts.map +1 -0
  387. package/dist/validate.js +177 -113
  388. package/dist/validate.js.map +1 -1
  389. package/dist/validation-attributes.cjs +42 -17
  390. package/dist/validation-attributes.cjs.map +1 -1
  391. package/dist/validation-attributes.d.cts +13 -20
  392. package/dist/validation-attributes.d.cts.map +1 -0
  393. package/dist/validation-attributes.d.ts +13 -20
  394. package/dist/validation-attributes.d.ts.map +1 -0
  395. package/dist/validation-attributes.js +40 -2
  396. package/dist/validation-attributes.js.map +1 -1
  397. package/dist/webhook.cjs +286 -256
  398. package/dist/webhook.cjs.map +1 -1
  399. package/dist/webhook.d.cts +157 -192
  400. package/dist/webhook.d.cts.map +1 -0
  401. package/dist/webhook.d.ts +157 -192
  402. package/dist/webhook.d.ts.map +1 -0
  403. package/dist/webhook.js +285 -254
  404. package/dist/webhook.js.map +1 -1
  405. package/dist/workflow-distributed.cjs +498 -412
  406. package/dist/workflow-distributed.cjs.map +1 -1
  407. package/dist/workflow-distributed.d.cts +163 -173
  408. package/dist/workflow-distributed.d.cts.map +1 -0
  409. package/dist/workflow-distributed.d.ts +163 -173
  410. package/dist/workflow-distributed.d.ts.map +1 -0
  411. package/dist/workflow-distributed.js +497 -410
  412. package/dist/workflow-distributed.js.map +1 -1
  413. package/dist/workflow.cjs +405 -40
  414. package/dist/workflow.cjs.map +1 -1
  415. package/dist/workflow.d.cts +78 -131
  416. package/dist/workflow.d.cts.map +1 -0
  417. package/dist/workflow.d.ts +78 -131
  418. package/dist/workflow.d.ts.map +1 -0
  419. package/dist/workflow.js +403 -21
  420. package/dist/workflow.js.map +1 -1
  421. package/dist/yaml-config-B3dQ82GR.cjs +272 -0
  422. package/dist/yaml-config-B3dQ82GR.cjs.map +1 -0
  423. package/dist/yaml-config.cjs +5 -24
  424. package/dist/yaml-config.d.cts +30 -64
  425. package/dist/yaml-config.d.cts.map +1 -0
  426. package/dist/yaml-config.d.ts +30 -64
  427. package/dist/yaml-config.d.ts.map +1 -0
  428. package/dist/yaml-config.js +226 -7
  429. package/dist/yaml-config.js.map +1 -1
  430. package/package.json +4 -4
  431. package/src/index.ts +3 -0
  432. package/src/request-logger.test.ts +53 -1
  433. package/src/request-logger.ts +58 -0
  434. package/src/validate.test.ts +3 -1
  435. package/src/validate.ts +9 -3
  436. package/dist/attributes.cjs.map +0 -1
  437. package/dist/attributes.js.map +0 -1
  438. package/dist/chunk-2ZKEORFN.cjs +0 -14
  439. package/dist/chunk-2ZKEORFN.cjs.map +0 -1
  440. package/dist/chunk-3QXBFGKP.js +0 -344
  441. package/dist/chunk-3QXBFGKP.js.map +0 -1
  442. package/dist/chunk-454CH4OV.js +0 -744
  443. package/dist/chunk-454CH4OV.js.map +0 -1
  444. package/dist/chunk-4A53YIAX.js +0 -180
  445. package/dist/chunk-4A53YIAX.js.map +0 -1
  446. package/dist/chunk-4IFSYQVX.js +0 -337
  447. package/dist/chunk-4IFSYQVX.js.map +0 -1
  448. package/dist/chunk-4P6ZOARG.cjs +0 -33
  449. package/dist/chunk-4P6ZOARG.cjs.map +0 -1
  450. package/dist/chunk-55ER2KD5.js +0 -228
  451. package/dist/chunk-55ER2KD5.js.map +0 -1
  452. package/dist/chunk-5ZN622AO.js +0 -73
  453. package/dist/chunk-5ZN622AO.js.map +0 -1
  454. package/dist/chunk-66YJ66GG.js +0 -1021
  455. package/dist/chunk-66YJ66GG.js.map +0 -1
  456. package/dist/chunk-6S5RUKU3.cjs +0 -347
  457. package/dist/chunk-6S5RUKU3.cjs.map +0 -1
  458. package/dist/chunk-6UQRVUN3.js +0 -222
  459. package/dist/chunk-6UQRVUN3.js.map +0 -1
  460. package/dist/chunk-7552UTQW.js +0 -11
  461. package/dist/chunk-7552UTQW.js.map +0 -1
  462. package/dist/chunk-7EQ4G4SI.cjs +0 -146
  463. package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
  464. package/dist/chunk-7SAWIN74.js +0 -285
  465. package/dist/chunk-7SAWIN74.js.map +0 -1
  466. package/dist/chunk-A4E5AQFK.js +0 -30
  467. package/dist/chunk-A4E5AQFK.js.map +0 -1
  468. package/dist/chunk-ALPYR2GC.js +0 -1061
  469. package/dist/chunk-ALPYR2GC.js.map +0 -1
  470. package/dist/chunk-B7SWBE4P.cjs +0 -799
  471. package/dist/chunk-B7SWBE4P.cjs.map +0 -1
  472. package/dist/chunk-BZHG5IZ4.js +0 -73
  473. package/dist/chunk-BZHG5IZ4.js.map +0 -1
  474. package/dist/chunk-CEAQK2QY.cjs +0 -32
  475. package/dist/chunk-CEAQK2QY.cjs.map +0 -1
  476. package/dist/chunk-CMHVQR6P.js +0 -170
  477. package/dist/chunk-CMHVQR6P.js.map +0 -1
  478. package/dist/chunk-CU6IDACR.cjs +0 -224
  479. package/dist/chunk-CU6IDACR.cjs.map +0 -1
  480. package/dist/chunk-D4TM63S3.js +0 -795
  481. package/dist/chunk-D4TM63S3.js.map +0 -1
  482. package/dist/chunk-DCEDJQGG.js +0 -28
  483. package/dist/chunk-DCEDJQGG.js.map +0 -1
  484. package/dist/chunk-DPSA4QLA.js +0 -344
  485. package/dist/chunk-DPSA4QLA.js.map +0 -1
  486. package/dist/chunk-E6TERL5O.cjs +0 -23
  487. package/dist/chunk-E6TERL5O.cjs.map +0 -1
  488. package/dist/chunk-EE6CPXKH.cjs +0 -164
  489. package/dist/chunk-EE6CPXKH.cjs.map +0 -1
  490. package/dist/chunk-EOFB7XCL.cjs +0 -837
  491. package/dist/chunk-EOFB7XCL.cjs.map +0 -1
  492. package/dist/chunk-ESLWRGAG.cjs +0 -92
  493. package/dist/chunk-ESLWRGAG.cjs.map +0 -1
  494. package/dist/chunk-ESMHTKLJ.cjs +0 -206
  495. package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
  496. package/dist/chunk-FMTHVSYY.cjs +0 -1039
  497. package/dist/chunk-FMTHVSYY.cjs.map +0 -1
  498. package/dist/chunk-FU6R566Y.cjs +0 -236
  499. package/dist/chunk-FU6R566Y.cjs.map +0 -1
  500. package/dist/chunk-GYR5K654.js +0 -91
  501. package/dist/chunk-GYR5K654.js.map +0 -1
  502. package/dist/chunk-HA2WBOGQ.js +0 -57
  503. package/dist/chunk-HA2WBOGQ.js.map +0 -1
  504. package/dist/chunk-HT5JQKN2.js +0 -118
  505. package/dist/chunk-HT5JQKN2.js.map +0 -1
  506. package/dist/chunk-INJD3G4K.cjs +0 -340
  507. package/dist/chunk-INJD3G4K.cjs.map +0 -1
  508. package/dist/chunk-IOYFAFHJ.cjs +0 -95
  509. package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
  510. package/dist/chunk-J5QENANM.js +0 -87
  511. package/dist/chunk-J5QENANM.js.map +0 -1
  512. package/dist/chunk-J7VGRIAJ.js +0 -64
  513. package/dist/chunk-J7VGRIAJ.js.map +0 -1
  514. package/dist/chunk-KFOHQK7X.js +0 -144
  515. package/dist/chunk-KFOHQK7X.js.map +0 -1
  516. package/dist/chunk-KIL5CUN6.js +0 -31
  517. package/dist/chunk-KIL5CUN6.js.map +0 -1
  518. package/dist/chunk-KYXZS3EA.cjs +0 -100
  519. package/dist/chunk-KYXZS3EA.cjs.map +0 -1
  520. package/dist/chunk-LITNXTTT.js +0 -3
  521. package/dist/chunk-LITNXTTT.js.map +0 -1
  522. package/dist/chunk-LVIPBYFE.js +0 -157
  523. package/dist/chunk-LVIPBYFE.js.map +0 -1
  524. package/dist/chunk-M3LFHHTN.cjs +0 -764
  525. package/dist/chunk-M3LFHHTN.cjs.map +0 -1
  526. package/dist/chunk-N25JDZSC.js +0 -95
  527. package/dist/chunk-N25JDZSC.js.map +0 -1
  528. package/dist/chunk-NEIB3TLD.cjs +0 -360
  529. package/dist/chunk-NEIB3TLD.cjs.map +0 -1
  530. package/dist/chunk-NENU7E6V.cjs +0 -344
  531. package/dist/chunk-NENU7E6V.cjs.map +0 -1
  532. package/dist/chunk-NVAI5CCN.cjs +0 -39
  533. package/dist/chunk-NVAI5CCN.cjs.map +0 -1
  534. package/dist/chunk-NZ72VDNY.cjs +0 -4
  535. package/dist/chunk-NZ72VDNY.cjs.map +0 -1
  536. package/dist/chunk-OPPXYVEZ.cjs +0 -131
  537. package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
  538. package/dist/chunk-Q4EULJQY.js +0 -35
  539. package/dist/chunk-Q4EULJQY.js.map +0 -1
  540. package/dist/chunk-QF7ARNUM.js +0 -339
  541. package/dist/chunk-QF7ARNUM.js.map +0 -1
  542. package/dist/chunk-QWW3E3JM.cjs +0 -178
  543. package/dist/chunk-QWW3E3JM.cjs.map +0 -1
  544. package/dist/chunk-R7QYGZUP.cjs +0 -1075
  545. package/dist/chunk-R7QYGZUP.cjs.map +0 -1
  546. package/dist/chunk-RUPKBKUF.js +0 -352
  547. package/dist/chunk-RUPKBKUF.js.map +0 -1
  548. package/dist/chunk-SEO6NAQT.js +0 -14
  549. package/dist/chunk-SEO6NAQT.js.map +0 -1
  550. package/dist/chunk-T4B5LB6E.cjs +0 -66
  551. package/dist/chunk-T4B5LB6E.cjs.map +0 -1
  552. package/dist/chunk-T5WRA76K.cjs +0 -32
  553. package/dist/chunk-T5WRA76K.cjs.map +0 -1
  554. package/dist/chunk-T7JO2TCP.js +0 -1233
  555. package/dist/chunk-T7JO2TCP.js.map +0 -1
  556. package/dist/chunk-TC5ZPWM4.cjs +0 -289
  557. package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
  558. package/dist/chunk-TQ5UWA7S.js +0 -26
  559. package/dist/chunk-TQ5UWA7S.js.map +0 -1
  560. package/dist/chunk-UIKYE2QZ.js +0 -833
  561. package/dist/chunk-UIKYE2QZ.js.map +0 -1
  562. package/dist/chunk-UNPLAVE7.js +0 -21
  563. package/dist/chunk-UNPLAVE7.js.map +0 -1
  564. package/dist/chunk-UY3UYPBZ.cjs +0 -77
  565. package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
  566. package/dist/chunk-V7UBMJAB.cjs +0 -1242
  567. package/dist/chunk-V7UBMJAB.cjs.map +0 -1
  568. package/dist/chunk-VH77IPJN.cjs +0 -358
  569. package/dist/chunk-VH77IPJN.cjs.map +0 -1
  570. package/dist/chunk-VQTCQKHQ.cjs +0 -17
  571. package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
  572. package/dist/chunk-WGWSHJ2N.js +0 -38
  573. package/dist/chunk-WGWSHJ2N.js.map +0 -1
  574. package/dist/chunk-WJH6IYU2.cjs +0 -32
  575. package/dist/chunk-WJH6IYU2.cjs.map +0 -1
  576. package/dist/chunk-YREV3LGG.cjs +0 -61
  577. package/dist/chunk-YREV3LGG.cjs.map +0 -1
  578. package/dist/chunk-YTXEZ4SD.cjs +0 -77
  579. package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
  580. package/dist/chunk-ZNMBW67B.cjs +0 -40
  581. package/dist/chunk-ZNMBW67B.cjs.map +0 -1
  582. package/dist/correlation-id.cjs.map +0 -1
  583. package/dist/correlation-id.js.map +0 -1
  584. package/dist/define-event-BL6Li7CM.d.ts +0 -23
  585. package/dist/define-event-ClP3T1Jx.d.cts +0 -23
  586. package/dist/event-subscriber.cjs.map +0 -1
  587. package/dist/event-subscriber.js.map +0 -1
  588. package/dist/event.cjs.map +0 -1
  589. package/dist/event.js.map +0 -1
  590. package/dist/exporters.cjs.map +0 -1
  591. package/dist/exporters.js.map +0 -1
  592. package/dist/functional.cjs.map +0 -1
  593. package/dist/functional.js.map +0 -1
  594. package/dist/init-DIowiiCh.d.ts +0 -1167
  595. package/dist/init-j-A1zI16.d.cts +0 -1167
  596. package/dist/processors.cjs.map +0 -1
  597. package/dist/processors.js.map +0 -1
  598. package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
  599. package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
  600. package/dist/utils-BahBCFtJ.d.cts +0 -712
  601. package/dist/utils-CLKwaUlG.d.ts +0 -712
  602. package/dist/yaml-config.cjs.map +0 -1
@@ -1,198 +1,172 @@
1
- 'use strict';
2
-
3
- var chunkR7QYGZUP_cjs = require('./chunk-R7QYGZUP.cjs');
4
- require('./chunk-QWW3E3JM.cjs');
5
- var chunkCEAQK2QY_cjs = require('./chunk-CEAQK2QY.cjs');
6
- require('./chunk-ZNMBW67B.cjs');
7
- require('./chunk-IOYFAFHJ.cjs');
8
- require('./chunk-NEIB3TLD.cjs');
9
- require('./chunk-CU6IDACR.cjs');
10
- require('./chunk-6S5RUKU3.cjs');
11
- var chunkNVAI5CCN_cjs = require('./chunk-NVAI5CCN.cjs');
12
- require('./chunk-VH77IPJN.cjs');
13
- require('./chunk-FU6R566Y.cjs');
14
- require('./chunk-ESLWRGAG.cjs');
15
- require('./chunk-YREV3LGG.cjs');
16
- var sdkNode = require('@opentelemetry/sdk-node');
17
- var exporterTraceOtlpHttp = require('@opentelemetry/exporter-trace-otlp-http');
18
- var exporterLogsOtlpHttp = require('@opentelemetry/exporter-logs-otlp-http');
19
- var sdkLogs = require('@opentelemetry/sdk-logs');
20
- var sdkTraceBase = require('@opentelemetry/sdk-trace-base');
21
- var resources = require('@opentelemetry/resources');
22
- var incubating = require('@opentelemetry/semantic-conventions/incubating');
23
- var exporterMetricsOtlpHttp = require('@opentelemetry/exporter-metrics-otlp-http');
24
- var sdkMetrics = require('@opentelemetry/sdk-metrics');
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_node_require = require('./node-require-DF5QBX6z.cjs');
3
+ const require_init = require('./init-DvapOXCc.cjs');
4
+ const require_tail_sampling_processor = require('./tail-sampling-processor.cjs');
5
+ let _opentelemetry_sdk_node = require("@opentelemetry/sdk-node");
6
+ let _opentelemetry_sdk_trace_base = require("@opentelemetry/sdk-trace-base");
7
+ let _opentelemetry_resources = require("@opentelemetry/resources");
8
+ let _opentelemetry_sdk_metrics = require("@opentelemetry/sdk-metrics");
9
+ let _opentelemetry_exporter_metrics_otlp_http = require("@opentelemetry/exporter-metrics-otlp-http");
10
+ let _opentelemetry_exporter_trace_otlp_http = require("@opentelemetry/exporter-trace-otlp-http");
11
+ let _opentelemetry_exporter_logs_otlp_http = require("@opentelemetry/exporter-logs-otlp-http");
12
+ let _opentelemetry_sdk_logs = require("@opentelemetry/sdk-logs");
13
+ let _opentelemetry_semantic_conventions_incubating = require("@opentelemetry/semantic-conventions/incubating");
25
14
 
15
+ //#region src/instrumentation.ts
16
+ /**
17
+ * Parse OTLP headers string into object format
18
+ * @param headersString - Headers as "key1=value1,key2=value2" or "Authorization=Basic ..."
19
+ * @returns Headers object for OTLP exporters
20
+ */
26
21
  function parseOtlpHeaders(headersString) {
27
- if (!headersString) return {};
28
- const headers = {};
29
- const pairs = headersString.split(",");
30
- for (const pair of pairs) {
31
- const [key, ...valueParts] = pair.split("=");
32
- if (key && valueParts.length > 0) {
33
- headers[key.trim()] = valueParts.join("=").trim();
34
- }
35
- }
36
- return headers;
22
+ if (!headersString) return {};
23
+ const headers = {};
24
+ const pairs = headersString.split(",");
25
+ for (const pair of pairs) {
26
+ const [key, ...valueParts] = pair.split("=");
27
+ if (key && valueParts.length > 0) headers[key.trim()] = valueParts.join("=").trim();
28
+ }
29
+ return headers;
37
30
  }
31
+ /**
32
+ * Parse resource attributes string into object format
33
+ * @param attributesString - Attributes as "key1=value1,key2=value2"
34
+ * @returns Resource attributes object
35
+ */
38
36
  function parseResourceAttributes(attributesString) {
39
- if (!attributesString) return {};
40
- const attributes = {};
41
- const pairs = attributesString.split(",");
42
- for (const pair of pairs) {
43
- const [key, ...valueParts] = pair.split("=");
44
- if (key && valueParts.length > 0) {
45
- attributes[key.trim()] = valueParts.join("=").trim();
46
- }
47
- }
48
- return attributes;
37
+ if (!attributesString) return {};
38
+ const attributes = {};
39
+ const pairs = attributesString.split(",");
40
+ for (const pair of pairs) {
41
+ const [key, ...valueParts] = pair.split("=");
42
+ if (key && valueParts.length > 0) attributes[key.trim()] = valueParts.join("=").trim();
43
+ }
44
+ return attributes;
49
45
  }
50
- var currentSDK = null;
51
- var shutdownHandlerRegistered = false;
46
+ /**
47
+ * Initialize OpenTelemetry instrumentation with OTLP exporters
48
+ *
49
+ * This sets up:
50
+ * - Traces (OTLP HTTP)
51
+ * - Metrics (OTLP HTTP)
52
+ * - Logs (OTLP HTTP)
53
+ * - Auto-instrumentation for common Node.js libraries
54
+ *
55
+ * @example
56
+ * // Call this at the very start of your application
57
+ * import { initInstrumentation } from '@your-org/otel-decorators'
58
+ *
59
+ * initInstrumentation({
60
+ * serviceName: 'my-service' }
61
+ * serviceVersion: '1.0.0',
62
+ * deploymentEnvironment: 'production',
63
+ * otlpEndpoint: 'http://localhost:4318'
64
+ * })
65
+ *
66
+ * // Or with async resource detection (top-level await required)
67
+ * await initInstrumentation({
68
+ * serviceName: 'my-service' }
69
+ * detectResources: true
70
+ * })
71
+ */
72
+ let currentSDK = null;
73
+ let shutdownHandlerRegistered = false;
74
+ /**
75
+ * Shutdown the OpenTelemetry SDK gracefully
76
+ * Call this before process exit or during hot-reloads
77
+ */
52
78
  async function shutdownInstrumentation(sdk) {
53
- const sdkToShutdown = sdk || currentSDK;
54
- if (!sdkToShutdown) {
55
- chunkR7QYGZUP_cjs.getLogger().warn({}, "No SDK to shutdown");
56
- return;
57
- }
58
- try {
59
- await sdkToShutdown.shutdown();
60
- chunkR7QYGZUP_cjs.getLogger().info({}, "OpenTelemetry terminated successfully");
61
- if (sdkToShutdown === currentSDK) {
62
- currentSDK = null;
63
- }
64
- } catch (error) {
65
- chunkR7QYGZUP_cjs.getLogger().error(
66
- {
67
- err: error instanceof Error ? error : void 0
68
- },
69
- "Error terminating OpenTelemetry"
70
- );
71
- throw error;
72
- }
79
+ const sdkToShutdown = sdk || currentSDK;
80
+ if (!sdkToShutdown) {
81
+ require_init.getLogger().warn({}, "No SDK to shutdown");
82
+ return;
83
+ }
84
+ try {
85
+ await sdkToShutdown.shutdown();
86
+ require_init.getLogger().info({}, "OpenTelemetry terminated successfully");
87
+ if (sdkToShutdown === currentSDK) currentSDK = null;
88
+ } catch (error) {
89
+ require_init.getLogger().error({ err: error instanceof Error ? error : void 0 }, "Error terminating OpenTelemetry");
90
+ throw error;
91
+ }
73
92
  }
74
93
  async function initInstrumentation(config) {
75
- if (currentSDK) {
76
- chunkR7QYGZUP_cjs.getLogger().info(
77
- {},
78
- "Shutting down existing OpenTelemetry SDK before reinitializing..."
79
- );
80
- await shutdownInstrumentation(currentSDK);
81
- }
82
- const otlpHeaders = parseOtlpHeaders(config.headers);
83
- const customResourceAttributes = parseResourceAttributes(
84
- config.resourceAttributes
85
- );
86
- let resource;
87
- const detectors = [resources.processDetector, resources.hostDetector];
88
- try {
89
- const awsDetectors = await import('@opentelemetry/resource-detector-aws');
90
- detectors.push(
91
- awsDetectors.awsEc2Detector,
92
- awsDetectors.awsEcsDetector,
93
- awsDetectors.awsEksDetector
94
- );
95
- } catch {
96
- }
97
- try {
98
- const gcpDetectors = await import('@opentelemetry/resource-detector-gcp');
99
- detectors.push(gcpDetectors.gcpDetector);
100
- } catch {
101
- }
102
- try {
103
- const containerDetectors = await import('@opentelemetry/resource-detector-container');
104
- detectors.push(containerDetectors.containerDetector);
105
- } catch {
106
- }
107
- if (config.detectResources) {
108
- const detectedResource = await resources.detectResources({
109
- detectors
110
- });
111
- resource = detectedResource.merge(
112
- resources.resourceFromAttributes({
113
- [incubating.ATTR_SERVICE_NAME]: config.serviceName,
114
- [incubating.ATTR_SERVICE_VERSION]: config.serviceVersion || "1.0.0",
115
- "deployment.environment": config.deploymentEnvironment || "development",
116
- ...customResourceAttributes
117
- // Merge custom resource attributes
118
- })
119
- );
120
- } else {
121
- resource = resources.resourceFromAttributes({
122
- [incubating.ATTR_SERVICE_NAME]: config.serviceName,
123
- [incubating.ATTR_SERVICE_VERSION]: config.serviceVersion || "1.0.0",
124
- "deployment.environment": config.deploymentEnvironment || "development",
125
- ...customResourceAttributes
126
- // Merge custom resource attributes
127
- });
128
- }
129
- let instrumentations = config.instrumentations || [];
130
- if (config.selectiveInstrumentation === false) {
131
- const mod = chunkNVAI5CCN_cjs.requireModule("@opentelemetry/auto-instrumentations-node");
132
- instrumentations = [mod.getNodeAutoInstrumentations()];
133
- }
134
- const traceExporter = new exporterTraceOtlpHttp.OTLPTraceExporter({
135
- url: `${config.otlpEndpoint || "http://localhost:4318"}/v1/traces`,
136
- headers: otlpHeaders
137
- });
138
- const spanProcessor = new chunkCEAQK2QY_cjs.TailSamplingSpanProcessor(
139
- new sdkTraceBase.BatchSpanProcessor(traceExporter)
140
- );
141
- const sdk = new sdkNode.NodeSDK({
142
- resource,
143
- spanProcessor,
144
- // Use our wrapped processor instead of traceExporter directly
145
- metricReader: new sdkMetrics.PeriodicExportingMetricReader({
146
- exporter: new exporterMetricsOtlpHttp.OTLPMetricExporter({
147
- url: `${config.otlpEndpoint || "http://localhost:4318"}/v1/metrics`,
148
- headers: otlpHeaders
149
- })
150
- }),
151
- logRecordProcessors: [
152
- new sdkLogs.BatchLogRecordProcessor(
153
- new exporterLogsOtlpHttp.OTLPLogExporter({
154
- url: `${config.otlpEndpoint || "http://localhost:4318"}/v1/logs`,
155
- headers: otlpHeaders
156
- })
157
- )
158
- ],
159
- instrumentations
160
- });
161
- try {
162
- await sdk.start();
163
- chunkR7QYGZUP_cjs.getLogger().info({}, "OpenTelemetry instrumentation started successfully");
164
- } catch (error) {
165
- chunkR7QYGZUP_cjs.getLogger().error(
166
- {
167
- err: error instanceof Error ? error : void 0
168
- },
169
- "Failed to start OpenTelemetry SDK"
170
- );
171
- throw error;
172
- }
173
- currentSDK = sdk;
174
- if (!shutdownHandlerRegistered) {
175
- shutdownHandlerRegistered = true;
176
- const shutdownHandler = () => {
177
- shutdownInstrumentation().then(() => {
178
- process.exit(0);
179
- }).catch((error) => {
180
- chunkR7QYGZUP_cjs.getLogger().error(
181
- {
182
- err: error instanceof Error ? error : void 0
183
- },
184
- "Shutdown error"
185
- );
186
- process.exit(1);
187
- });
188
- };
189
- process.on("SIGTERM", shutdownHandler);
190
- process.on("SIGINT", shutdownHandler);
191
- }
192
- return sdk;
94
+ if (currentSDK) {
95
+ require_init.getLogger().info({}, "Shutting down existing OpenTelemetry SDK before reinitializing...");
96
+ await shutdownInstrumentation(currentSDK);
97
+ }
98
+ const otlpHeaders = parseOtlpHeaders(config.headers);
99
+ const customResourceAttributes = parseResourceAttributes(config.resourceAttributes);
100
+ let resource;
101
+ const detectors = [_opentelemetry_resources.processDetector, _opentelemetry_resources.hostDetector];
102
+ try {
103
+ const awsDetectors = await import("@opentelemetry/resource-detector-aws");
104
+ detectors.push(awsDetectors.awsEc2Detector, awsDetectors.awsEcsDetector, awsDetectors.awsEksDetector);
105
+ } catch {}
106
+ try {
107
+ const gcpDetectors = await import("@opentelemetry/resource-detector-gcp");
108
+ detectors.push(gcpDetectors.gcpDetector);
109
+ } catch {}
110
+ try {
111
+ const containerDetectors = await import("@opentelemetry/resource-detector-container");
112
+ detectors.push(containerDetectors.containerDetector);
113
+ } catch {}
114
+ if (config.detectResources) resource = (await (0, _opentelemetry_resources.detectResources)({ detectors })).merge((0, _opentelemetry_resources.resourceFromAttributes)({
115
+ [_opentelemetry_semantic_conventions_incubating.ATTR_SERVICE_NAME]: config.serviceName,
116
+ [_opentelemetry_semantic_conventions_incubating.ATTR_SERVICE_VERSION]: config.serviceVersion || "1.0.0",
117
+ "deployment.environment": config.deploymentEnvironment || "development",
118
+ ...customResourceAttributes
119
+ }));
120
+ else resource = (0, _opentelemetry_resources.resourceFromAttributes)({
121
+ [_opentelemetry_semantic_conventions_incubating.ATTR_SERVICE_NAME]: config.serviceName,
122
+ [_opentelemetry_semantic_conventions_incubating.ATTR_SERVICE_VERSION]: config.serviceVersion || "1.0.0",
123
+ "deployment.environment": config.deploymentEnvironment || "development",
124
+ ...customResourceAttributes
125
+ });
126
+ let instrumentations = config.instrumentations || [];
127
+ if (config.selectiveInstrumentation === false) instrumentations = [require_node_require.requireModule("@opentelemetry/auto-instrumentations-node").getNodeAutoInstrumentations()];
128
+ const spanProcessor = new require_tail_sampling_processor.TailSamplingSpanProcessor(new _opentelemetry_sdk_trace_base.BatchSpanProcessor(new _opentelemetry_exporter_trace_otlp_http.OTLPTraceExporter({
129
+ url: `${config.otlpEndpoint || "http://localhost:4318"}/v1/traces`,
130
+ headers: otlpHeaders
131
+ })));
132
+ const sdk = new _opentelemetry_sdk_node.NodeSDK({
133
+ resource,
134
+ spanProcessor,
135
+ metricReader: new _opentelemetry_sdk_metrics.PeriodicExportingMetricReader({ exporter: new _opentelemetry_exporter_metrics_otlp_http.OTLPMetricExporter({
136
+ url: `${config.otlpEndpoint || "http://localhost:4318"}/v1/metrics`,
137
+ headers: otlpHeaders
138
+ }) }),
139
+ logRecordProcessors: [new _opentelemetry_sdk_logs.BatchLogRecordProcessor(new _opentelemetry_exporter_logs_otlp_http.OTLPLogExporter({
140
+ url: `${config.otlpEndpoint || "http://localhost:4318"}/v1/logs`,
141
+ headers: otlpHeaders
142
+ }))],
143
+ instrumentations
144
+ });
145
+ try {
146
+ await sdk.start();
147
+ require_init.getLogger().info({}, "OpenTelemetry instrumentation started successfully");
148
+ } catch (error) {
149
+ require_init.getLogger().error({ err: error instanceof Error ? error : void 0 }, "Failed to start OpenTelemetry SDK");
150
+ throw error;
151
+ }
152
+ currentSDK = sdk;
153
+ if (!shutdownHandlerRegistered) {
154
+ shutdownHandlerRegistered = true;
155
+ const shutdownHandler = () => {
156
+ shutdownInstrumentation().then(() => {
157
+ process.exit(0);
158
+ }).catch((error) => {
159
+ require_init.getLogger().error({ err: error instanceof Error ? error : void 0 }, "Shutdown error");
160
+ process.exit(1);
161
+ });
162
+ };
163
+ process.on("SIGTERM", shutdownHandler);
164
+ process.on("SIGINT", shutdownHandler);
165
+ }
166
+ return sdk;
193
167
  }
194
168
 
169
+ //#endregion
195
170
  exports.initInstrumentation = initInstrumentation;
196
171
  exports.shutdownInstrumentation = shutdownInstrumentation;
197
- //# sourceMappingURL=instrumentation.cjs.map
198
172
  //# sourceMappingURL=instrumentation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/instrumentation.ts"],"names":["getLogger","processDetector","hostDetector","detectResources","resourceFromAttributes","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","requireModule","OTLPTraceExporter","TailSamplingSpanProcessor","BatchSpanProcessor","NodeSDK","PeriodicExportingMetricReader","OTLPMetricExporter","BatchLogRecordProcessor","OTLPLogExporter"],"mappings":"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","file":"instrumentation.cjs","sourcesContent":["import { NodeSDK } from '@opentelemetry/sdk-node';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs';\nimport { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { TailSamplingSpanProcessor } from './tail-sampling-processor';\nimport { getLogger } from './init';\nimport {\n resourceFromAttributes,\n detectResources,\n processDetector,\n hostDetector,\n type Resource,\n type ResourceDetector,\n} from '@opentelemetry/resources';\nimport {\n ATTR_SERVICE_NAME,\n ATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions/incubating';\nimport { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';\nimport { requireModule } from './node-require';\n\n/**\n * Parse OTLP headers string into object format\n * @param headersString - Headers as \"key1=value1,key2=value2\" or \"Authorization=Basic ...\"\n * @returns Headers object for OTLP exporters\n */\nfunction parseOtlpHeaders(headersString?: string): Record<string, string> {\n if (!headersString) return {};\n\n const headers: Record<string, string> = {};\n const pairs = headersString.split(',');\n\n for (const pair of pairs) {\n const [key, ...valueParts] = pair.split('=');\n if (key && valueParts.length > 0) {\n headers[key.trim()] = valueParts.join('=').trim();\n }\n }\n\n return headers;\n}\n\n/**\n * Parse resource attributes string into object format\n * @param attributesString - Attributes as \"key1=value1,key2=value2\"\n * @returns Resource attributes object\n */\nfunction parseResourceAttributes(\n attributesString?: string,\n): Record<string, string> {\n if (!attributesString) return {};\n\n const attributes: Record<string, string> = {};\n const pairs = attributesString.split(',');\n\n for (const pair of pairs) {\n const [key, ...valueParts] = pair.split('=');\n if (key && valueParts.length > 0) {\n attributes[key.trim()] = valueParts.join('=').trim();\n }\n }\n\n return attributes;\n}\n\nexport interface InstrumentationConfig {\n serviceName: string;\n serviceVersion?: string;\n deploymentEnvironment?: string;\n otlpEndpoint?: string;\n /** Headers for authentication (e.g., Grafana Cloud, Honeycomb) */\n headers?: string;\n /** Resource attributes as comma-separated key=value pairs */\n resourceAttributes?: string;\n /** Enable async resource detection for process/host info (default: false) */\n detectResources?: boolean;\n /**\n * Use selective instrumentation instead of full auto-instrumentation\n * **Default: true** (performance-first)\n *\n * When true, auto-instrumentation is disabled. You can manually add\n * specific instrumentations via the `instrumentations` field.\n * This reduces overhead from ~81% to near-zero based on Platformatic benchmarks.\n *\n * Set to false to enable full auto-instrumentation (not recommended for production).\n *\n * @see https://blogger.platformatic.dev/the-hidden-cost-of-context\n */\n selectiveInstrumentation?: boolean;\n\n /**\n * Custom instrumentations to use (only when selectiveInstrumentation is true)\n * @example\n * ```typescript\n * import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'\n *\n * initInstrumentation({\n * serviceName: 'api',\n * selectiveInstrumentation: true,\n * instrumentations: [new HttpInstrumentation()]\n * })\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instrumentations?: any[];\n}\n\n/**\n * Initialize OpenTelemetry instrumentation with OTLP exporters\n *\n * This sets up:\n * - Traces (OTLP HTTP)\n * - Metrics (OTLP HTTP)\n * - Logs (OTLP HTTP)\n * - Auto-instrumentation for common Node.js libraries\n *\n * @example\n * // Call this at the very start of your application\n * import { initInstrumentation } from '@your-org/otel-decorators'\n *\n * initInstrumentation({\n * serviceName: 'my-service' }\n * serviceVersion: '1.0.0',\n * deploymentEnvironment: 'production',\n * otlpEndpoint: 'http://localhost:4318'\n * })\n *\n * // Or with async resource detection (top-level await required)\n * await initInstrumentation({\n * serviceName: 'my-service' }\n * detectResources: true\n * })\n */\n// Enables graceful shutdown and prevents SDK leaks on hot-reload\nlet currentSDK: NodeSDK | null = null;\nlet shutdownHandlerRegistered = false;\n\n/**\n * Shutdown the OpenTelemetry SDK gracefully\n * Call this before process exit or during hot-reloads\n */\nexport async function shutdownInstrumentation(sdk?: NodeSDK): Promise<void> {\n const sdkToShutdown = sdk || currentSDK;\n if (!sdkToShutdown) {\n getLogger().warn({}, 'No SDK to shutdown');\n return;\n }\n\n try {\n await sdkToShutdown.shutdown();\n getLogger().info({}, 'OpenTelemetry terminated successfully');\n if (sdkToShutdown === currentSDK) {\n currentSDK = null;\n }\n } catch (error) {\n getLogger().error(\n {\n err: error instanceof Error ? error : undefined,\n },\n 'Error terminating OpenTelemetry',\n );\n throw error;\n }\n}\n\nexport async function initInstrumentation(\n config: InstrumentationConfig,\n): Promise<NodeSDK> {\n // Prevents resource leaks on hot-reload or multiple init calls\n if (currentSDK) {\n getLogger().info(\n {},\n 'Shutting down existing OpenTelemetry SDK before reinitializing...',\n );\n await shutdownInstrumentation(currentSDK);\n }\n\n // Parse headers and resource attributes\n const otlpHeaders = parseOtlpHeaders(config.headers);\n const customResourceAttributes = parseResourceAttributes(\n config.resourceAttributes,\n );\n\n let resource: Resource;\n\n // Dynamically load optional resource detectors\n const detectors: ResourceDetector[] = [processDetector, hostDetector];\n try {\n const awsDetectors = await import('@opentelemetry/resource-detector-aws');\n detectors.push(\n awsDetectors.awsEc2Detector,\n awsDetectors.awsEcsDetector,\n awsDetectors.awsEksDetector,\n );\n } catch {\n // ignore\n }\n try {\n const gcpDetectors = await import('@opentelemetry/resource-detector-gcp');\n detectors.push(gcpDetectors.gcpDetector);\n } catch {\n // ignore\n }\n try {\n const containerDetectors =\n await import('@opentelemetry/resource-detector-container');\n detectors.push(containerDetectors.containerDetector);\n } catch {\n // ignore\n }\n\n if (config.detectResources) {\n const detectedResource = await detectResources({\n detectors,\n });\n\n resource = detectedResource.merge(\n resourceFromAttributes({\n [ATTR_SERVICE_NAME]: config.serviceName,\n [ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',\n 'deployment.environment': config.deploymentEnvironment || 'development',\n ...customResourceAttributes, // Merge custom resource attributes\n }),\n );\n } else {\n resource = resourceFromAttributes({\n [ATTR_SERVICE_NAME]: config.serviceName,\n [ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',\n 'deployment.environment': config.deploymentEnvironment || 'development',\n ...customResourceAttributes, // Merge custom resource attributes\n });\n }\n\n // Default to selective (near-zero overhead) vs full auto (~81% overhead)\n // Lazy-load to avoid importing ~40+ packages at module evaluation time\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let instrumentations: any[] = config.instrumentations || [];\n if (config.selectiveInstrumentation === false) {\n const mod = requireModule<{\n getNodeAutoInstrumentations: () => unknown[];\n }>('@opentelemetry/auto-instrumentations-node');\n instrumentations = [mod.getNodeAutoInstrumentations()];\n }\n\n const traceExporter = new OTLPTraceExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/traces`,\n headers: otlpHeaders,\n });\n\n // Enables tail sampling via autotel.sampling.tail.keep attribute\n const spanProcessor = new TailSamplingSpanProcessor(\n new BatchSpanProcessor(traceExporter),\n );\n\n const sdk = new NodeSDK({\n resource,\n spanProcessor, // Use our wrapped processor instead of traceExporter directly\n metricReader: new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/metrics`,\n headers: otlpHeaders,\n }),\n }),\n logRecordProcessors: [\n new BatchLogRecordProcessor(\n new OTLPLogExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/logs`,\n headers: otlpHeaders,\n }),\n ),\n ],\n instrumentations,\n });\n\n try {\n await sdk.start();\n getLogger().info({}, 'OpenTelemetry instrumentation started successfully');\n } catch (error) {\n getLogger().error(\n {\n err: error instanceof Error ? error : undefined,\n },\n 'Failed to start OpenTelemetry SDK',\n );\n throw error;\n }\n\n // Track current SDK for shutdown handler\n currentSDK = sdk;\n\n if (!shutdownHandlerRegistered) {\n shutdownHandlerRegistered = true;\n\n const shutdownHandler = () => {\n shutdownInstrumentation()\n .then(() => {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n })\n .catch((error) => {\n getLogger().error(\n {\n err: error instanceof Error ? error : undefined,\n },\n 'Shutdown error',\n );\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n });\n };\n\n process.on('SIGTERM', shutdownHandler);\n process.on('SIGINT', shutdownHandler);\n }\n\n return sdk;\n}\n"]}
1
+ {"version":3,"file":"instrumentation.cjs","names":["processDetector","hostDetector","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","requireModule","TailSamplingSpanProcessor","BatchSpanProcessor","OTLPTraceExporter","NodeSDK","PeriodicExportingMetricReader","OTLPMetricExporter","BatchLogRecordProcessor","OTLPLogExporter"],"sources":["../src/instrumentation.ts"],"sourcesContent":["import { NodeSDK } from '@opentelemetry/sdk-node';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs';\nimport { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { TailSamplingSpanProcessor } from './tail-sampling-processor';\nimport { getLogger } from './init';\nimport {\n resourceFromAttributes,\n detectResources,\n processDetector,\n hostDetector,\n type Resource,\n type ResourceDetector,\n} from '@opentelemetry/resources';\nimport {\n ATTR_SERVICE_NAME,\n ATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions/incubating';\nimport { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';\nimport { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';\nimport { requireModule } from './node-require';\n\n/**\n * Parse OTLP headers string into object format\n * @param headersString - Headers as \"key1=value1,key2=value2\" or \"Authorization=Basic ...\"\n * @returns Headers object for OTLP exporters\n */\nfunction parseOtlpHeaders(headersString?: string): Record<string, string> {\n if (!headersString) return {};\n\n const headers: Record<string, string> = {};\n const pairs = headersString.split(',');\n\n for (const pair of pairs) {\n const [key, ...valueParts] = pair.split('=');\n if (key && valueParts.length > 0) {\n headers[key.trim()] = valueParts.join('=').trim();\n }\n }\n\n return headers;\n}\n\n/**\n * Parse resource attributes string into object format\n * @param attributesString - Attributes as \"key1=value1,key2=value2\"\n * @returns Resource attributes object\n */\nfunction parseResourceAttributes(\n attributesString?: string,\n): Record<string, string> {\n if (!attributesString) return {};\n\n const attributes: Record<string, string> = {};\n const pairs = attributesString.split(',');\n\n for (const pair of pairs) {\n const [key, ...valueParts] = pair.split('=');\n if (key && valueParts.length > 0) {\n attributes[key.trim()] = valueParts.join('=').trim();\n }\n }\n\n return attributes;\n}\n\nexport interface InstrumentationConfig {\n serviceName: string;\n serviceVersion?: string;\n deploymentEnvironment?: string;\n otlpEndpoint?: string;\n /** Headers for authentication (e.g., Grafana Cloud, Honeycomb) */\n headers?: string;\n /** Resource attributes as comma-separated key=value pairs */\n resourceAttributes?: string;\n /** Enable async resource detection for process/host info (default: false) */\n detectResources?: boolean;\n /**\n * Use selective instrumentation instead of full auto-instrumentation\n * **Default: true** (performance-first)\n *\n * When true, auto-instrumentation is disabled. You can manually add\n * specific instrumentations via the `instrumentations` field.\n * This reduces overhead from ~81% to near-zero based on Platformatic benchmarks.\n *\n * Set to false to enable full auto-instrumentation (not recommended for production).\n *\n * @see https://blogger.platformatic.dev/the-hidden-cost-of-context\n */\n selectiveInstrumentation?: boolean;\n\n /**\n * Custom instrumentations to use (only when selectiveInstrumentation is true)\n * @example\n * ```typescript\n * import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'\n *\n * initInstrumentation({\n * serviceName: 'api',\n * selectiveInstrumentation: true,\n * instrumentations: [new HttpInstrumentation()]\n * })\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instrumentations?: any[];\n}\n\n/**\n * Initialize OpenTelemetry instrumentation with OTLP exporters\n *\n * This sets up:\n * - Traces (OTLP HTTP)\n * - Metrics (OTLP HTTP)\n * - Logs (OTLP HTTP)\n * - Auto-instrumentation for common Node.js libraries\n *\n * @example\n * // Call this at the very start of your application\n * import { initInstrumentation } from '@your-org/otel-decorators'\n *\n * initInstrumentation({\n * serviceName: 'my-service' }\n * serviceVersion: '1.0.0',\n * deploymentEnvironment: 'production',\n * otlpEndpoint: 'http://localhost:4318'\n * })\n *\n * // Or with async resource detection (top-level await required)\n * await initInstrumentation({\n * serviceName: 'my-service' }\n * detectResources: true\n * })\n */\n// Enables graceful shutdown and prevents SDK leaks on hot-reload\nlet currentSDK: NodeSDK | null = null;\nlet shutdownHandlerRegistered = false;\n\n/**\n * Shutdown the OpenTelemetry SDK gracefully\n * Call this before process exit or during hot-reloads\n */\nexport async function shutdownInstrumentation(sdk?: NodeSDK): Promise<void> {\n const sdkToShutdown = sdk || currentSDK;\n if (!sdkToShutdown) {\n getLogger().warn({}, 'No SDK to shutdown');\n return;\n }\n\n try {\n await sdkToShutdown.shutdown();\n getLogger().info({}, 'OpenTelemetry terminated successfully');\n if (sdkToShutdown === currentSDK) {\n currentSDK = null;\n }\n } catch (error) {\n getLogger().error(\n {\n err: error instanceof Error ? error : undefined,\n },\n 'Error terminating OpenTelemetry',\n );\n throw error;\n }\n}\n\nexport async function initInstrumentation(\n config: InstrumentationConfig,\n): Promise<NodeSDK> {\n // Prevents resource leaks on hot-reload or multiple init calls\n if (currentSDK) {\n getLogger().info(\n {},\n 'Shutting down existing OpenTelemetry SDK before reinitializing...',\n );\n await shutdownInstrumentation(currentSDK);\n }\n\n // Parse headers and resource attributes\n const otlpHeaders = parseOtlpHeaders(config.headers);\n const customResourceAttributes = parseResourceAttributes(\n config.resourceAttributes,\n );\n\n let resource: Resource;\n\n // Dynamically load optional resource detectors\n const detectors: ResourceDetector[] = [processDetector, hostDetector];\n try {\n const awsDetectors = await import('@opentelemetry/resource-detector-aws');\n detectors.push(\n awsDetectors.awsEc2Detector,\n awsDetectors.awsEcsDetector,\n awsDetectors.awsEksDetector,\n );\n } catch {\n // ignore\n }\n try {\n const gcpDetectors = await import('@opentelemetry/resource-detector-gcp');\n detectors.push(gcpDetectors.gcpDetector);\n } catch {\n // ignore\n }\n try {\n const containerDetectors =\n await import('@opentelemetry/resource-detector-container');\n detectors.push(containerDetectors.containerDetector);\n } catch {\n // ignore\n }\n\n if (config.detectResources) {\n const detectedResource = await detectResources({\n detectors,\n });\n\n resource = detectedResource.merge(\n resourceFromAttributes({\n [ATTR_SERVICE_NAME]: config.serviceName,\n [ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',\n 'deployment.environment': config.deploymentEnvironment || 'development',\n ...customResourceAttributes, // Merge custom resource attributes\n }),\n );\n } else {\n resource = resourceFromAttributes({\n [ATTR_SERVICE_NAME]: config.serviceName,\n [ATTR_SERVICE_VERSION]: config.serviceVersion || '1.0.0',\n 'deployment.environment': config.deploymentEnvironment || 'development',\n ...customResourceAttributes, // Merge custom resource attributes\n });\n }\n\n // Default to selective (near-zero overhead) vs full auto (~81% overhead)\n // Lazy-load to avoid importing ~40+ packages at module evaluation time\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let instrumentations: any[] = config.instrumentations || [];\n if (config.selectiveInstrumentation === false) {\n const mod = requireModule<{\n getNodeAutoInstrumentations: () => unknown[];\n }>('@opentelemetry/auto-instrumentations-node');\n instrumentations = [mod.getNodeAutoInstrumentations()];\n }\n\n const traceExporter = new OTLPTraceExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/traces`,\n headers: otlpHeaders,\n });\n\n // Enables tail sampling via autotel.sampling.tail.keep attribute\n const spanProcessor = new TailSamplingSpanProcessor(\n new BatchSpanProcessor(traceExporter),\n );\n\n const sdk = new NodeSDK({\n resource,\n spanProcessor, // Use our wrapped processor instead of traceExporter directly\n metricReader: new PeriodicExportingMetricReader({\n exporter: new OTLPMetricExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/metrics`,\n headers: otlpHeaders,\n }),\n }),\n logRecordProcessors: [\n new BatchLogRecordProcessor(\n new OTLPLogExporter({\n url: `${config.otlpEndpoint || 'http://localhost:4318'}/v1/logs`,\n headers: otlpHeaders,\n }),\n ),\n ],\n instrumentations,\n });\n\n try {\n await sdk.start();\n getLogger().info({}, 'OpenTelemetry instrumentation started successfully');\n } catch (error) {\n getLogger().error(\n {\n err: error instanceof Error ? error : undefined,\n },\n 'Failed to start OpenTelemetry SDK',\n );\n throw error;\n }\n\n // Track current SDK for shutdown handler\n currentSDK = sdk;\n\n if (!shutdownHandlerRegistered) {\n shutdownHandlerRegistered = true;\n\n const shutdownHandler = () => {\n shutdownInstrumentation()\n .then(() => {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n })\n .catch((error) => {\n getLogger().error(\n {\n err: error instanceof Error ? error : undefined,\n },\n 'Shutdown error',\n );\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n });\n };\n\n process.on('SIGTERM', shutdownHandler);\n process.on('SIGINT', shutdownHandler);\n }\n\n return sdk;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA4BA,SAAS,iBAAiB,eAAgD;CACxE,IAAI,CAAC,eAAe,OAAO,CAAC;CAE5B,MAAM,UAAkC,CAAC;CACzC,MAAM,QAAQ,cAAc,MAAM,GAAG;CAErC,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,CAAC,KAAK,GAAG,cAAc,KAAK,MAAM,GAAG;EAC3C,IAAI,OAAO,WAAW,SAAS,GAC7B,QAAQ,IAAI,KAAK,KAAK,WAAW,KAAK,GAAG,CAAC,CAAC,KAAK;CAEpD;CAEA,OAAO;AACT;;;;;;AAOA,SAAS,wBACP,kBACwB;CACxB,IAAI,CAAC,kBAAkB,OAAO,CAAC;CAE/B,MAAM,aAAqC,CAAC;CAC5C,MAAM,QAAQ,iBAAiB,MAAM,GAAG;CAExC,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,CAAC,KAAK,GAAG,cAAc,KAAK,MAAM,GAAG;EAC3C,IAAI,OAAO,WAAW,SAAS,GAC7B,WAAW,IAAI,KAAK,KAAK,WAAW,KAAK,GAAG,CAAC,CAAC,KAAK;CAEvD;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,IAAI,aAA6B;AACjC,IAAI,4BAA4B;;;;;AAMhC,eAAsB,wBAAwB,KAA8B;CAC1E,MAAM,gBAAgB,OAAO;CAC7B,IAAI,CAAC,eAAe;EAClB,uBAAU,CAAC,CAAC,KAAK,CAAC,GAAG,oBAAoB;EACzC;CACF;CAEA,IAAI;EACF,MAAM,cAAc,SAAS;EAC7B,uBAAU,CAAC,CAAC,KAAK,CAAC,GAAG,uCAAuC;EAC5D,IAAI,kBAAkB,YACpB,aAAa;CAEjB,SAAS,OAAO;EACd,uBAAU,CAAC,CAAC,MACV,EACE,KAAK,iBAAiB,QAAQ,QAAQ,OACxC,GACA,iCACF;EACA,MAAM;CACR;AACF;AAEA,eAAsB,oBACpB,QACkB;CAElB,IAAI,YAAY;EACd,uBAAU,CAAC,CAAC,KACV,CAAC,GACD,mEACF;EACA,MAAM,wBAAwB,UAAU;CAC1C;CAGA,MAAM,cAAc,iBAAiB,OAAO,OAAO;CACnD,MAAM,2BAA2B,wBAC/B,OAAO,kBACT;CAEA,IAAI;CAGJ,MAAM,YAAgC,CAACA,0CAAiBC,qCAAY;CACpE,IAAI;EACF,MAAM,eAAe,MAAM,OAAO;EAClC,UAAU,KACR,aAAa,gBACb,aAAa,gBACb,aAAa,cACf;CACF,QAAQ,CAER;CACA,IAAI;EACF,MAAM,eAAe,MAAM,OAAO;EAClC,UAAU,KAAK,aAAa,WAAW;CACzC,QAAQ,CAER;CACA,IAAI;EACF,MAAM,qBACJ,MAAM,OAAO;EACf,UAAU,KAAK,mBAAmB,iBAAiB;CACrD,QAAQ,CAER;CAEA,IAAI,OAAO,iBAKT,YAAW,oDAJoC,EAC7C,UACF,CAAC,EAE0B,CAAC,2DACH;GACpBC,mEAAoB,OAAO;GAC3BC,sEAAuB,OAAO,kBAAkB;EACjD,0BAA0B,OAAO,yBAAyB;EAC1D,GAAG;CACL,CAAC,CACH;MAEA,gEAAkC;GAC/BD,mEAAoB,OAAO;GAC3BC,sEAAuB,OAAO,kBAAkB;EACjD,0BAA0B,OAAO,yBAAyB;EAC1D,GAAG;CACL,CAAC;CAMH,IAAI,mBAA0B,OAAO,oBAAoB,CAAC;CAC1D,IAAI,OAAO,6BAA6B,OAItC,mBAAmB,CAHPC,mCAET,2CACmB,CAAC,CAAC,4BAA4B,CAAC;CASvD,MAAM,gBAAgB,IAAIC,0DACxB,IAAIC,iDAAmB,IAPCC,0DAAkB;EAC1C,KAAK,GAAG,OAAO,gBAAgB,wBAAwB;EACvD,SAAS;CACX,CAIqC,CAAC,CACtC;CAEA,MAAM,MAAM,IAAIC,gCAAQ;EACtB;EACA;EACA,cAAc,IAAIC,yDAA8B,EAC9C,UAAU,IAAIC,6DAAmB;GAC/B,KAAK,GAAG,OAAO,gBAAgB,wBAAwB;GACvD,SAAS;EACX,CAAC,EACH,CAAC;EACD,qBAAqB,CACnB,IAAIC,gDACF,IAAIC,uDAAgB;GAClB,KAAK,GAAG,OAAO,gBAAgB,wBAAwB;GACvD,SAAS;EACX,CAAC,CACH,CACF;EACA;CACF,CAAC;CAED,IAAI;EACF,MAAM,IAAI,MAAM;EAChB,uBAAU,CAAC,CAAC,KAAK,CAAC,GAAG,oDAAoD;CAC3E,SAAS,OAAO;EACd,uBAAU,CAAC,CAAC,MACV,EACE,KAAK,iBAAiB,QAAQ,QAAQ,OACxC,GACA,mCACF;EACA,MAAM;CACR;CAGA,aAAa;CAEb,IAAI,CAAC,2BAA2B;EAC9B,4BAA4B;EAE5B,MAAM,wBAAwB;GAC5B,wBAAwB,CAAC,CACtB,WAAW;IAEV,QAAQ,KAAK,CAAC;GAChB,CAAC,CAAC,CACD,OAAO,UAAU;IAChB,uBAAU,CAAC,CAAC,MACV,EACE,KAAK,iBAAiB,QAAQ,QAAQ,OACxC,GACA,gBACF;IAEA,QAAQ,KAAK,CAAC;GAChB,CAAC;EACL;EAEA,QAAQ,GAAG,WAAW,eAAe;EACrC,QAAQ,GAAG,UAAU,eAAe;CACtC;CAEA,OAAO;AACT"}
@@ -1,43 +1,44 @@
1
- import { NodeSDK } from '@opentelemetry/sdk-node';
1
+ import { NodeSDK } from "@opentelemetry/sdk-node";
2
2
 
3
+ //#region src/instrumentation.d.ts
3
4
  interface InstrumentationConfig {
4
- serviceName: string;
5
- serviceVersion?: string;
6
- deploymentEnvironment?: string;
7
- otlpEndpoint?: string;
8
- /** Headers for authentication (e.g., Grafana Cloud, Honeycomb) */
9
- headers?: string;
10
- /** Resource attributes as comma-separated key=value pairs */
11
- resourceAttributes?: string;
12
- /** Enable async resource detection for process/host info (default: false) */
13
- detectResources?: boolean;
14
- /**
15
- * Use selective instrumentation instead of full auto-instrumentation
16
- * **Default: true** (performance-first)
17
- *
18
- * When true, auto-instrumentation is disabled. You can manually add
19
- * specific instrumentations via the `instrumentations` field.
20
- * This reduces overhead from ~81% to near-zero based on Platformatic benchmarks.
21
- *
22
- * Set to false to enable full auto-instrumentation (not recommended for production).
23
- *
24
- * @see https://blogger.platformatic.dev/the-hidden-cost-of-context
25
- */
26
- selectiveInstrumentation?: boolean;
27
- /**
28
- * Custom instrumentations to use (only when selectiveInstrumentation is true)
29
- * @example
30
- * ```typescript
31
- * import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'
32
- *
33
- * initInstrumentation({
34
- * serviceName: 'api',
35
- * selectiveInstrumentation: true,
36
- * instrumentations: [new HttpInstrumentation()]
37
- * })
38
- * ```
39
- */
40
- instrumentations?: any[];
5
+ serviceName: string;
6
+ serviceVersion?: string;
7
+ deploymentEnvironment?: string;
8
+ otlpEndpoint?: string;
9
+ /** Headers for authentication (e.g., Grafana Cloud, Honeycomb) */
10
+ headers?: string;
11
+ /** Resource attributes as comma-separated key=value pairs */
12
+ resourceAttributes?: string;
13
+ /** Enable async resource detection for process/host info (default: false) */
14
+ detectResources?: boolean;
15
+ /**
16
+ * Use selective instrumentation instead of full auto-instrumentation
17
+ * **Default: true** (performance-first)
18
+ *
19
+ * When true, auto-instrumentation is disabled. You can manually add
20
+ * specific instrumentations via the `instrumentations` field.
21
+ * This reduces overhead from ~81% to near-zero based on Platformatic benchmarks.
22
+ *
23
+ * Set to false to enable full auto-instrumentation (not recommended for production).
24
+ *
25
+ * @see https://blogger.platformatic.dev/the-hidden-cost-of-context
26
+ */
27
+ selectiveInstrumentation?: boolean;
28
+ /**
29
+ * Custom instrumentations to use (only when selectiveInstrumentation is true)
30
+ * @example
31
+ * ```typescript
32
+ * import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'
33
+ *
34
+ * initInstrumentation({
35
+ * serviceName: 'api',
36
+ * selectiveInstrumentation: true,
37
+ * instrumentations: [new HttpInstrumentation()]
38
+ * })
39
+ * ```
40
+ */
41
+ instrumentations?: any[];
41
42
  }
42
43
  /**
43
44
  * Shutdown the OpenTelemetry SDK gracefully
@@ -45,5 +46,6 @@ interface InstrumentationConfig {
45
46
  */
46
47
  declare function shutdownInstrumentation(sdk?: NodeSDK): Promise<void>;
47
48
  declare function initInstrumentation(config: InstrumentationConfig): Promise<NodeSDK>;
48
-
49
- export { type InstrumentationConfig, initInstrumentation, shutdownInstrumentation };
49
+ //#endregion
50
+ export { InstrumentationConfig, initInstrumentation, shutdownInstrumentation };
51
+ //# sourceMappingURL=instrumentation.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.cts","names":[],"sources":["../src/instrumentation.ts"],"mappings":";;;UAmEiB,qBAAA;EACf,WAAA;EACA,cAAA;EACA,qBAAA;EACA,YAAA;EAJoC;EAMpC,OAAA;EAJA;EAMA,kBAAA;EAJA;EAMA,eAAA;EAFA;;;;;AA+BgB;AAqClB;;;;;;EArDE,wBAAA;EAqDmE;AAAA;AAwBrE;;;;;;;;;;;EA7DE,gBAAA;AAAA;AA+DgB;;;;AAAA,iBA1BI,uBAAA,CAAwB,GAAA,GAAM,OAAA,GAAU,OAAO;AAAA,iBAwB/C,mBAAA,CACpB,MAAA,EAAQ,qBAAA,GACP,OAAA,CAAQ,OAAA"}
@@ -1,43 +1,44 @@
1
- import { NodeSDK } from '@opentelemetry/sdk-node';
1
+ import { NodeSDK } from "@opentelemetry/sdk-node";
2
2
 
3
+ //#region src/instrumentation.d.ts
3
4
  interface InstrumentationConfig {
4
- serviceName: string;
5
- serviceVersion?: string;
6
- deploymentEnvironment?: string;
7
- otlpEndpoint?: string;
8
- /** Headers for authentication (e.g., Grafana Cloud, Honeycomb) */
9
- headers?: string;
10
- /** Resource attributes as comma-separated key=value pairs */
11
- resourceAttributes?: string;
12
- /** Enable async resource detection for process/host info (default: false) */
13
- detectResources?: boolean;
14
- /**
15
- * Use selective instrumentation instead of full auto-instrumentation
16
- * **Default: true** (performance-first)
17
- *
18
- * When true, auto-instrumentation is disabled. You can manually add
19
- * specific instrumentations via the `instrumentations` field.
20
- * This reduces overhead from ~81% to near-zero based on Platformatic benchmarks.
21
- *
22
- * Set to false to enable full auto-instrumentation (not recommended for production).
23
- *
24
- * @see https://blogger.platformatic.dev/the-hidden-cost-of-context
25
- */
26
- selectiveInstrumentation?: boolean;
27
- /**
28
- * Custom instrumentations to use (only when selectiveInstrumentation is true)
29
- * @example
30
- * ```typescript
31
- * import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'
32
- *
33
- * initInstrumentation({
34
- * serviceName: 'api',
35
- * selectiveInstrumentation: true,
36
- * instrumentations: [new HttpInstrumentation()]
37
- * })
38
- * ```
39
- */
40
- instrumentations?: any[];
5
+ serviceName: string;
6
+ serviceVersion?: string;
7
+ deploymentEnvironment?: string;
8
+ otlpEndpoint?: string;
9
+ /** Headers for authentication (e.g., Grafana Cloud, Honeycomb) */
10
+ headers?: string;
11
+ /** Resource attributes as comma-separated key=value pairs */
12
+ resourceAttributes?: string;
13
+ /** Enable async resource detection for process/host info (default: false) */
14
+ detectResources?: boolean;
15
+ /**
16
+ * Use selective instrumentation instead of full auto-instrumentation
17
+ * **Default: true** (performance-first)
18
+ *
19
+ * When true, auto-instrumentation is disabled. You can manually add
20
+ * specific instrumentations via the `instrumentations` field.
21
+ * This reduces overhead from ~81% to near-zero based on Platformatic benchmarks.
22
+ *
23
+ * Set to false to enable full auto-instrumentation (not recommended for production).
24
+ *
25
+ * @see https://blogger.platformatic.dev/the-hidden-cost-of-context
26
+ */
27
+ selectiveInstrumentation?: boolean;
28
+ /**
29
+ * Custom instrumentations to use (only when selectiveInstrumentation is true)
30
+ * @example
31
+ * ```typescript
32
+ * import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'
33
+ *
34
+ * initInstrumentation({
35
+ * serviceName: 'api',
36
+ * selectiveInstrumentation: true,
37
+ * instrumentations: [new HttpInstrumentation()]
38
+ * })
39
+ * ```
40
+ */
41
+ instrumentations?: any[];
41
42
  }
42
43
  /**
43
44
  * Shutdown the OpenTelemetry SDK gracefully
@@ -45,5 +46,6 @@ interface InstrumentationConfig {
45
46
  */
46
47
  declare function shutdownInstrumentation(sdk?: NodeSDK): Promise<void>;
47
48
  declare function initInstrumentation(config: InstrumentationConfig): Promise<NodeSDK>;
48
-
49
- export { type InstrumentationConfig, initInstrumentation, shutdownInstrumentation };
49
+ //#endregion
50
+ export { InstrumentationConfig, initInstrumentation, shutdownInstrumentation };
51
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.ts","names":[],"sources":["../src/instrumentation.ts"],"mappings":";;;UAmEiB,qBAAA;EACf,WAAA;EACA,cAAA;EACA,qBAAA;EACA,YAAA;EAJoC;EAMpC,OAAA;EAJA;EAMA,kBAAA;EAJA;EAMA,eAAA;EAFA;;;;;AA+BgB;AAqClB;;;;;;EArDE,wBAAA;EAqDmE;AAAA;AAwBrE;;;;;;;;;;;EA7DE,gBAAA;AAAA;AA+DgB;;;;AAAA,iBA1BI,uBAAA,CAAwB,GAAA,GAAM,OAAA,GAAU,OAAO;AAAA,iBAwB/C,mBAAA,CACpB,MAAA,EAAQ,qBAAA,GACP,OAAA,CAAQ,OAAA"}