autotel 3.6.0 → 4.0.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 (617) 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-CmYpdqCN.js +591 -0
  12. package/dist/attributes-CmYpdqCN.js.map +1 -0
  13. package/dist/attributes-PZ5doLgw.cjs +704 -0
  14. package/dist/attributes-PZ5doLgw.cjs.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-Ck06vlW2.d.ts +678 -0
  158. package/dist/index-Ck06vlW2.d.ts.map +1 -0
  159. package/dist/index-eKuioqT1.d.cts +678 -0
  160. package/dist/index-eKuioqT1.d.cts.map +1 -0
  161. package/dist/index.cjs +751 -1218
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +341 -659
  164. package/dist/index.d.cts.map +1 -0
  165. package/dist/index.d.ts +341 -659
  166. package/dist/index.d.ts.map +1 -0
  167. package/dist/index.js +606 -737
  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-DVSmWg6Y.js +175 -0
  276. package/dist/registry-DVSmWg6Y.js.map +1 -0
  277. package/dist/registry-DYgvb62e.cjs +319 -0
  278. package/dist/registry-DYgvb62e.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 +327 -39
  308. package/dist/semantic-helpers.cjs.map +1 -1
  309. package/dist/semantic-helpers.d.cts +30 -150
  310. package/dist/semantic-helpers.d.cts.map +1 -0
  311. package/dist/semantic-helpers.d.ts +30 -150
  312. package/dist/semantic-helpers.d.ts.map +1 -0
  313. package/dist/semantic-helpers.js +326 -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/skills/analyze-traces/SKILL.md +14 -12
  432. package/skills/review-otel-patterns/SKILL.md +4 -2
  433. package/skills/tune-sampling/SKILL.md +8 -3
  434. package/src/attributes/builders.ts +2 -20
  435. package/src/attributes/index.ts +0 -1
  436. package/src/attributes/registry.ts +2 -9
  437. package/src/attributes/types.ts +0 -8
  438. package/src/index.ts +7 -41
  439. package/src/request-logger.test.ts +53 -1
  440. package/src/request-logger.ts +58 -0
  441. package/src/semantic-helpers.test.ts +2 -87
  442. package/src/semantic-helpers.ts +0 -146
  443. package/src/validate.test.ts +3 -1
  444. package/src/validate.ts +9 -3
  445. package/dist/attributes.cjs.map +0 -1
  446. package/dist/attributes.js.map +0 -1
  447. package/dist/chunk-2ZKEORFN.cjs +0 -14
  448. package/dist/chunk-2ZKEORFN.cjs.map +0 -1
  449. package/dist/chunk-3QXBFGKP.js +0 -344
  450. package/dist/chunk-3QXBFGKP.js.map +0 -1
  451. package/dist/chunk-454CH4OV.js +0 -744
  452. package/dist/chunk-454CH4OV.js.map +0 -1
  453. package/dist/chunk-4A53YIAX.js +0 -180
  454. package/dist/chunk-4A53YIAX.js.map +0 -1
  455. package/dist/chunk-4IFSYQVX.js +0 -337
  456. package/dist/chunk-4IFSYQVX.js.map +0 -1
  457. package/dist/chunk-4P6ZOARG.cjs +0 -33
  458. package/dist/chunk-4P6ZOARG.cjs.map +0 -1
  459. package/dist/chunk-55ER2KD5.js +0 -228
  460. package/dist/chunk-55ER2KD5.js.map +0 -1
  461. package/dist/chunk-5ZN622AO.js +0 -73
  462. package/dist/chunk-5ZN622AO.js.map +0 -1
  463. package/dist/chunk-66YJ66GG.js +0 -1021
  464. package/dist/chunk-66YJ66GG.js.map +0 -1
  465. package/dist/chunk-6S5RUKU3.cjs +0 -347
  466. package/dist/chunk-6S5RUKU3.cjs.map +0 -1
  467. package/dist/chunk-6UQRVUN3.js +0 -222
  468. package/dist/chunk-6UQRVUN3.js.map +0 -1
  469. package/dist/chunk-7552UTQW.js +0 -11
  470. package/dist/chunk-7552UTQW.js.map +0 -1
  471. package/dist/chunk-7EQ4G4SI.cjs +0 -146
  472. package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
  473. package/dist/chunk-7SAWIN74.js +0 -285
  474. package/dist/chunk-7SAWIN74.js.map +0 -1
  475. package/dist/chunk-A4E5AQFK.js +0 -30
  476. package/dist/chunk-A4E5AQFK.js.map +0 -1
  477. package/dist/chunk-ALPYR2GC.js +0 -1061
  478. package/dist/chunk-ALPYR2GC.js.map +0 -1
  479. package/dist/chunk-B7SWBE4P.cjs +0 -799
  480. package/dist/chunk-B7SWBE4P.cjs.map +0 -1
  481. package/dist/chunk-BZHG5IZ4.js +0 -73
  482. package/dist/chunk-BZHG5IZ4.js.map +0 -1
  483. package/dist/chunk-CEAQK2QY.cjs +0 -32
  484. package/dist/chunk-CEAQK2QY.cjs.map +0 -1
  485. package/dist/chunk-CMHVQR6P.js +0 -170
  486. package/dist/chunk-CMHVQR6P.js.map +0 -1
  487. package/dist/chunk-CU6IDACR.cjs +0 -224
  488. package/dist/chunk-CU6IDACR.cjs.map +0 -1
  489. package/dist/chunk-D4TM63S3.js +0 -795
  490. package/dist/chunk-D4TM63S3.js.map +0 -1
  491. package/dist/chunk-DCEDJQGG.js +0 -28
  492. package/dist/chunk-DCEDJQGG.js.map +0 -1
  493. package/dist/chunk-DPSA4QLA.js +0 -344
  494. package/dist/chunk-DPSA4QLA.js.map +0 -1
  495. package/dist/chunk-E6TERL5O.cjs +0 -23
  496. package/dist/chunk-E6TERL5O.cjs.map +0 -1
  497. package/dist/chunk-EE6CPXKH.cjs +0 -164
  498. package/dist/chunk-EE6CPXKH.cjs.map +0 -1
  499. package/dist/chunk-EOFB7XCL.cjs +0 -837
  500. package/dist/chunk-EOFB7XCL.cjs.map +0 -1
  501. package/dist/chunk-ESLWRGAG.cjs +0 -92
  502. package/dist/chunk-ESLWRGAG.cjs.map +0 -1
  503. package/dist/chunk-ESMHTKLJ.cjs +0 -206
  504. package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
  505. package/dist/chunk-FMTHVSYY.cjs +0 -1039
  506. package/dist/chunk-FMTHVSYY.cjs.map +0 -1
  507. package/dist/chunk-FU6R566Y.cjs +0 -236
  508. package/dist/chunk-FU6R566Y.cjs.map +0 -1
  509. package/dist/chunk-GYR5K654.js +0 -91
  510. package/dist/chunk-GYR5K654.js.map +0 -1
  511. package/dist/chunk-HA2WBOGQ.js +0 -57
  512. package/dist/chunk-HA2WBOGQ.js.map +0 -1
  513. package/dist/chunk-HT5JQKN2.js +0 -118
  514. package/dist/chunk-HT5JQKN2.js.map +0 -1
  515. package/dist/chunk-INJD3G4K.cjs +0 -340
  516. package/dist/chunk-INJD3G4K.cjs.map +0 -1
  517. package/dist/chunk-IOYFAFHJ.cjs +0 -95
  518. package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
  519. package/dist/chunk-J5QENANM.js +0 -87
  520. package/dist/chunk-J5QENANM.js.map +0 -1
  521. package/dist/chunk-J7VGRIAJ.js +0 -64
  522. package/dist/chunk-J7VGRIAJ.js.map +0 -1
  523. package/dist/chunk-KFOHQK7X.js +0 -144
  524. package/dist/chunk-KFOHQK7X.js.map +0 -1
  525. package/dist/chunk-KIL5CUN6.js +0 -31
  526. package/dist/chunk-KIL5CUN6.js.map +0 -1
  527. package/dist/chunk-KYXZS3EA.cjs +0 -100
  528. package/dist/chunk-KYXZS3EA.cjs.map +0 -1
  529. package/dist/chunk-LITNXTTT.js +0 -3
  530. package/dist/chunk-LITNXTTT.js.map +0 -1
  531. package/dist/chunk-LVIPBYFE.js +0 -157
  532. package/dist/chunk-LVIPBYFE.js.map +0 -1
  533. package/dist/chunk-M3LFHHTN.cjs +0 -764
  534. package/dist/chunk-M3LFHHTN.cjs.map +0 -1
  535. package/dist/chunk-N25JDZSC.js +0 -95
  536. package/dist/chunk-N25JDZSC.js.map +0 -1
  537. package/dist/chunk-NEIB3TLD.cjs +0 -360
  538. package/dist/chunk-NEIB3TLD.cjs.map +0 -1
  539. package/dist/chunk-NENU7E6V.cjs +0 -344
  540. package/dist/chunk-NENU7E6V.cjs.map +0 -1
  541. package/dist/chunk-NVAI5CCN.cjs +0 -39
  542. package/dist/chunk-NVAI5CCN.cjs.map +0 -1
  543. package/dist/chunk-NZ72VDNY.cjs +0 -4
  544. package/dist/chunk-NZ72VDNY.cjs.map +0 -1
  545. package/dist/chunk-OPPXYVEZ.cjs +0 -131
  546. package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
  547. package/dist/chunk-Q4EULJQY.js +0 -35
  548. package/dist/chunk-Q4EULJQY.js.map +0 -1
  549. package/dist/chunk-QF7ARNUM.js +0 -339
  550. package/dist/chunk-QF7ARNUM.js.map +0 -1
  551. package/dist/chunk-QWW3E3JM.cjs +0 -178
  552. package/dist/chunk-QWW3E3JM.cjs.map +0 -1
  553. package/dist/chunk-R7QYGZUP.cjs +0 -1075
  554. package/dist/chunk-R7QYGZUP.cjs.map +0 -1
  555. package/dist/chunk-RUPKBKUF.js +0 -352
  556. package/dist/chunk-RUPKBKUF.js.map +0 -1
  557. package/dist/chunk-SEO6NAQT.js +0 -14
  558. package/dist/chunk-SEO6NAQT.js.map +0 -1
  559. package/dist/chunk-T4B5LB6E.cjs +0 -66
  560. package/dist/chunk-T4B5LB6E.cjs.map +0 -1
  561. package/dist/chunk-T5WRA76K.cjs +0 -32
  562. package/dist/chunk-T5WRA76K.cjs.map +0 -1
  563. package/dist/chunk-T7JO2TCP.js +0 -1233
  564. package/dist/chunk-T7JO2TCP.js.map +0 -1
  565. package/dist/chunk-TC5ZPWM4.cjs +0 -289
  566. package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
  567. package/dist/chunk-TQ5UWA7S.js +0 -26
  568. package/dist/chunk-TQ5UWA7S.js.map +0 -1
  569. package/dist/chunk-UIKYE2QZ.js +0 -833
  570. package/dist/chunk-UIKYE2QZ.js.map +0 -1
  571. package/dist/chunk-UNPLAVE7.js +0 -21
  572. package/dist/chunk-UNPLAVE7.js.map +0 -1
  573. package/dist/chunk-UY3UYPBZ.cjs +0 -77
  574. package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
  575. package/dist/chunk-V7UBMJAB.cjs +0 -1242
  576. package/dist/chunk-V7UBMJAB.cjs.map +0 -1
  577. package/dist/chunk-VH77IPJN.cjs +0 -358
  578. package/dist/chunk-VH77IPJN.cjs.map +0 -1
  579. package/dist/chunk-VQTCQKHQ.cjs +0 -17
  580. package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
  581. package/dist/chunk-WGWSHJ2N.js +0 -38
  582. package/dist/chunk-WGWSHJ2N.js.map +0 -1
  583. package/dist/chunk-WJH6IYU2.cjs +0 -32
  584. package/dist/chunk-WJH6IYU2.cjs.map +0 -1
  585. package/dist/chunk-YREV3LGG.cjs +0 -61
  586. package/dist/chunk-YREV3LGG.cjs.map +0 -1
  587. package/dist/chunk-YTXEZ4SD.cjs +0 -77
  588. package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
  589. package/dist/chunk-ZNMBW67B.cjs +0 -40
  590. package/dist/chunk-ZNMBW67B.cjs.map +0 -1
  591. package/dist/correlation-id.cjs.map +0 -1
  592. package/dist/correlation-id.js.map +0 -1
  593. package/dist/define-event-BL6Li7CM.d.ts +0 -23
  594. package/dist/define-event-ClP3T1Jx.d.cts +0 -23
  595. package/dist/event-subscriber.cjs.map +0 -1
  596. package/dist/event-subscriber.js.map +0 -1
  597. package/dist/event.cjs.map +0 -1
  598. package/dist/event.js.map +0 -1
  599. package/dist/exporters.cjs.map +0 -1
  600. package/dist/exporters.js.map +0 -1
  601. package/dist/functional.cjs.map +0 -1
  602. package/dist/functional.js.map +0 -1
  603. package/dist/init-DIowiiCh.d.ts +0 -1167
  604. package/dist/init-j-A1zI16.d.cts +0 -1167
  605. package/dist/processors.cjs.map +0 -1
  606. package/dist/processors.js.map +0 -1
  607. package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
  608. package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
  609. package/dist/utils-BahBCFtJ.d.cts +0 -712
  610. package/dist/utils-CLKwaUlG.d.ts +0 -712
  611. package/dist/yaml-config.cjs.map +0 -1
  612. package/src/gen-ai-cost.test.ts +0 -81
  613. package/src/gen-ai-cost.ts +0 -145
  614. package/src/gen-ai-events.test.ts +0 -135
  615. package/src/gen-ai-events.ts +0 -208
  616. package/src/gen-ai-metrics.test.ts +0 -96
  617. package/src/gen-ai-metrics.ts +0 -128
@@ -1,1061 +0,0 @@
1
- import { loadYamlConfig } from './chunk-CMHVQR6P.js';
2
- import { TailSamplingSpanProcessor } from './chunk-A4E5AQFK.js';
3
- import { FilteringSpanProcessor } from './chunk-WGWSHJ2N.js';
4
- import { SpanNameNormalizingProcessor } from './chunk-GYR5K654.js';
5
- import { REDACTOR_PRESETS, normalizeAttributeRedactorConfig, AttributeRedactingProcessor } from './chunk-RUPKBKUF.js';
6
- import { PrettyConsoleExporter } from './chunk-6UQRVUN3.js';
7
- import { CanonicalLogLineProcessor } from './chunk-3QXBFGKP.js';
8
- import { requireModule, safeRequire } from './chunk-Q4EULJQY.js';
9
- import { resolveSamplingPreset, samplingPresets } from './chunk-DPSA4QLA.js';
10
- import { propagation, context } from '@opentelemetry/api';
11
- import { NodeSDK } from '@opentelemetry/sdk-node';
12
- import { BatchSpanProcessor, SimpleSpanProcessor, ConsoleSpanExporter, SamplingDecision, ParentBasedSampler, TraceIdRatioBasedSampler, AlwaysOffSampler, AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';
13
- import { resourceFromAttributes } from '@opentelemetry/resources';
14
- import { ATTR_SERVICE_VERSION, ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
15
- import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
16
- import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
17
- import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
18
- import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
19
- import { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs';
20
-
21
- var BaggageSpanProcessor = class {
22
- prefix;
23
- constructor(options = {}) {
24
- this.prefix = options.prefix ?? "baggage.";
25
- }
26
- onStart(span, parentContext) {
27
- let baggage = propagation.getBaggage(parentContext);
28
- if (!baggage) {
29
- baggage = propagation.getBaggage(context.active());
30
- }
31
- if (!baggage) {
32
- try {
33
- const { getActiveContextWithBaggage } = requireModule("./trace-context");
34
- const storedContext = getActiveContextWithBaggage();
35
- baggage = propagation.getBaggage(storedContext);
36
- } catch {
37
- }
38
- }
39
- if (!baggage) return;
40
- for (const [key, entry] of baggage.getAllEntries()) {
41
- span.setAttribute(`${this.prefix}${key}`, entry.value);
42
- }
43
- }
44
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
- onEnd(_span) {
46
- }
47
- async shutdown() {
48
- }
49
- async forceFlush() {
50
- }
51
- };
52
-
53
- // src/redact-values.ts
54
- function createStringRedactor(config2) {
55
- const resolved = typeof config2 === "string" ? REDACTOR_PRESETS[config2] : config2;
56
- const valuePatterns = resolved.valuePatterns ?? [];
57
- const defaultReplacement = resolved.replacement ?? "[REDACTED]";
58
- return (value) => {
59
- let result = value;
60
- for (const { pattern, replacement, mask } of valuePatterns) {
61
- pattern.lastIndex = 0;
62
- if (mask) {
63
- result = result.replaceAll(pattern, (match) => mask(match));
64
- } else {
65
- result = result.replaceAll(pattern, replacement ?? defaultReplacement);
66
- }
67
- }
68
- return result;
69
- };
70
- }
71
-
72
- // src/posthog-logs.ts
73
- var RedactingLogRecordProcessor = class {
74
- constructor(wrapped, redact) {
75
- this.wrapped = wrapped;
76
- this.redact = redact;
77
- }
78
- wrapped;
79
- redact;
80
- onEmit(logRecord, context) {
81
- if (logRecord.body && typeof logRecord.body === "string") {
82
- logRecord.body = this.redact(logRecord.body);
83
- }
84
- if (logRecord.attributes) {
85
- for (const [key, value] of Object.entries(logRecord.attributes)) {
86
- if (typeof value === "string") {
87
- logRecord.attributes[key] = this.redact(value);
88
- } else if (Array.isArray(value)) {
89
- logRecord.attributes[key] = value.map(
90
- (item) => typeof item === "string" ? this.redact(item) : item
91
- );
92
- }
93
- }
94
- }
95
- this.wrapped.onEmit(logRecord, context);
96
- }
97
- shutdown() {
98
- return this.wrapped.shutdown();
99
- }
100
- forceFlush() {
101
- return this.wrapped.forceFlush();
102
- }
103
- };
104
- function buildPostHogLogProcessors(config2, stringRedactor) {
105
- const url = config2?.url || process.env.POSTHOG_LOGS_URL;
106
- if (!url) return [];
107
- const sdkLogs = safeRequire("@opentelemetry/sdk-logs");
108
- const exporterModule = safeRequire("@opentelemetry/exporter-logs-otlp-http");
109
- if (!sdkLogs || !exporterModule) return [];
110
- const exporter = new exporterModule.OTLPLogExporter({ url });
111
- let processor = new sdkLogs.BatchLogRecordProcessor(
112
- exporter
113
- );
114
- if (stringRedactor) {
115
- processor = new RedactingLogRecordProcessor(processor, stringRedactor);
116
- }
117
- return [processor];
118
- }
119
- function isValidUrl(urlString) {
120
- try {
121
- const url = new URL(urlString);
122
- return url.protocol === "http:" || url.protocol === "https:";
123
- } catch {
124
- return false;
125
- }
126
- }
127
- function resolveOtelEnv() {
128
- const env = {};
129
- if (process.env.OTEL_SERVICE_NAME) {
130
- const value = process.env.OTEL_SERVICE_NAME.trim();
131
- if (value) {
132
- env.OTEL_SERVICE_NAME = value;
133
- }
134
- }
135
- if (process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
136
- const value = process.env.OTEL_EXPORTER_OTLP_ENDPOINT.trim();
137
- if (value && isValidUrl(value)) {
138
- env.OTEL_EXPORTER_OTLP_ENDPOINT = value;
139
- }
140
- }
141
- if (process.env.OTEL_EXPORTER_OTLP_HEADERS) {
142
- const value = process.env.OTEL_EXPORTER_OTLP_HEADERS.trim();
143
- if (value) {
144
- env.OTEL_EXPORTER_OTLP_HEADERS = value;
145
- }
146
- }
147
- if (process.env.OTEL_RESOURCE_ATTRIBUTES) {
148
- const value = process.env.OTEL_RESOURCE_ATTRIBUTES.trim();
149
- if (value) {
150
- env.OTEL_RESOURCE_ATTRIBUTES = value;
151
- }
152
- }
153
- if (process.env.OTEL_EXPORTER_OTLP_PROTOCOL) {
154
- const value = process.env.OTEL_EXPORTER_OTLP_PROTOCOL.trim().toLowerCase();
155
- if (value === "http" || value === "grpc") {
156
- env.OTEL_EXPORTER_OTLP_PROTOCOL = value;
157
- }
158
- }
159
- if (process.env.OTEL_TRACES_SAMPLER) {
160
- const value = process.env.OTEL_TRACES_SAMPLER.trim();
161
- if (value) {
162
- env.OTEL_TRACES_SAMPLER = value;
163
- }
164
- }
165
- if (process.env.OTEL_TRACES_SAMPLER_ARG) {
166
- const value = process.env.OTEL_TRACES_SAMPLER_ARG.trim();
167
- if (value) {
168
- env.OTEL_TRACES_SAMPLER_ARG = value;
169
- }
170
- }
171
- return env;
172
- }
173
- function parseRatioSamplerArg(samplerName, samplerArg) {
174
- if (samplerArg === void 0) {
175
- return 1;
176
- }
177
- const ratio = Number(samplerArg);
178
- if (!Number.isFinite(ratio) || ratio < 0 || ratio > 1) {
179
- console.error(
180
- `[autotel] Invalid OTEL_TRACES_SAMPLER_ARG="${samplerArg}" for ${samplerName}. Expected a number in [0..1]. Falling back to 1.0.`
181
- );
182
- return 1;
183
- }
184
- return ratio;
185
- }
186
- function warnOnUnusedSamplerArg(samplerName, samplerArg) {
187
- if (samplerArg !== void 0) {
188
- console.error(
189
- `[autotel] OTEL_TRACES_SAMPLER_ARG is not used by OTEL_TRACES_SAMPLER="${samplerName}". Ignoring value "${samplerArg}".`
190
- );
191
- }
192
- }
193
- function createSamplerFromEnv(env) {
194
- const samplerName = env.OTEL_TRACES_SAMPLER;
195
- if (!samplerName) {
196
- return void 0;
197
- }
198
- switch (samplerName) {
199
- case "always_on":
200
- warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
201
- return new AlwaysOnSampler();
202
- case "always_off":
203
- warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
204
- return new AlwaysOffSampler();
205
- case "traceidratio":
206
- return new TraceIdRatioBasedSampler(
207
- parseRatioSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG)
208
- );
209
- case "parentbased_always_on":
210
- warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
211
- return new ParentBasedSampler({ root: new AlwaysOnSampler() });
212
- case "parentbased_always_off":
213
- warnOnUnusedSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG);
214
- return new ParentBasedSampler({ root: new AlwaysOffSampler() });
215
- case "parentbased_traceidratio":
216
- return new ParentBasedSampler({
217
- root: new TraceIdRatioBasedSampler(
218
- parseRatioSamplerArg(samplerName, env.OTEL_TRACES_SAMPLER_ARG)
219
- )
220
- });
221
- case "jaeger_remote":
222
- case "parentbased_jaeger_remote":
223
- case "xray":
224
- console.error(
225
- `[autotel] OTEL_TRACES_SAMPLER="${samplerName}" is not supported yet by autotel. Falling back to the next sampler source.`
226
- );
227
- return void 0;
228
- default:
229
- console.error(
230
- `[autotel] Unknown OTEL_TRACES_SAMPLER="${samplerName}". Falling back to the next sampler source.`
231
- );
232
- return void 0;
233
- }
234
- }
235
- function parseResourceAttributes(input) {
236
- if (!input || input.trim() === "") {
237
- return {};
238
- }
239
- const attributes = {};
240
- const pairs = input.split(",");
241
- for (const pair of pairs) {
242
- const trimmedPair = pair.trim();
243
- if (!trimmedPair) continue;
244
- const equalIndex = trimmedPair.indexOf("=");
245
- if (equalIndex === -1) {
246
- continue;
247
- }
248
- const key = trimmedPair.slice(0, equalIndex).trim();
249
- const value = trimmedPair.slice(equalIndex + 1).trim();
250
- if (key && value) {
251
- attributes[key] = value;
252
- }
253
- }
254
- return attributes;
255
- }
256
- function parseOtlpHeaders(input) {
257
- if (!input || input.trim() === "") {
258
- return {};
259
- }
260
- const headers = {};
261
- const pairs = input.split(",");
262
- for (const pair of pairs) {
263
- const trimmedPair = pair.trim();
264
- if (!trimmedPair) continue;
265
- const equalIndex = trimmedPair.indexOf("=");
266
- if (equalIndex === -1) {
267
- continue;
268
- }
269
- const key = trimmedPair.slice(0, equalIndex).trim();
270
- const value = trimmedPair.slice(equalIndex + 1).trim();
271
- if (key && value) {
272
- headers[key] = value;
273
- }
274
- }
275
- return headers;
276
- }
277
- function envToConfig(env) {
278
- const config2 = {};
279
- if (env.OTEL_SERVICE_NAME) {
280
- config2.service = env.OTEL_SERVICE_NAME;
281
- }
282
- if (env.OTEL_EXPORTER_OTLP_ENDPOINT) {
283
- config2.endpoint = env.OTEL_EXPORTER_OTLP_ENDPOINT;
284
- }
285
- if (env.OTEL_EXPORTER_OTLP_PROTOCOL) {
286
- config2.protocol = env.OTEL_EXPORTER_OTLP_PROTOCOL;
287
- }
288
- if (env.OTEL_EXPORTER_OTLP_HEADERS) {
289
- config2.headers = parseOtlpHeaders(env.OTEL_EXPORTER_OTLP_HEADERS);
290
- }
291
- const resourceAttrs = parseResourceAttributes(env.OTEL_RESOURCE_ATTRIBUTES);
292
- if (Object.keys(resourceAttrs).length > 0) {
293
- config2.resourceAttributes = resourceAttrs;
294
- }
295
- const sampler = createSamplerFromEnv(env);
296
- if (sampler) {
297
- config2.otelSampler = sampler;
298
- }
299
- return config2;
300
- }
301
- function resolveConfigFromEnv() {
302
- const env = resolveOtelEnv();
303
- return envToConfig(env);
304
- }
305
-
306
- // src/devtools.ts
307
- var defaultHost = "127.0.0.1";
308
- var defaultPort = 4318;
309
- function resolveDevtoolsConfig(config2) {
310
- if (!config2) {
311
- return {
312
- enabled: false,
313
- endpoint: void 0,
314
- embedded: false,
315
- host: defaultHost,
316
- port: defaultPort,
317
- verbose: false
318
- };
319
- }
320
- if (config2 === true) {
321
- return {
322
- enabled: true,
323
- endpoint: `http://${defaultHost}:${defaultPort}`,
324
- embedded: false,
325
- host: defaultHost,
326
- port: defaultPort,
327
- verbose: false
328
- };
329
- }
330
- const enabled = config2.enabled ?? true;
331
- const host = config2.host ?? defaultHost;
332
- const port = config2.port ?? defaultPort;
333
- const endpoint = config2.endpoint ?? `http://${host}:${port}`;
334
- return {
335
- enabled,
336
- endpoint: enabled ? endpoint : void 0,
337
- embedded: enabled && (config2.embedded ?? false),
338
- host,
339
- port,
340
- verbose: config2.verbose ?? false
341
- };
342
- }
343
-
344
- // src/init.ts
345
- var silentLogger = {
346
- info: () => {
347
- },
348
- warn: () => {
349
- },
350
- error: () => {
351
- },
352
- debug: () => {
353
- }
354
- };
355
- function toOtelSampler(sampler) {
356
- return {
357
- shouldSample(_context, _traceId, spanName, _spanKind, _attributes, links) {
358
- const shouldTrace = sampler.shouldSample({
359
- operationName: spanName,
360
- args: [],
361
- links
362
- });
363
- return {
364
- decision: shouldTrace ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD
365
- };
366
- },
367
- toString() {
368
- return `AutotelSamplerAdapter`;
369
- }
370
- };
371
- }
372
- var OTLPTraceExporterGRPC;
373
- var OTLPMetricExporterGRPC;
374
- var OTLPLogExporterGRPC;
375
- function loadGRPCTraceExporter() {
376
- if (OTLPTraceExporterGRPC) return OTLPTraceExporterGRPC;
377
- try {
378
- const grpcModule = requireModule("@opentelemetry/exporter-trace-otlp-grpc");
379
- OTLPTraceExporterGRPC = grpcModule.OTLPTraceExporter;
380
- return OTLPTraceExporterGRPC;
381
- } catch {
382
- throw new Error(
383
- "gRPC trace exporter not found. Install @opentelemetry/exporter-trace-otlp-grpc"
384
- );
385
- }
386
- }
387
- function loadGRPCMetricExporter() {
388
- if (OTLPMetricExporterGRPC) return OTLPMetricExporterGRPC;
389
- try {
390
- const grpcModule = requireModule("@opentelemetry/exporter-metrics-otlp-grpc");
391
- OTLPMetricExporterGRPC = grpcModule.OTLPMetricExporter;
392
- return OTLPMetricExporterGRPC;
393
- } catch {
394
- throw new Error(
395
- "gRPC metric exporter not found. Install @opentelemetry/exporter-metrics-otlp-grpc"
396
- );
397
- }
398
- }
399
- function createTraceExporter(protocol, config2) {
400
- if (protocol === "grpc") {
401
- const Exporter = loadGRPCTraceExporter();
402
- return new Exporter(config2);
403
- }
404
- return new OTLPTraceExporter(config2);
405
- }
406
- function createMetricExporter(protocol, config2) {
407
- if (protocol === "grpc") {
408
- const Exporter = loadGRPCMetricExporter();
409
- return new Exporter(config2);
410
- }
411
- return new OTLPMetricExporter(config2);
412
- }
413
- function loadGRPCLogExporter() {
414
- if (OTLPLogExporterGRPC) return OTLPLogExporterGRPC;
415
- try {
416
- const grpcModule = requireModule("@opentelemetry/exporter-logs-otlp-grpc");
417
- OTLPLogExporterGRPC = grpcModule.OTLPLogExporter;
418
- return OTLPLogExporterGRPC;
419
- } catch {
420
- throw new Error(
421
- "gRPC log exporter not found. Install @opentelemetry/exporter-logs-otlp-grpc"
422
- );
423
- }
424
- }
425
- function createLogExporter(protocol, config2) {
426
- if (protocol === "grpc") {
427
- const Exporter = loadGRPCLogExporter();
428
- return new Exporter(config2);
429
- }
430
- return new OTLPLogExporter(config2);
431
- }
432
- function resolveProtocol(configProtocol) {
433
- if (configProtocol === "grpc" || configProtocol === "http") {
434
- return configProtocol;
435
- }
436
- const envProtocol = process.env.OTEL_EXPORTER_OTLP_PROTOCOL;
437
- if (envProtocol === "grpc") return "grpc";
438
- if (envProtocol === "http/protobuf" || envProtocol === "http") return "http";
439
- return "http";
440
- }
441
- function formatEndpointUrl(endpoint, signal, protocol) {
442
- if (protocol === "grpc") {
443
- return endpoint.replace(/\/(v1\/)?(traces|metrics|logs)$/, "");
444
- }
445
- if (!endpoint.endsWith(`/v1/${signal}`)) {
446
- return `${endpoint}/v1/${signal}`;
447
- }
448
- return endpoint;
449
- }
450
- var initialized = false;
451
- var locked = false;
452
- var config = null;
453
- var sdk = null;
454
- var warnedOnce = false;
455
- var logger = silentLogger;
456
- var validationConfig = null;
457
- var eventsConfig = null;
458
- var _stringRedactor = null;
459
- var _optionalRequire = safeRequire;
460
- var _devtoolsClose = null;
461
- var LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
462
- function lockLogger() {
463
- locked = true;
464
- }
465
- function isLoggerLocked() {
466
- return locked;
467
- }
468
- function createSilentLogger() {
469
- return {
470
- info: () => {
471
- },
472
- warn: () => {
473
- },
474
- error: () => {
475
- },
476
- debug: () => {
477
- }
478
- };
479
- }
480
- function wrapLogger(base, silent, minLevel) {
481
- if (silent) return createSilentLogger();
482
- const threshold = LOG_LEVELS[minLevel];
483
- const wrap = (fn, level) => {
484
- if (LOG_LEVELS[level] < threshold) {
485
- return (() => {
486
- });
487
- }
488
- return ((...args) => fn(...args));
489
- };
490
- return {
491
- debug: wrap(base.debug, "debug"),
492
- info: wrap(base.info, "info"),
493
- warn: wrap(base.warn, "warn"),
494
- error: wrap(base.error, "error")
495
- };
496
- }
497
- function resolveAttributeRedactor(explicit, environment) {
498
- if (explicit === false) return void 0;
499
- if (explicit !== void 0) return explicit;
500
- const flag = process.env.AUTOTEL_REDACT_PII?.trim().toLowerCase();
501
- if (flag) {
502
- if (["off", "false", "0", "none", "disabled"].includes(flag)) {
503
- return void 0;
504
- }
505
- if (flag === "default" || flag === "strict" || flag === "pci-dss") {
506
- return flag;
507
- }
508
- if (["on", "true", "1", "enabled"].includes(flag)) {
509
- return "default";
510
- }
511
- }
512
- return environment === "production" ? "default" : void 0;
513
- }
514
- function detectEnvironmentAttributes() {
515
- const attrs = {};
516
- const commitSha = process.env.COMMIT_SHA || process.env.GITHUB_SHA || process.env.VERCEL_GIT_COMMIT_SHA || process.env.CF_PAGES_COMMIT_SHA || process.env.AWS_CODEPIPELINE_EXECUTION_ID;
517
- if (commitSha) attrs["service.commit.sha"] = commitSha;
518
- const region = process.env.VERCEL_REGION || process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || process.env.FLY_REGION || process.env.CF_REGION || process.env.GOOGLE_CLOUD_REGION;
519
- if (region) attrs["service.region"] = region;
520
- const version = process.env.APP_VERSION || process.env.HEROKU_RELEASE_VERSION || process.env.VERCEL_GIT_COMMIT_REF;
521
- if (version) attrs["service.deploy.version"] = version;
522
- return attrs;
523
- }
524
- function resolveMetricsFlag(configFlag = "auto") {
525
- const envFlag = process.env.AUTOTEL_METRICS;
526
- if (envFlag === "on" || envFlag === "true") return true;
527
- if (envFlag === "off" || envFlag === "false") return false;
528
- if (configFlag === true) return true;
529
- if (configFlag === false) return false;
530
- return true;
531
- }
532
- function resolveLogsFlag(configFlag = "auto") {
533
- const envFlag = process.env.AUTOTEL_LOGS;
534
- if (envFlag === "on" || envFlag === "true") return true;
535
- if (envFlag === "off" || envFlag === "false") return false;
536
- if (configFlag === true) return true;
537
- if (configFlag === false) return false;
538
- return false;
539
- }
540
- function resolveDebugFlag(configFlag) {
541
- const envFlag = process.env.AUTOTEL_DEBUG;
542
- if (envFlag === "pretty") return "pretty";
543
- if (envFlag === "true" || envFlag === "1") return true;
544
- if (envFlag === "false" || envFlag === "0") return false;
545
- return configFlag ?? false;
546
- }
547
- function normalizeOtlpHeaders(headers) {
548
- if (!headers) return void 0;
549
- if (typeof headers !== "string") return headers;
550
- const parsed = {};
551
- for (const pair of headers.split(",")) {
552
- const [key, ...valueParts] = pair.split("=");
553
- if (!key || valueParts.length === 0) continue;
554
- parsed[key.trim()] = valueParts.join("=").trim();
555
- }
556
- return parsed;
557
- }
558
- function init(cfg) {
559
- if (locked) {
560
- return;
561
- }
562
- const envConfig = resolveConfigFromEnv();
563
- const yamlConfig = loadYamlConfig() ?? {};
564
- const mergedConfig = {
565
- ...envConfig,
566
- // Environment variables (lowest priority)
567
- ...yamlConfig,
568
- // YAML file (middle priority)
569
- ...cfg,
570
- // Explicit config (highest priority)
571
- // Deep merge for resourceAttributes
572
- resourceAttributes: {
573
- ...envConfig.resourceAttributes,
574
- ...yamlConfig.resourceAttributes,
575
- ...detectEnvironmentAttributes(),
576
- ...cfg.resourceAttributes
577
- },
578
- // Handle headers merge (can be string or object)
579
- headers: cfg.headers ?? yamlConfig.headers ?? envConfig.headers
580
- };
581
- const resolvedRedactor = resolveAttributeRedactor(
582
- mergedConfig.attributeRedactor,
583
- mergedConfig.environment || process.env.NODE_ENV || "development"
584
- );
585
- if (resolvedRedactor === void 0) {
586
- mergedConfig.attributeRedactor = void 0;
587
- } else {
588
- const normalizedRedactor = normalizeAttributeRedactorConfig(resolvedRedactor);
589
- if (!normalizedRedactor) {
590
- throw new Error("Invalid attributeRedactor config");
591
- }
592
- mergedConfig.attributeRedactor = normalizedRedactor;
593
- }
594
- const devtoolsConfig = resolveDevtoolsConfig(mergedConfig.devtools);
595
- if (devtoolsConfig.enabled && mergedConfig.logs === void 0) {
596
- mergedConfig.logs = true;
597
- }
598
- const silent = mergedConfig.silent ?? false;
599
- const minLevel = mergedConfig.minLevel ?? "info";
600
- const baseLogger = mergedConfig.logger || silentLogger;
601
- logger = wrapLogger(baseLogger, silent, minLevel);
602
- if (initialized) {
603
- logger.warn(
604
- {},
605
- "[autotel] init() called again - last config wins. This may cause unexpected behavior."
606
- );
607
- }
608
- config = mergedConfig;
609
- validationConfig = mergedConfig.validation || null;
610
- eventsConfig = mergedConfig.events || null;
611
- let endpoint = mergedConfig.endpoint ?? devtoolsConfig.endpoint;
612
- const otlpHeaders = normalizeOtlpHeaders(mergedConfig.headers);
613
- const version = mergedConfig.version || detectVersion();
614
- const environment = mergedConfig.environment || process.env.NODE_ENV || "development";
615
- const metricsEnabled = resolveMetricsFlag(mergedConfig.metrics);
616
- const logsEnabled = resolveLogsFlag(mergedConfig.logs);
617
- if (devtoolsConfig.enabled && devtoolsConfig.embedded) {
618
- const devtoolsModule = _optionalRequire("autotel-devtools");
619
- if (devtoolsModule?.createDevtools) {
620
- const devtoolsInstance = devtoolsModule.createDevtools({
621
- port: devtoolsConfig.port,
622
- host: devtoolsConfig.host,
623
- verbose: devtoolsConfig.verbose
624
- });
625
- _devtoolsClose = devtoolsInstance.close;
626
- endpoint = `http://${devtoolsConfig.host}:${devtoolsInstance.port}`;
627
- logger.info(
628
- {},
629
- `[autotel] autotel-devtools embedded server started at ${endpoint}`
630
- );
631
- } else {
632
- logger.warn(
633
- {},
634
- "[autotel] devtools.embedded requested but autotel-devtools is not installed. Falling back to endpoint-only mode."
635
- );
636
- }
637
- }
638
- const hostname = detectHostname();
639
- let resource = resourceFromAttributes({
640
- [ATTR_SERVICE_NAME]: mergedConfig.service,
641
- [ATTR_SERVICE_VERSION]: version,
642
- // Support both old and new OpenTelemetry semantic conventions for environment
643
- "deployment.environment": environment,
644
- // Deprecated but widely supported
645
- "deployment.environment.name": environment
646
- // OTel v1.27.0+ standard
647
- });
648
- if (hostname) {
649
- resource = resource.merge(
650
- resourceFromAttributes({
651
- "host.name": hostname,
652
- // OpenTelemetry standard
653
- "datadog.host.name": hostname
654
- // Datadog-specific, highest priority for Datadog
655
- })
656
- );
657
- }
658
- if (mergedConfig.resource) {
659
- resource = resource.merge(mergedConfig.resource);
660
- }
661
- if (mergedConfig.resourceAttributes) {
662
- resource = resource.merge(
663
- resourceFromAttributes(mergedConfig.resourceAttributes)
664
- );
665
- }
666
- const protocol = resolveProtocol(mergedConfig.protocol);
667
- const configuredSpanProcessors = mergedConfig.spanProcessors && mergedConfig.spanProcessors.length > 0 ? mergedConfig.spanProcessors : mergedConfig.spanProcessor ? [mergedConfig.spanProcessor] : void 0;
668
- const configuredSpanExporters = mergedConfig.spanExporters && mergedConfig.spanExporters.length > 0 ? mergedConfig.spanExporters : mergedConfig.spanExporter ? [mergedConfig.spanExporter] : void 0;
669
- const configuredMetricReaders = mergedConfig.metricReaders && mergedConfig.metricReaders.length > 0 ? mergedConfig.metricReaders : mergedConfig.metricReader ? [mergedConfig.metricReader] : void 0;
670
- const configuredLogRecordProcessors = mergedConfig.logRecordProcessors && mergedConfig.logRecordProcessors.length > 0 ? mergedConfig.logRecordProcessors : mergedConfig.logRecordProcessor ? [mergedConfig.logRecordProcessor] : void 0;
671
- let spanProcessors = [];
672
- if (configuredSpanProcessors && configuredSpanProcessors.length > 0) {
673
- spanProcessors.push(...configuredSpanProcessors);
674
- } else if (configuredSpanExporters && configuredSpanExporters.length > 0) {
675
- for (const exporter of configuredSpanExporters) {
676
- spanProcessors.push(
677
- new TailSamplingSpanProcessor(new BatchSpanProcessor(exporter))
678
- );
679
- }
680
- } else if (endpoint) {
681
- const traceExporter = createTraceExporter(protocol, {
682
- url: formatEndpointUrl(endpoint, "traces", protocol),
683
- headers: otlpHeaders
684
- });
685
- spanProcessors.push(
686
- new TailSamplingSpanProcessor(new BatchSpanProcessor(traceExporter))
687
- );
688
- }
689
- if (mergedConfig.baggage) {
690
- const prefix = typeof mergedConfig.baggage === "string" ? mergedConfig.baggage ? `${mergedConfig.baggage}.` : "" : "baggage.";
691
- spanProcessors.push(new BaggageSpanProcessor({ prefix }));
692
- }
693
- const debugMode = resolveDebugFlag(mergedConfig.debug);
694
- if (debugMode === "pretty") {
695
- spanProcessors.push(new SimpleSpanProcessor(new PrettyConsoleExporter()));
696
- } else if (debugMode === true) {
697
- spanProcessors.push(new SimpleSpanProcessor(new ConsoleSpanExporter()));
698
- }
699
- if (mergedConfig.canonicalLogLines?.enabled) {
700
- const canonicalOptions = {
701
- logger: mergedConfig.canonicalLogLines.logger || mergedConfig.logger,
702
- rootSpansOnly: mergedConfig.canonicalLogLines.rootSpansOnly,
703
- minLevel: mergedConfig.canonicalLogLines.minLevel,
704
- messageFormat: mergedConfig.canonicalLogLines.messageFormat,
705
- includeResourceAttributes: mergedConfig.canonicalLogLines.includeResourceAttributes,
706
- shouldEmit: mergedConfig.canonicalLogLines.shouldEmit,
707
- keep: mergedConfig.canonicalLogLines.keep,
708
- drain: mergedConfig.canonicalLogLines.drain,
709
- onDrainError: mergedConfig.canonicalLogLines.onDrainError,
710
- pretty: mergedConfig.canonicalLogLines.pretty
711
- };
712
- spanProcessors.push(new CanonicalLogLineProcessor(canonicalOptions));
713
- }
714
- if (mergedConfig.attributeRedactor && spanProcessors.length > 0) {
715
- const redactor = mergedConfig.attributeRedactor;
716
- spanProcessors = spanProcessors.map(
717
- (processor) => new AttributeRedactingProcessor(processor, {
718
- redactor
719
- })
720
- );
721
- }
722
- if (mergedConfig.attributeRedactor) {
723
- _stringRedactor = createStringRedactor(mergedConfig.attributeRedactor);
724
- }
725
- if (_stringRedactor && mergedConfig.subscribers) {
726
- for (const subscriber of mergedConfig.subscribers) {
727
- if ("setStringRedactor" in subscriber && typeof subscriber.setStringRedactor === "function") {
728
- subscriber.setStringRedactor(_stringRedactor);
729
- }
730
- }
731
- }
732
- if (mergedConfig.spanNameNormalizer && spanProcessors.length > 0) {
733
- spanProcessors = spanProcessors.map(
734
- (processor) => new SpanNameNormalizingProcessor(processor, {
735
- normalizer: mergedConfig.spanNameNormalizer
736
- })
737
- );
738
- }
739
- if (mergedConfig.spanFilter && spanProcessors.length > 0) {
740
- spanProcessors = spanProcessors.map(
741
- (processor) => new FilteringSpanProcessor(processor, {
742
- filter: mergedConfig.spanFilter
743
- })
744
- );
745
- }
746
- const metricReaders = [];
747
- if (configuredMetricReaders && configuredMetricReaders.length > 0) {
748
- metricReaders.push(...configuredMetricReaders);
749
- } else if (metricsEnabled && endpoint) {
750
- const metricExporter = createMetricExporter(protocol, {
751
- url: formatEndpointUrl(endpoint, "metrics", protocol),
752
- headers: otlpHeaders
753
- });
754
- metricReaders.push(
755
- new PeriodicExportingMetricReader({
756
- exporter: metricExporter
757
- })
758
- );
759
- }
760
- let logRecordProcessors;
761
- if (configuredLogRecordProcessors && configuredLogRecordProcessors.length > 0) {
762
- logRecordProcessors = [...configuredLogRecordProcessors];
763
- }
764
- if (logsEnabled && endpoint) {
765
- const logExporter = createLogExporter(protocol, {
766
- url: formatEndpointUrl(endpoint, "logs", protocol),
767
- headers: otlpHeaders
768
- });
769
- let processor = new BatchLogRecordProcessor(
770
- logExporter
771
- );
772
- if (_stringRedactor) {
773
- processor = new RedactingLogRecordProcessor(processor, _stringRedactor);
774
- }
775
- if (!logRecordProcessors) {
776
- logRecordProcessors = [];
777
- }
778
- logRecordProcessors.push(processor);
779
- logger.info({}, "[autotel] OTLP log exporter configured");
780
- }
781
- const posthogProcessors = buildPostHogLogProcessors(
782
- mergedConfig.posthog,
783
- _stringRedactor
784
- );
785
- if (posthogProcessors.length > 0) {
786
- if (!logRecordProcessors) {
787
- logRecordProcessors = [];
788
- }
789
- logRecordProcessors.push(...posthogProcessors);
790
- logger.info({}, "[autotel] PostHog OTLP logs configured");
791
- }
792
- let finalInstrumentations = mergedConfig.instrumentations ? [...mergedConfig.instrumentations] : [];
793
- if (mergedConfig.autoInstrumentations !== void 0 && mergedConfig.autoInstrumentations !== false) {
794
- const isESM = isESMMode();
795
- if (isESM) {
796
- logger.info(
797
- {},
798
- "[autotel] ESM mode detected. For auto-instrumentation to work:\n 1. Install @opentelemetry/auto-instrumentations-node as a direct dependency\n 2. Import autotel/register FIRST in your instrumentation file\n 3. Use getNodeAutoInstrumentations() directly instead of autoInstrumentations\n See: https://github.com/jagreehal/autotel#esm-setup"
799
- );
800
- }
801
- try {
802
- const manualInstrumentationNames = getInstrumentationNames(
803
- mergedConfig.instrumentations ?? []
804
- );
805
- if (manualInstrumentationNames.size > 0) {
806
- const manualNames = [...manualInstrumentationNames].join(", ");
807
- logger.info(
808
- {},
809
- `[autotel] Detected manual instrumentations (${manualNames}). These will take precedence over auto-instrumentations. Tip: Set autoInstrumentations:false if you want full manual control, or remove manual configs to use auto-instrumentations.`
810
- );
811
- }
812
- const autoInstrumentations = getAutoInstrumentations(
813
- mergedConfig.autoInstrumentations,
814
- manualInstrumentationNames
815
- );
816
- if (autoInstrumentations && autoInstrumentations.length > 0) {
817
- finalInstrumentations = [
818
- ...finalInstrumentations,
819
- ...autoInstrumentations
820
- ];
821
- }
822
- } catch (error) {
823
- logger.warn(
824
- {},
825
- `[autotel] Failed to configure auto-instrumentations: ${error instanceof Error ? error.message : String(error)}`
826
- );
827
- }
828
- }
829
- const autotelSampler = mergedConfig.sampler ?? (mergedConfig.sampling ? resolveSamplingPreset(mergedConfig.sampling) : void 0);
830
- if (autotelSampler) {
831
- mergedConfig.sampler = autotelSampler;
832
- }
833
- const sampler = autotelSampler ? toOtelSampler(autotelSampler) : envConfig.otelSampler ?? toOtelSampler(samplingPresets.production());
834
- const sdkOptions = {
835
- resource,
836
- sampler,
837
- instrumentations: finalInstrumentations
838
- };
839
- if (spanProcessors.length > 0) {
840
- sdkOptions.spanProcessors = spanProcessors;
841
- }
842
- if (metricReaders.length > 0) {
843
- sdkOptions.metricReaders = metricReaders;
844
- }
845
- if (logRecordProcessors && logRecordProcessors.length > 0) {
846
- sdkOptions.logRecordProcessors = logRecordProcessors;
847
- }
848
- sdk = mergedConfig.sdkFactory ? mergedConfig.sdkFactory(sdkOptions) : new NodeSDK(sdkOptions);
849
- if (!sdk) {
850
- throw new Error("[autotel] sdkFactory must return a NodeSDK instance");
851
- }
852
- sdk.start();
853
- if (mergedConfig.openllmetry?.enabled) {
854
- const traceloop = _optionalRequire("@traceloop/node-server-sdk");
855
- if (traceloop) {
856
- const initOptions = {
857
- ...mergedConfig.openllmetry.options
858
- };
859
- try {
860
- const tracerProvider = sdk.getTracerProvider();
861
- initOptions.tracerProvider = tracerProvider;
862
- } catch {
863
- }
864
- if (configuredSpanExporters?.[0]) {
865
- initOptions.exporter = configuredSpanExporters[0];
866
- }
867
- if (typeof traceloop.initialize === "function") {
868
- traceloop.initialize(initOptions);
869
- logger.info({}, "[autotel] OpenLLMetry initialized successfully");
870
- } else {
871
- logger.warn(
872
- {},
873
- "[autotel] OpenLLMetry initialize function not found. Check @traceloop/node-server-sdk version."
874
- );
875
- }
876
- } else {
877
- logger.warn(
878
- {},
879
- "[autotel] OpenLLMetry enabled but @traceloop/node-server-sdk is not installed. Install it as a peer dependency to use OpenLLMetry integration."
880
- );
881
- }
882
- }
883
- initialized = true;
884
- }
885
- function getInstrumentationNames(instrumentations) {
886
- const names = /* @__PURE__ */ new Set();
887
- if (!instrumentations) return names;
888
- for (const instrumentation of instrumentations) {
889
- if (instrumentation && typeof instrumentation === "object") {
890
- names.add(instrumentation.constructor.name);
891
- }
892
- }
893
- return names;
894
- }
895
- var INSTRUMENTATION_CLASS_TO_PACKAGE = {
896
- HttpInstrumentation: "@opentelemetry/instrumentation-http",
897
- HttpsInstrumentation: "@opentelemetry/instrumentation-http",
898
- ExpressInstrumentation: "@opentelemetry/instrumentation-express",
899
- FastifyInstrumentation: "@opentelemetry/instrumentation-fastify",
900
- MongoDBInstrumentation: "@opentelemetry/instrumentation-mongodb",
901
- MongooseInstrumentation: "@opentelemetry/instrumentation-mongoose",
902
- PrismaInstrumentation: "@opentelemetry/instrumentation-prisma",
903
- PinoInstrumentation: "@opentelemetry/instrumentation-pino",
904
- WinstonInstrumentation: "@opentelemetry/instrumentation-winston",
905
- RedisInstrumentation: "@opentelemetry/instrumentation-redis",
906
- GraphQLInstrumentation: "@opentelemetry/instrumentation-graphql",
907
- GrpcInstrumentation: "@opentelemetry/instrumentation-grpc",
908
- IORedisInstrumentation: "@opentelemetry/instrumentation-ioredis",
909
- KnexInstrumentation: "@opentelemetry/instrumentation-knex",
910
- NestJsInstrumentation: "@opentelemetry/instrumentation-nestjs-core",
911
- PgInstrumentation: "@opentelemetry/instrumentation-pg",
912
- MySQLInstrumentation: "@opentelemetry/instrumentation-mysql",
913
- MySQL2Instrumentation: "@opentelemetry/instrumentation-mysql2"
914
- };
915
- function isESMMode() {
916
- try {
917
- const fs = requireModule("node:fs");
918
- try {
919
- const pkg = JSON.parse(
920
- fs.readFileSync(`${process.cwd()}/package.json`, "utf8")
921
- );
922
- return pkg.type === "module";
923
- } catch {
924
- return false;
925
- }
926
- } catch {
927
- return false;
928
- }
929
- }
930
- function loadNodeAutoInstrumentations() {
931
- try {
932
- const mod = requireModule("@opentelemetry/auto-instrumentations-node");
933
- return mod.getNodeAutoInstrumentations;
934
- } catch {
935
- const isESM = isESMMode();
936
- const baseMessage = "@opentelemetry/auto-instrumentations-node not found.";
937
- if (isESM) {
938
- throw new Error(
939
- `${baseMessage}
940
-
941
- ESM Setup Required:
942
- 1. Install as a direct dependency: pnpm add @opentelemetry/auto-instrumentations-node
943
- 2. Create instrumentation.mjs with:
944
- import 'autotel/register'; // MUST be first!
945
- import { init } from 'autotel';
946
- import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
947
- init({ service: "my-app", instrumentations: getNodeAutoInstrumentations() });
948
- 3. Run with: tsx --import ./instrumentation.mjs src/index.ts
949
-
950
- See: https://github.com/jagreehal/autotel#esm-setup`
951
- );
952
- }
953
- throw new Error(
954
- `${baseMessage} Install it: pnpm add @opentelemetry/auto-instrumentations-node`
955
- );
956
- }
957
- }
958
- function getAutoInstrumentations(integrations, manualInstrumentationNames = /* @__PURE__ */ new Set()) {
959
- if (integrations === false) {
960
- return [];
961
- }
962
- const getNodeAutoInstrumentations = loadNodeAutoInstrumentations();
963
- const exclusionConfig = {};
964
- for (const className of manualInstrumentationNames) {
965
- const packageName = INSTRUMENTATION_CLASS_TO_PACKAGE[className];
966
- if (packageName) {
967
- exclusionConfig[packageName] = { enabled: false };
968
- }
969
- }
970
- if (integrations === true) {
971
- if (Object.keys(exclusionConfig).length > 0) {
972
- return getNodeAutoInstrumentations(exclusionConfig);
973
- }
974
- return getNodeAutoInstrumentations();
975
- }
976
- if (Array.isArray(integrations)) {
977
- const config3 = { ...exclusionConfig };
978
- for (const name of integrations) {
979
- const packageName = `@opentelemetry/instrumentation-${name}`;
980
- if (!exclusionConfig[packageName]) {
981
- config3[packageName] = { enabled: true };
982
- }
983
- }
984
- return getNodeAutoInstrumentations(config3);
985
- }
986
- const config2 = {
987
- ...exclusionConfig,
988
- ...integrations
989
- };
990
- for (const packageName of Object.keys(exclusionConfig)) {
991
- const integrationsKey = Object.keys(integrations).find(
992
- (key) => packageName.includes(key)
993
- );
994
- if (integrationsKey) {
995
- config2[packageName] = { enabled: false };
996
- }
997
- }
998
- return getNodeAutoInstrumentations(config2);
999
- }
1000
- function isInitialized() {
1001
- return initialized;
1002
- }
1003
- function getConfig() {
1004
- return config;
1005
- }
1006
- function getLogger() {
1007
- return logger;
1008
- }
1009
- function getValidationConfig() {
1010
- return validationConfig;
1011
- }
1012
- function getEventsConfig() {
1013
- return eventsConfig;
1014
- }
1015
- function warnIfNotInitialized(context) {
1016
- if (!initialized && !warnedOnce) {
1017
- logger.warn(
1018
- {},
1019
- `[autotel] ${context} used before init() called. Call init({ service: "..." }) first. See: https://docs.autotel.dev/quickstart`
1020
- );
1021
- warnedOnce = true;
1022
- }
1023
- }
1024
- function detectVersion() {
1025
- try {
1026
- const fs = requireModule("node:fs");
1027
- const pkg = JSON.parse(
1028
- fs.readFileSync(`${process.cwd()}/package.json`, "utf8")
1029
- );
1030
- return pkg.version || "1.0.0";
1031
- } catch {
1032
- return "1.0.0";
1033
- }
1034
- }
1035
- function detectHostname() {
1036
- if (process.env.DD_HOSTNAME) {
1037
- return process.env.DD_HOSTNAME;
1038
- }
1039
- if (process.env.HOSTNAME) {
1040
- return process.env.HOSTNAME;
1041
- }
1042
- try {
1043
- const os = requireModule("node:os");
1044
- return os.hostname();
1045
- } catch {
1046
- return void 0;
1047
- }
1048
- }
1049
- async function _closeEmbeddedDevtools() {
1050
- if (_devtoolsClose) {
1051
- await _devtoolsClose();
1052
- _devtoolsClose = null;
1053
- }
1054
- }
1055
- function getSdk() {
1056
- return sdk;
1057
- }
1058
-
1059
- export { BaggageSpanProcessor, _closeEmbeddedDevtools, createStringRedactor, getConfig, getEventsConfig, getLogger, getSdk, getValidationConfig, init, isInitialized, isLoggerLocked, lockLogger, warnIfNotInitialized };
1060
- //# sourceMappingURL=chunk-ALPYR2GC.js.map
1061
- //# sourceMappingURL=chunk-ALPYR2GC.js.map