@superblocksteam/telemetry 2.0.0-SNAPSHOT.329be19cb7ca892b

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 (388) hide show
  1. package/LICENSE.txt +87 -0
  2. package/README.md +298 -0
  3. package/dist/browser/console-logging.d.ts +18 -0
  4. package/dist/browser/console-logging.d.ts.map +1 -0
  5. package/dist/browser/console-logging.js +32 -0
  6. package/dist/browser/console-logging.js.map +1 -0
  7. package/dist/browser/early-console-buffer.d.ts +49 -0
  8. package/dist/browser/early-console-buffer.d.ts.map +1 -0
  9. package/dist/browser/early-console-buffer.js +182 -0
  10. package/dist/browser/early-console-buffer.js.map +1 -0
  11. package/dist/browser/index.d.ts +17 -0
  12. package/dist/browser/index.d.ts.map +1 -0
  13. package/dist/browser/index.js +50 -0
  14. package/dist/browser/index.js.map +1 -0
  15. package/dist/browser/init.d.ts +101 -0
  16. package/dist/browser/init.d.ts.map +1 -0
  17. package/dist/browser/init.js +329 -0
  18. package/dist/browser/init.js.map +1 -0
  19. package/dist/browser/instrumentations.d.ts +67 -0
  20. package/dist/browser/instrumentations.d.ts.map +1 -0
  21. package/dist/browser/instrumentations.js +83 -0
  22. package/dist/browser/instrumentations.js.map +1 -0
  23. package/dist/browser/logs.d.ts +55 -0
  24. package/dist/browser/logs.d.ts.map +1 -0
  25. package/dist/browser/logs.js +86 -0
  26. package/dist/browser/logs.js.map +1 -0
  27. package/dist/browser/metrics.d.ts +29 -0
  28. package/dist/browser/metrics.d.ts.map +1 -0
  29. package/dist/browser/metrics.js +49 -0
  30. package/dist/browser/metrics.js.map +1 -0
  31. package/dist/browser/resilient-exporter.d.ts +43 -0
  32. package/dist/browser/resilient-exporter.d.ts.map +1 -0
  33. package/dist/browser/resilient-exporter.js +88 -0
  34. package/dist/browser/resilient-exporter.js.map +1 -0
  35. package/dist/browser/sanitizer.d.ts +35 -0
  36. package/dist/browser/sanitizer.d.ts.map +1 -0
  37. package/dist/browser/sanitizer.js +211 -0
  38. package/dist/browser/sanitizer.js.map +1 -0
  39. package/dist/browser/traced-socket.d.ts +102 -0
  40. package/dist/browser/traced-socket.d.ts.map +1 -0
  41. package/dist/browser/traced-socket.js +203 -0
  42. package/dist/browser/traced-socket.js.map +1 -0
  43. package/dist/common/contracts/tier2-traces.d.ts +116 -0
  44. package/dist/common/contracts/tier2-traces.d.ts.map +1 -0
  45. package/dist/common/contracts/tier2-traces.js +736 -0
  46. package/dist/common/contracts/tier2-traces.js.map +1 -0
  47. package/dist/common/deployment-type.d.ts +18 -0
  48. package/dist/common/deployment-type.d.ts.map +1 -0
  49. package/dist/common/deployment-type.js +30 -0
  50. package/dist/common/deployment-type.js.map +1 -0
  51. package/dist/common/guardrails.d.ts +116 -0
  52. package/dist/common/guardrails.d.ts.map +1 -0
  53. package/dist/common/guardrails.js +189 -0
  54. package/dist/common/guardrails.js.map +1 -0
  55. package/dist/common/index.d.ts +18 -0
  56. package/dist/common/index.d.ts.map +1 -0
  57. package/dist/common/index.js +34 -0
  58. package/dist/common/index.js.map +1 -0
  59. package/dist/common/log-sanitizer.d.ts +170 -0
  60. package/dist/common/log-sanitizer.d.ts.map +1 -0
  61. package/dist/common/log-sanitizer.js +690 -0
  62. package/dist/common/log-sanitizer.js.map +1 -0
  63. package/dist/common/normalize-metric-path.d.ts +2 -0
  64. package/dist/common/normalize-metric-path.d.ts.map +1 -0
  65. package/dist/common/normalize-metric-path.js +22 -0
  66. package/dist/common/normalize-metric-path.js.map +1 -0
  67. package/dist/common/policy-evaluator.d.ts +103 -0
  68. package/dist/common/policy-evaluator.d.ts.map +1 -0
  69. package/dist/common/policy-evaluator.js +200 -0
  70. package/dist/common/policy-evaluator.js.map +1 -0
  71. package/dist/common/resource.d.ts +79 -0
  72. package/dist/common/resource.d.ts.map +1 -0
  73. package/dist/common/resource.js +128 -0
  74. package/dist/common/resource.js.map +1 -0
  75. package/dist/common/tier-hints.d.ts +182 -0
  76. package/dist/common/tier-hints.d.ts.map +1 -0
  77. package/dist/common/tier-hints.js +209 -0
  78. package/dist/common/tier-hints.js.map +1 -0
  79. package/dist/common/trace-sanitizer.d.ts +82 -0
  80. package/dist/common/trace-sanitizer.d.ts.map +1 -0
  81. package/dist/common/trace-sanitizer.js +234 -0
  82. package/dist/common/trace-sanitizer.js.map +1 -0
  83. package/dist/common/traced-socket-types.d.ts +43 -0
  84. package/dist/common/traced-socket-types.d.ts.map +1 -0
  85. package/dist/common/traced-socket-types.js +17 -0
  86. package/dist/common/traced-socket-types.js.map +1 -0
  87. package/dist/index.d.ts +45 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +88 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/lint/forbidden-attributes.d.ts +149 -0
  92. package/dist/lint/forbidden-attributes.d.ts.map +1 -0
  93. package/dist/lint/forbidden-attributes.js +215 -0
  94. package/dist/lint/forbidden-attributes.js.map +1 -0
  95. package/dist/lint/index.d.ts +9 -0
  96. package/dist/lint/index.d.ts.map +1 -0
  97. package/dist/lint/index.js +16 -0
  98. package/dist/lint/index.js.map +1 -0
  99. package/dist/llmobs/index.d.ts +22 -0
  100. package/dist/llmobs/index.d.ts.map +1 -0
  101. package/dist/llmobs/index.js +29 -0
  102. package/dist/llmobs/index.js.map +1 -0
  103. package/dist/llmobs/tier1-exporter.d.ts +146 -0
  104. package/dist/llmobs/tier1-exporter.d.ts.map +1 -0
  105. package/dist/llmobs/tier1-exporter.js +199 -0
  106. package/dist/llmobs/tier1-exporter.js.map +1 -0
  107. package/dist/llmobs/tier2-summarizer.d.ts +268 -0
  108. package/dist/llmobs/tier2-summarizer.d.ts.map +1 -0
  109. package/dist/llmobs/tier2-summarizer.js +656 -0
  110. package/dist/llmobs/tier2-summarizer.js.map +1 -0
  111. package/dist/node/dynamic-attribute-processor.d.ts +43 -0
  112. package/dist/node/dynamic-attribute-processor.d.ts.map +1 -0
  113. package/dist/node/dynamic-attribute-processor.js +79 -0
  114. package/dist/node/dynamic-attribute-processor.js.map +1 -0
  115. package/dist/node/exporters/resilient-exporter.d.ts +91 -0
  116. package/dist/node/exporters/resilient-exporter.d.ts.map +1 -0
  117. package/dist/node/exporters/resilient-exporter.js +136 -0
  118. package/dist/node/exporters/resilient-exporter.js.map +1 -0
  119. package/dist/node/index.d.ts +13 -0
  120. package/dist/node/index.d.ts.map +1 -0
  121. package/dist/node/index.js +32 -0
  122. package/dist/node/index.js.map +1 -0
  123. package/dist/node/init.d.ts +97 -0
  124. package/dist/node/init.d.ts.map +1 -0
  125. package/dist/node/init.js +365 -0
  126. package/dist/node/init.js.map +1 -0
  127. package/dist/node/local-obs-mode.d.ts +17 -0
  128. package/dist/node/local-obs-mode.d.ts.map +1 -0
  129. package/dist/node/local-obs-mode.js +22 -0
  130. package/dist/node/local-obs-mode.js.map +1 -0
  131. package/dist/node/log-processor.d.ts +132 -0
  132. package/dist/node/log-processor.d.ts.map +1 -0
  133. package/dist/node/log-processor.js +397 -0
  134. package/dist/node/log-processor.js.map +1 -0
  135. package/dist/node/metrics-client.d.ts +88 -0
  136. package/dist/node/metrics-client.d.ts.map +1 -0
  137. package/dist/node/metrics-client.js +209 -0
  138. package/dist/node/metrics-client.js.map +1 -0
  139. package/dist/node/safe-logger.d.ts +55 -0
  140. package/dist/node/safe-logger.d.ts.map +1 -0
  141. package/dist/node/safe-logger.js +158 -0
  142. package/dist/node/safe-logger.js.map +1 -0
  143. package/dist/node/sanitizing-processor.d.ts +67 -0
  144. package/dist/node/sanitizing-processor.d.ts.map +1 -0
  145. package/dist/node/sanitizing-processor.js +167 -0
  146. package/dist/node/sanitizing-processor.js.map +1 -0
  147. package/dist/node/service-tracers.d.ts +52 -0
  148. package/dist/node/service-tracers.d.ts.map +1 -0
  149. package/dist/node/service-tracers.js +81 -0
  150. package/dist/node/service-tracers.js.map +1 -0
  151. package/dist/node/traced-socket.d.ts +120 -0
  152. package/dist/node/traced-socket.d.ts.map +1 -0
  153. package/dist/node/traced-socket.js +338 -0
  154. package/dist/node/traced-socket.js.map +1 -0
  155. package/dist/npm-registry/emitter.d.ts +310 -0
  156. package/dist/npm-registry/emitter.d.ts.map +1 -0
  157. package/dist/npm-registry/emitter.js +537 -0
  158. package/dist/npm-registry/emitter.js.map +1 -0
  159. package/dist/npm-registry/index.d.ts +12 -0
  160. package/dist/npm-registry/index.d.ts.map +1 -0
  161. package/dist/npm-registry/index.js +28 -0
  162. package/dist/npm-registry/index.js.map +1 -0
  163. package/dist/npm-registry/sanitize.d.ts +174 -0
  164. package/dist/npm-registry/sanitize.d.ts.map +1 -0
  165. package/dist/npm-registry/sanitize.js +342 -0
  166. package/dist/npm-registry/sanitize.js.map +1 -0
  167. package/dist/npm-registry/spans.d.ts +61 -0
  168. package/dist/npm-registry/spans.d.ts.map +1 -0
  169. package/dist/npm-registry/spans.js +91 -0
  170. package/dist/npm-registry/spans.js.map +1 -0
  171. package/dist/testing/in-memory-exporter.d.ts +179 -0
  172. package/dist/testing/in-memory-exporter.d.ts.map +1 -0
  173. package/dist/testing/in-memory-exporter.js +256 -0
  174. package/dist/testing/in-memory-exporter.js.map +1 -0
  175. package/dist/testing/index.d.ts +9 -0
  176. package/dist/testing/index.d.ts.map +1 -0
  177. package/dist/testing/index.js +21 -0
  178. package/dist/testing/index.js.map +1 -0
  179. package/dist/testing/metrics-capture.d.ts +29 -0
  180. package/dist/testing/metrics-capture.d.ts.map +1 -0
  181. package/dist/testing/metrics-capture.js +74 -0
  182. package/dist/testing/metrics-capture.js.map +1 -0
  183. package/dist/testing/test-init.d.ts +80 -0
  184. package/dist/testing/test-init.d.ts.map +1 -0
  185. package/dist/testing/test-init.js +144 -0
  186. package/dist/testing/test-init.js.map +1 -0
  187. package/dist/types/index.d.ts +84 -0
  188. package/dist/types/index.d.ts.map +1 -0
  189. package/dist/types/index.js +23 -0
  190. package/dist/types/index.js.map +1 -0
  191. package/dist/types/policy.d.ts +92 -0
  192. package/dist/types/policy.d.ts.map +1 -0
  193. package/dist/types/policy.js +125 -0
  194. package/dist/types/policy.js.map +1 -0
  195. package/dist-esm/browser/console-logging.d.ts +18 -0
  196. package/dist-esm/browser/console-logging.d.ts.map +1 -0
  197. package/dist-esm/browser/console-logging.js +27 -0
  198. package/dist-esm/browser/console-logging.js.map +1 -0
  199. package/dist-esm/browser/early-console-buffer.d.ts +49 -0
  200. package/dist-esm/browser/early-console-buffer.d.ts.map +1 -0
  201. package/dist-esm/browser/early-console-buffer.js +180 -0
  202. package/dist-esm/browser/early-console-buffer.js.map +1 -0
  203. package/dist-esm/browser/index.d.ts +17 -0
  204. package/dist-esm/browser/index.d.ts.map +1 -0
  205. package/dist-esm/browser/index.js +22 -0
  206. package/dist-esm/browser/index.js.map +1 -0
  207. package/dist-esm/browser/init.d.ts +101 -0
  208. package/dist-esm/browser/init.d.ts.map +1 -0
  209. package/dist-esm/browser/init.js +319 -0
  210. package/dist-esm/browser/init.js.map +1 -0
  211. package/dist-esm/browser/instrumentations.d.ts +67 -0
  212. package/dist-esm/browser/instrumentations.d.ts.map +1 -0
  213. package/dist-esm/browser/instrumentations.js +79 -0
  214. package/dist-esm/browser/instrumentations.js.map +1 -0
  215. package/dist-esm/browser/logs.d.ts +55 -0
  216. package/dist-esm/browser/logs.d.ts.map +1 -0
  217. package/dist-esm/browser/logs.js +79 -0
  218. package/dist-esm/browser/logs.js.map +1 -0
  219. package/dist-esm/browser/metrics.d.ts +29 -0
  220. package/dist-esm/browser/metrics.d.ts.map +1 -0
  221. package/dist-esm/browser/metrics.js +46 -0
  222. package/dist-esm/browser/metrics.js.map +1 -0
  223. package/dist-esm/browser/resilient-exporter.d.ts +43 -0
  224. package/dist-esm/browser/resilient-exporter.d.ts.map +1 -0
  225. package/dist-esm/browser/resilient-exporter.js +84 -0
  226. package/dist-esm/browser/resilient-exporter.js.map +1 -0
  227. package/dist-esm/browser/sanitizer.d.ts +35 -0
  228. package/dist-esm/browser/sanitizer.d.ts.map +1 -0
  229. package/dist-esm/browser/sanitizer.js +207 -0
  230. package/dist-esm/browser/sanitizer.js.map +1 -0
  231. package/dist-esm/browser/traced-socket.d.ts +102 -0
  232. package/dist-esm/browser/traced-socket.d.ts.map +1 -0
  233. package/dist-esm/browser/traced-socket.js +199 -0
  234. package/dist-esm/browser/traced-socket.js.map +1 -0
  235. package/dist-esm/common/contracts/tier2-traces.d.ts +116 -0
  236. package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -0
  237. package/dist-esm/common/contracts/tier2-traces.js +725 -0
  238. package/dist-esm/common/contracts/tier2-traces.js.map +1 -0
  239. package/dist-esm/common/deployment-type.d.ts +18 -0
  240. package/dist-esm/common/deployment-type.d.ts.map +1 -0
  241. package/dist-esm/common/deployment-type.js +27 -0
  242. package/dist-esm/common/deployment-type.js.map +1 -0
  243. package/dist-esm/common/guardrails.d.ts +116 -0
  244. package/dist-esm/common/guardrails.d.ts.map +1 -0
  245. package/dist-esm/common/guardrails.js +179 -0
  246. package/dist-esm/common/guardrails.js.map +1 -0
  247. package/dist-esm/common/index.d.ts +18 -0
  248. package/dist-esm/common/index.d.ts.map +1 -0
  249. package/dist-esm/common/index.js +18 -0
  250. package/dist-esm/common/index.js.map +1 -0
  251. package/dist-esm/common/log-sanitizer.d.ts +170 -0
  252. package/dist-esm/common/log-sanitizer.d.ts.map +1 -0
  253. package/dist-esm/common/log-sanitizer.js +672 -0
  254. package/dist-esm/common/log-sanitizer.js.map +1 -0
  255. package/dist-esm/common/normalize-metric-path.d.ts +2 -0
  256. package/dist-esm/common/normalize-metric-path.d.ts.map +1 -0
  257. package/dist-esm/common/normalize-metric-path.js +19 -0
  258. package/dist-esm/common/normalize-metric-path.js.map +1 -0
  259. package/dist-esm/common/policy-evaluator.d.ts +103 -0
  260. package/dist-esm/common/policy-evaluator.d.ts.map +1 -0
  261. package/dist-esm/common/policy-evaluator.js +196 -0
  262. package/dist-esm/common/policy-evaluator.js.map +1 -0
  263. package/dist-esm/common/resource.d.ts +79 -0
  264. package/dist-esm/common/resource.d.ts.map +1 -0
  265. package/dist-esm/common/resource.js +121 -0
  266. package/dist-esm/common/resource.js.map +1 -0
  267. package/dist-esm/common/tier-hints.d.ts +182 -0
  268. package/dist-esm/common/tier-hints.d.ts.map +1 -0
  269. package/dist-esm/common/tier-hints.js +199 -0
  270. package/dist-esm/common/tier-hints.js.map +1 -0
  271. package/dist-esm/common/trace-sanitizer.d.ts +82 -0
  272. package/dist-esm/common/trace-sanitizer.d.ts.map +1 -0
  273. package/dist-esm/common/trace-sanitizer.js +230 -0
  274. package/dist-esm/common/trace-sanitizer.js.map +1 -0
  275. package/dist-esm/common/traced-socket-types.d.ts +43 -0
  276. package/dist-esm/common/traced-socket-types.d.ts.map +1 -0
  277. package/dist-esm/common/traced-socket-types.js +16 -0
  278. package/dist-esm/common/traced-socket-types.js.map +1 -0
  279. package/dist-esm/index.d.ts +45 -0
  280. package/dist-esm/index.d.ts.map +1 -0
  281. package/dist-esm/index.js +56 -0
  282. package/dist-esm/index.js.map +1 -0
  283. package/dist-esm/lint/forbidden-attributes.d.ts +149 -0
  284. package/dist-esm/lint/forbidden-attributes.d.ts.map +1 -0
  285. package/dist-esm/lint/forbidden-attributes.js +210 -0
  286. package/dist-esm/lint/forbidden-attributes.js.map +1 -0
  287. package/dist-esm/lint/index.d.ts +9 -0
  288. package/dist-esm/lint/index.d.ts.map +1 -0
  289. package/dist-esm/lint/index.js +9 -0
  290. package/dist-esm/lint/index.js.map +1 -0
  291. package/dist-esm/llmobs/index.d.ts +22 -0
  292. package/dist-esm/llmobs/index.d.ts.map +1 -0
  293. package/dist-esm/llmobs/index.js +22 -0
  294. package/dist-esm/llmobs/index.js.map +1 -0
  295. package/dist-esm/llmobs/tier1-exporter.d.ts +146 -0
  296. package/dist-esm/llmobs/tier1-exporter.d.ts.map +1 -0
  297. package/dist-esm/llmobs/tier1-exporter.js +193 -0
  298. package/dist-esm/llmobs/tier1-exporter.js.map +1 -0
  299. package/dist-esm/llmobs/tier2-summarizer.d.ts +268 -0
  300. package/dist-esm/llmobs/tier2-summarizer.d.ts.map +1 -0
  301. package/dist-esm/llmobs/tier2-summarizer.js +652 -0
  302. package/dist-esm/llmobs/tier2-summarizer.js.map +1 -0
  303. package/dist-esm/node/dynamic-attribute-processor.d.ts +43 -0
  304. package/dist-esm/node/dynamic-attribute-processor.d.ts.map +1 -0
  305. package/dist-esm/node/dynamic-attribute-processor.js +74 -0
  306. package/dist-esm/node/dynamic-attribute-processor.js.map +1 -0
  307. package/dist-esm/node/exporters/resilient-exporter.d.ts +91 -0
  308. package/dist-esm/node/exporters/resilient-exporter.d.ts.map +1 -0
  309. package/dist-esm/node/exporters/resilient-exporter.js +132 -0
  310. package/dist-esm/node/exporters/resilient-exporter.js.map +1 -0
  311. package/dist-esm/node/index.d.ts +13 -0
  312. package/dist-esm/node/index.d.ts.map +1 -0
  313. package/dist-esm/node/index.js +13 -0
  314. package/dist-esm/node/index.js.map +1 -0
  315. package/dist-esm/node/init.d.ts +97 -0
  316. package/dist-esm/node/init.d.ts.map +1 -0
  317. package/dist-esm/node/init.js +359 -0
  318. package/dist-esm/node/init.js.map +1 -0
  319. package/dist-esm/node/local-obs-mode.d.ts +17 -0
  320. package/dist-esm/node/local-obs-mode.d.ts.map +1 -0
  321. package/dist-esm/node/local-obs-mode.js +19 -0
  322. package/dist-esm/node/local-obs-mode.js.map +1 -0
  323. package/dist-esm/node/log-processor.d.ts +132 -0
  324. package/dist-esm/node/log-processor.d.ts.map +1 -0
  325. package/dist-esm/node/log-processor.js +389 -0
  326. package/dist-esm/node/log-processor.js.map +1 -0
  327. package/dist-esm/node/metrics-client.d.ts +88 -0
  328. package/dist-esm/node/metrics-client.d.ts.map +1 -0
  329. package/dist-esm/node/metrics-client.js +205 -0
  330. package/dist-esm/node/metrics-client.js.map +1 -0
  331. package/dist-esm/node/safe-logger.d.ts +55 -0
  332. package/dist-esm/node/safe-logger.d.ts.map +1 -0
  333. package/dist-esm/node/safe-logger.js +154 -0
  334. package/dist-esm/node/safe-logger.js.map +1 -0
  335. package/dist-esm/node/sanitizing-processor.d.ts +67 -0
  336. package/dist-esm/node/sanitizing-processor.d.ts.map +1 -0
  337. package/dist-esm/node/sanitizing-processor.js +163 -0
  338. package/dist-esm/node/sanitizing-processor.js.map +1 -0
  339. package/dist-esm/node/service-tracers.d.ts +52 -0
  340. package/dist-esm/node/service-tracers.d.ts.map +1 -0
  341. package/dist-esm/node/service-tracers.js +78 -0
  342. package/dist-esm/node/service-tracers.js.map +1 -0
  343. package/dist-esm/node/traced-socket.d.ts +120 -0
  344. package/dist-esm/node/traced-socket.d.ts.map +1 -0
  345. package/dist-esm/node/traced-socket.js +334 -0
  346. package/dist-esm/node/traced-socket.js.map +1 -0
  347. package/dist-esm/npm-registry/emitter.d.ts +310 -0
  348. package/dist-esm/npm-registry/emitter.d.ts.map +1 -0
  349. package/dist-esm/npm-registry/emitter.js +525 -0
  350. package/dist-esm/npm-registry/emitter.js.map +1 -0
  351. package/dist-esm/npm-registry/index.d.ts +12 -0
  352. package/dist-esm/npm-registry/index.d.ts.map +1 -0
  353. package/dist-esm/npm-registry/index.js +12 -0
  354. package/dist-esm/npm-registry/index.js.map +1 -0
  355. package/dist-esm/npm-registry/sanitize.d.ts +174 -0
  356. package/dist-esm/npm-registry/sanitize.d.ts.map +1 -0
  357. package/dist-esm/npm-registry/sanitize.js +331 -0
  358. package/dist-esm/npm-registry/sanitize.js.map +1 -0
  359. package/dist-esm/npm-registry/spans.d.ts +61 -0
  360. package/dist-esm/npm-registry/spans.d.ts.map +1 -0
  361. package/dist-esm/npm-registry/spans.js +86 -0
  362. package/dist-esm/npm-registry/spans.js.map +1 -0
  363. package/dist-esm/package.json +1 -0
  364. package/dist-esm/testing/in-memory-exporter.d.ts +179 -0
  365. package/dist-esm/testing/in-memory-exporter.d.ts.map +1 -0
  366. package/dist-esm/testing/in-memory-exporter.js +250 -0
  367. package/dist-esm/testing/in-memory-exporter.js.map +1 -0
  368. package/dist-esm/testing/index.d.ts +9 -0
  369. package/dist-esm/testing/index.d.ts.map +1 -0
  370. package/dist-esm/testing/index.js +9 -0
  371. package/dist-esm/testing/index.js.map +1 -0
  372. package/dist-esm/testing/metrics-capture.d.ts +29 -0
  373. package/dist-esm/testing/metrics-capture.d.ts.map +1 -0
  374. package/dist-esm/testing/metrics-capture.js +71 -0
  375. package/dist-esm/testing/metrics-capture.js.map +1 -0
  376. package/dist-esm/testing/test-init.d.ts +80 -0
  377. package/dist-esm/testing/test-init.d.ts.map +1 -0
  378. package/dist-esm/testing/test-init.js +137 -0
  379. package/dist-esm/testing/test-init.js.map +1 -0
  380. package/dist-esm/types/index.d.ts +84 -0
  381. package/dist-esm/types/index.d.ts.map +1 -0
  382. package/dist-esm/types/index.js +7 -0
  383. package/dist-esm/types/index.js.map +1 -0
  384. package/dist-esm/types/policy.d.ts +92 -0
  385. package/dist-esm/types/policy.d.ts.map +1 -0
  386. package/dist-esm/types/policy.js +122 -0
  387. package/dist-esm/types/policy.js.map +1 -0
  388. package/package.json +102 -0
@@ -0,0 +1,43 @@
1
+ import type { Context } from "@opentelemetry/api";
2
+ import type { LogRecordProcessor, SdkLogRecord } from "@opentelemetry/sdk-logs";
3
+ import type { ReadableSpan, Span, SpanProcessor } from "@opentelemetry/sdk-trace-base";
4
+ /**
5
+ * Wraps a span processor and stamps caller-provided attributes onto every span
6
+ * at start.
7
+ *
8
+ * This exists for attributes that are only known AFTER the SDK is initialized —
9
+ * e.g. the application/user/org identity a dev-server learns at connect time,
10
+ * when the SDK must already be running to instrument startup. Rather than
11
+ * re-initializing the SDK (which would churn instrumentation), the caller passes
12
+ * a getter that returns the current identity, and each span picks it up on start.
13
+ *
14
+ * Override semantics: `onStart` runs after creation-time attributes are applied,
15
+ * so a dynamic attribute overwrites any same-key attribute passed to `startSpan`.
16
+ * Attributes set on the span after creation still overwrite the dynamic value.
17
+ */
18
+ export declare class DynamicAttributeSpanProcessor implements SpanProcessor {
19
+ private readonly inner;
20
+ private readonly attributes;
21
+ constructor(inner: SpanProcessor, attributes: () => Record<string, string>);
22
+ onStart(span: Span, parentContext: Context): void;
23
+ onEnd(span: ReadableSpan): void;
24
+ forceFlush(): Promise<void>;
25
+ shutdown(): Promise<void>;
26
+ }
27
+ /**
28
+ * Log-record twin of {@link DynamicAttributeSpanProcessor}: stamps the same
29
+ * late-known identity onto every exported log record. Without it, a service
30
+ * whose SDK started before identity was known (the dev-server preload) would
31
+ * export logs missing the application/user/org attributes that spans carry.
32
+ * Same override semantics as the span twin: dynamic attributes win over
33
+ * same-key attributes already on the record at emit time.
34
+ */
35
+ export declare class DynamicAttributeLogRecordProcessor implements LogRecordProcessor {
36
+ private readonly inner;
37
+ private readonly attributes;
38
+ constructor(inner: LogRecordProcessor, attributes: () => Record<string, string>);
39
+ onEmit(logRecord: SdkLogRecord, context?: Context): void;
40
+ forceFlush(): Promise<void>;
41
+ shutdown(): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=dynamic-attribute-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-attribute-processor.d.ts","sourceRoot":"","sources":["../../src/node/dynamic-attribute-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EACV,YAAY,EACZ,IAAI,EACJ,aAAa,EACd,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,qBAAa,6BAA8B,YAAW,aAAa;IAE/D,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAG3D,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI;IAUjD,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAI/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1B;AAED;;;;;;;GAOG;AACH,qBAAa,kCAAmC,YAAW,kBAAkB;IAEzE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAG3D,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAUxD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1B"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamicAttributeLogRecordProcessor = exports.DynamicAttributeSpanProcessor = void 0;
4
+ /**
5
+ * Wraps a span processor and stamps caller-provided attributes onto every span
6
+ * at start.
7
+ *
8
+ * This exists for attributes that are only known AFTER the SDK is initialized —
9
+ * e.g. the application/user/org identity a dev-server learns at connect time,
10
+ * when the SDK must already be running to instrument startup. Rather than
11
+ * re-initializing the SDK (which would churn instrumentation), the caller passes
12
+ * a getter that returns the current identity, and each span picks it up on start.
13
+ *
14
+ * Override semantics: `onStart` runs after creation-time attributes are applied,
15
+ * so a dynamic attribute overwrites any same-key attribute passed to `startSpan`.
16
+ * Attributes set on the span after creation still overwrite the dynamic value.
17
+ */
18
+ class DynamicAttributeSpanProcessor {
19
+ inner;
20
+ attributes;
21
+ constructor(inner, attributes) {
22
+ this.inner = inner;
23
+ this.attributes = attributes;
24
+ }
25
+ onStart(span, parentContext) {
26
+ // Telemetry must never break span creation; a bad getter is swallowed.
27
+ try {
28
+ span.setAttributes(this.attributes());
29
+ }
30
+ catch {
31
+ // ignore
32
+ }
33
+ this.inner.onStart(span, parentContext);
34
+ }
35
+ onEnd(span) {
36
+ this.inner.onEnd(span);
37
+ }
38
+ forceFlush() {
39
+ return this.inner.forceFlush();
40
+ }
41
+ shutdown() {
42
+ return this.inner.shutdown();
43
+ }
44
+ }
45
+ exports.DynamicAttributeSpanProcessor = DynamicAttributeSpanProcessor;
46
+ /**
47
+ * Log-record twin of {@link DynamicAttributeSpanProcessor}: stamps the same
48
+ * late-known identity onto every exported log record. Without it, a service
49
+ * whose SDK started before identity was known (the dev-server preload) would
50
+ * export logs missing the application/user/org attributes that spans carry.
51
+ * Same override semantics as the span twin: dynamic attributes win over
52
+ * same-key attributes already on the record at emit time.
53
+ */
54
+ class DynamicAttributeLogRecordProcessor {
55
+ inner;
56
+ attributes;
57
+ constructor(inner, attributes) {
58
+ this.inner = inner;
59
+ this.attributes = attributes;
60
+ }
61
+ onEmit(logRecord, context) {
62
+ // Telemetry must never break log emission; a bad getter is swallowed.
63
+ try {
64
+ logRecord.setAttributes(this.attributes());
65
+ }
66
+ catch {
67
+ // ignore
68
+ }
69
+ this.inner.onEmit(logRecord, context);
70
+ }
71
+ forceFlush() {
72
+ return this.inner.forceFlush();
73
+ }
74
+ shutdown() {
75
+ return this.inner.shutdown();
76
+ }
77
+ }
78
+ exports.DynamicAttributeLogRecordProcessor = DynamicAttributeLogRecordProcessor;
79
+ //# sourceMappingURL=dynamic-attribute-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-attribute-processor.js","sourceRoot":"","sources":["../../src/node/dynamic-attribute-processor.ts"],"names":[],"mappings":";;;AAQA;;;;;;;;;;;;;GAaG;AACH,MAAa,6BAA6B;IAErB;IACA;IAFnB,YACmB,KAAoB,EACpB,UAAwC;QADxC,UAAK,GAAL,KAAK,CAAe;QACpB,eAAU,GAAV,UAAU,CAA8B;IACxD,CAAC;IAEJ,OAAO,CAAC,IAAU,EAAE,aAAsB;QACxC,uEAAuE;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAkB;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACF;AA3BD,sEA2BC;AAED;;;;;;;GAOG;AACH,MAAa,kCAAkC;IAE1B;IACA;IAFnB,YACmB,KAAyB,EACzB,UAAwC;QADxC,UAAK,GAAL,KAAK,CAAoB;QACzB,eAAU,GAAV,UAAU,CAA8B;IACxD,CAAC;IAEJ,MAAM,CAAC,SAAuB,EAAE,OAAiB;QAC/C,sEAAsE;QACtE,IAAI,CAAC;YACH,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACF;AAvBD,gFAuBC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Resilient Exporter
3
+ *
4
+ * Wrapper that ensures Tier 2/3 export failures never block core request paths.
5
+ * Export failures are observable via metrics, not via blocking or exceptions.
6
+ */
7
+ import { ExportResult } from "@opentelemetry/core";
8
+ import type { SpanExporter, ReadableSpan } from "@opentelemetry/sdk-trace-base";
9
+ /**
10
+ * Minimal logger interface for structured export-failure logs (e.g. Pino/SafeLogger).
11
+ * When provided, export failures are logged so they can be ingested into Datadog.
12
+ */
13
+ export interface TelemetryExportLogger {
14
+ warn(obj: object, msg?: string): void;
15
+ warn(msg: string): void;
16
+ }
17
+ /**
18
+ * Configuration for the resilient exporter.
19
+ */
20
+ export interface ResilientExporterConfig {
21
+ /** Underlying exporter to wrap */
22
+ delegate: SpanExporter;
23
+ /** Max items to buffer before dropping (default: 2048) */
24
+ maxQueueSize?: number;
25
+ /** Export timeout in ms (default: 30000) */
26
+ exportTimeoutMs?: number;
27
+ /** Callback when items are dropped due to backpressure */
28
+ onDrop?: (count: number, reason: "queue_full" | "export_failed" | "timeout") => void;
29
+ /**
30
+ * Optional structured logger for export failures (e.g. safe logger).
31
+ * When set, export errors are logged here so they are ingested into Datadog.
32
+ */
33
+ logger?: TelemetryExportLogger;
34
+ }
35
+ /**
36
+ * Metrics exposed by the resilient exporter.
37
+ */
38
+ export interface ResilientExporterMetrics {
39
+ /** Total spans dropped due to backpressure or failure */
40
+ dropped: number;
41
+ /** Current queue size */
42
+ queued: number;
43
+ /** Total export failures */
44
+ failures: number;
45
+ }
46
+ /**
47
+ * Resilient exporter wrapper that:
48
+ * - Drops spans when queue is full (never blocks)
49
+ * - Catches export failures and emits metrics
50
+ * - Times out stalled exports
51
+ *
52
+ * CRITICAL: Telemetry export must be fire-and-forget from the application's perspective.
53
+ * Export failures should be observable via metrics, not via blocking or exceptions.
54
+ */
55
+ export declare class ResilientExporter implements SpanExporter {
56
+ private readonly delegate;
57
+ private readonly maxQueueSize;
58
+ private readonly exportTimeoutMs;
59
+ private readonly onDrop;
60
+ private readonly logger;
61
+ private queuedCount;
62
+ private droppedCount;
63
+ private exportFailures;
64
+ private shuttingDown;
65
+ constructor(config: ResilientExporterConfig);
66
+ /**
67
+ * Export spans with resilient error handling.
68
+ *
69
+ * IMPORTANT: Always returns SUCCESS to caller - export failures are
70
+ * observable via metrics, not via the result callback.
71
+ */
72
+ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
73
+ /**
74
+ * Shutdown the underlying exporter.
75
+ * Marks exporter as shutting down to reject new exports.
76
+ */
77
+ shutdown(): Promise<void>;
78
+ /**
79
+ * Force flush the underlying exporter.
80
+ */
81
+ forceFlush(): Promise<void>;
82
+ /**
83
+ * Get current metrics for observability.
84
+ */
85
+ getMetrics(): ResilientExporterMetrics;
86
+ /**
87
+ * Reset metrics (for testing).
88
+ */
89
+ resetMetrics(): void;
90
+ }
91
+ //# sourceMappingURL=resilient-exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resilient-exporter.d.ts","sourceRoot":"","sources":["../../../src/node/exporters/resilient-exporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,QAAQ,EAAE,YAAY,CAAC;IACvB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,CACP,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,SAAS,KAC/C,IAAI,CAAC;IACV;;;OAGG;IACH,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGb;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,uBAAuB;IAQ3C;;;;;OAKG;IACH,MAAM,CACJ,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,IAAI;IAiEP;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACH,UAAU,IAAI,wBAAwB;IAQtC;;OAEG;IACH,YAAY,IAAI,IAAI;CAIrB"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * Resilient Exporter
4
+ *
5
+ * Wrapper that ensures Tier 2/3 export failures never block core request paths.
6
+ * Export failures are observable via metrics, not via blocking or exceptions.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ResilientExporter = void 0;
10
+ const core_1 = require("@opentelemetry/core");
11
+ /**
12
+ * Resilient exporter wrapper that:
13
+ * - Drops spans when queue is full (never blocks)
14
+ * - Catches export failures and emits metrics
15
+ * - Times out stalled exports
16
+ *
17
+ * CRITICAL: Telemetry export must be fire-and-forget from the application's perspective.
18
+ * Export failures should be observable via metrics, not via blocking or exceptions.
19
+ */
20
+ class ResilientExporter {
21
+ delegate;
22
+ maxQueueSize;
23
+ exportTimeoutMs;
24
+ onDrop;
25
+ logger;
26
+ queuedCount = 0;
27
+ droppedCount = 0;
28
+ exportFailures = 0;
29
+ shuttingDown = false;
30
+ constructor(config) {
31
+ this.delegate = config.delegate;
32
+ this.maxQueueSize = config.maxQueueSize ?? 2048;
33
+ this.exportTimeoutMs = config.exportTimeoutMs ?? 30000;
34
+ this.onDrop = config.onDrop ?? (() => { });
35
+ this.logger = config.logger;
36
+ }
37
+ /**
38
+ * Export spans with resilient error handling.
39
+ *
40
+ * IMPORTANT: Always returns SUCCESS to caller - export failures are
41
+ * observable via metrics, not via the result callback.
42
+ */
43
+ export(spans, resultCallback) {
44
+ // Don't accept new exports during shutdown
45
+ if (this.shuttingDown) {
46
+ resultCallback({ code: core_1.ExportResultCode.SUCCESS });
47
+ return;
48
+ }
49
+ // Check backpressure - drop if queue is full
50
+ if (this.queuedCount + spans.length > this.maxQueueSize) {
51
+ this.droppedCount += spans.length;
52
+ this.onDrop(spans.length, "queue_full");
53
+ // Still return success - don't block the caller
54
+ resultCallback({ code: core_1.ExportResultCode.SUCCESS });
55
+ return;
56
+ }
57
+ this.queuedCount += spans.length;
58
+ let completed = false;
59
+ // Wrap with timeout
60
+ const timeoutId = setTimeout(() => {
61
+ if (completed)
62
+ return;
63
+ completed = true;
64
+ this.queuedCount -= spans.length;
65
+ this.droppedCount += spans.length;
66
+ this.onDrop(spans.length, "timeout");
67
+ resultCallback({ code: core_1.ExportResultCode.SUCCESS }); // Don't propagate failure
68
+ }, this.exportTimeoutMs);
69
+ try {
70
+ this.delegate.export(spans, (result) => {
71
+ if (completed)
72
+ return;
73
+ completed = true;
74
+ clearTimeout(timeoutId);
75
+ this.queuedCount -= spans.length;
76
+ if (result.code !== core_1.ExportResultCode.SUCCESS) {
77
+ this.exportFailures++;
78
+ this.droppedCount += spans.length;
79
+ this.onDrop(spans.length, "export_failed");
80
+ }
81
+ // Always return success to caller - export failures are observable via metrics
82
+ resultCallback({ code: core_1.ExportResultCode.SUCCESS });
83
+ });
84
+ }
85
+ catch (error) {
86
+ if (completed)
87
+ return;
88
+ completed = true;
89
+ clearTimeout(timeoutId);
90
+ this.queuedCount -= spans.length;
91
+ this.exportFailures++;
92
+ this.droppedCount += spans.length;
93
+ this.onDrop(spans.length, "export_failed");
94
+ if (this.logger) {
95
+ this.logger.warn({ err: error, spanCount: spans.length, reason: "export_failed" }, "[Telemetry] Span export threw");
96
+ }
97
+ else {
98
+ console.warn("[Telemetry] Span export threw:", error);
99
+ }
100
+ resultCallback({ code: core_1.ExportResultCode.SUCCESS }); // Don't propagate failure
101
+ }
102
+ }
103
+ /**
104
+ * Shutdown the underlying exporter.
105
+ * Marks exporter as shutting down to reject new exports.
106
+ */
107
+ async shutdown() {
108
+ this.shuttingDown = true;
109
+ return this.delegate.shutdown();
110
+ }
111
+ /**
112
+ * Force flush the underlying exporter.
113
+ */
114
+ async forceFlush() {
115
+ return this.delegate.forceFlush?.() ?? Promise.resolve();
116
+ }
117
+ /**
118
+ * Get current metrics for observability.
119
+ */
120
+ getMetrics() {
121
+ return {
122
+ dropped: this.droppedCount,
123
+ queued: this.queuedCount,
124
+ failures: this.exportFailures,
125
+ };
126
+ }
127
+ /**
128
+ * Reset metrics (for testing).
129
+ */
130
+ resetMetrics() {
131
+ this.droppedCount = 0;
132
+ this.exportFailures = 0;
133
+ }
134
+ }
135
+ exports.ResilientExporter = ResilientExporter;
136
+ //# sourceMappingURL=resilient-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resilient-exporter.js","sourceRoot":"","sources":["../../../src/node/exporters/resilient-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Node.js Telemetry Bootstrap
3
+ *
4
+ * This is the ONLY approved way to initialize telemetry in Node.js services.
5
+ */
6
+ export { initNodeTelemetry, getTelemetryInstance, isTelemetryInitialized, resetTelemetry, type GetTracerOptions, type NodeTelemetryInstance, } from "./init.js";
7
+ export { isLocalObsMode } from "./local-obs-mode.js";
8
+ export { MetricsClient, type Labels, type CounterHandle, type CounterOptions, type GaugeHandle, type HistogramHandle, type HistogramOptions, } from "./metrics-client.js";
9
+ export { TracedSocket, type TracedSocketConfig, type TracedSocketOptions, } from "./traced-socket.js";
10
+ export { ResilientExporter, type ResilientExporterConfig, type ResilientExporterMetrics, } from "./exporters/resilient-exporter.js";
11
+ export { LogExportMode, PolicyAwareLogProcessor, getLoggingPolicy, getMinimumPinoLevelForDeployment, getMinimumPinoLevelFromLoggingPolicy, parseLogExportMode, type LoggingPolicyConfig, } from "./log-processor.js";
12
+ export { createSafeLogger, redactForbiddenFields, type SafeLoggerLike, } from "./safe-logger.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EACL,aAAa,EACb,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,gCAAgC,EAChC,oCAAoC,EACpC,kBAAkB,EAClB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Node.js Telemetry Bootstrap
4
+ *
5
+ * This is the ONLY approved way to initialize telemetry in Node.js services.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.redactForbiddenFields = exports.createSafeLogger = exports.parseLogExportMode = exports.getMinimumPinoLevelFromLoggingPolicy = exports.getMinimumPinoLevelForDeployment = exports.getLoggingPolicy = exports.PolicyAwareLogProcessor = exports.LogExportMode = exports.ResilientExporter = exports.TracedSocket = exports.MetricsClient = exports.isLocalObsMode = exports.resetTelemetry = exports.isTelemetryInitialized = exports.getTelemetryInstance = exports.initNodeTelemetry = void 0;
9
+ var init_js_1 = require("./init.js");
10
+ Object.defineProperty(exports, "initNodeTelemetry", { enumerable: true, get: function () { return init_js_1.initNodeTelemetry; } });
11
+ Object.defineProperty(exports, "getTelemetryInstance", { enumerable: true, get: function () { return init_js_1.getTelemetryInstance; } });
12
+ Object.defineProperty(exports, "isTelemetryInitialized", { enumerable: true, get: function () { return init_js_1.isTelemetryInitialized; } });
13
+ Object.defineProperty(exports, "resetTelemetry", { enumerable: true, get: function () { return init_js_1.resetTelemetry; } });
14
+ var local_obs_mode_js_1 = require("./local-obs-mode.js");
15
+ Object.defineProperty(exports, "isLocalObsMode", { enumerable: true, get: function () { return local_obs_mode_js_1.isLocalObsMode; } });
16
+ var metrics_client_js_1 = require("./metrics-client.js");
17
+ Object.defineProperty(exports, "MetricsClient", { enumerable: true, get: function () { return metrics_client_js_1.MetricsClient; } });
18
+ var traced_socket_js_1 = require("./traced-socket.js");
19
+ Object.defineProperty(exports, "TracedSocket", { enumerable: true, get: function () { return traced_socket_js_1.TracedSocket; } });
20
+ var resilient_exporter_js_1 = require("./exporters/resilient-exporter.js");
21
+ Object.defineProperty(exports, "ResilientExporter", { enumerable: true, get: function () { return resilient_exporter_js_1.ResilientExporter; } });
22
+ var log_processor_js_1 = require("./log-processor.js");
23
+ Object.defineProperty(exports, "LogExportMode", { enumerable: true, get: function () { return log_processor_js_1.LogExportMode; } });
24
+ Object.defineProperty(exports, "PolicyAwareLogProcessor", { enumerable: true, get: function () { return log_processor_js_1.PolicyAwareLogProcessor; } });
25
+ Object.defineProperty(exports, "getLoggingPolicy", { enumerable: true, get: function () { return log_processor_js_1.getLoggingPolicy; } });
26
+ Object.defineProperty(exports, "getMinimumPinoLevelForDeployment", { enumerable: true, get: function () { return log_processor_js_1.getMinimumPinoLevelForDeployment; } });
27
+ Object.defineProperty(exports, "getMinimumPinoLevelFromLoggingPolicy", { enumerable: true, get: function () { return log_processor_js_1.getMinimumPinoLevelFromLoggingPolicy; } });
28
+ Object.defineProperty(exports, "parseLogExportMode", { enumerable: true, get: function () { return log_processor_js_1.parseLogExportMode; } });
29
+ var safe_logger_js_1 = require("./safe-logger.js");
30
+ Object.defineProperty(exports, "createSafeLogger", { enumerable: true, get: function () { return safe_logger_js_1.createSafeLogger; } });
31
+ Object.defineProperty(exports, "redactForbiddenFields", { enumerable: true, get: function () { return safe_logger_js_1.redactForbiddenFields; } });
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qCAOmB;AANjB,4GAAA,iBAAiB,OAAA;AACjB,+GAAA,oBAAoB,OAAA;AACpB,iHAAA,sBAAsB,OAAA;AACtB,yGAAA,cAAc,OAAA;AAKhB,yDAAqD;AAA5C,mHAAA,cAAc,OAAA;AAEvB,yDAQ6B;AAP3B,kHAAA,aAAa,OAAA;AASf,uDAI4B;AAH1B,gHAAA,YAAY,OAAA;AAKd,2EAI2C;AAHzC,0HAAA,iBAAiB,OAAA;AAKnB,uDAQ4B;AAP1B,iHAAA,aAAa,OAAA;AACb,2HAAA,uBAAuB,OAAA;AACvB,oHAAA,gBAAgB,OAAA;AAChB,oIAAA,gCAAgC,OAAA;AAChC,wIAAA,oCAAoC,OAAA;AACpC,sHAAA,kBAAkB,OAAA;AAIpB,mDAI0B;AAHxB,kHAAA,gBAAgB,OAAA;AAChB,uHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Node.js Telemetry Bootstrap
3
+ *
4
+ * This is the ONLY approved way to initialize telemetry in Node.js services.
5
+ * Direct NodeSDK usage outside this package is prohibited.
6
+ */
7
+ import { Tracer, Meter } from "@opentelemetry/api";
8
+ import { Logger } from "@opentelemetry/api-logs";
9
+ import { NodeSDK } from "@opentelemetry/sdk-node";
10
+ import { TelemetryPolicyEvaluator } from "../common/policy-evaluator.js";
11
+ import type { NodeTelemetryConfig } from "../types/index.js";
12
+ import { TelemetryPolicy } from "../types/policy.js";
13
+ import { MetricsClient } from "./metrics-client.js";
14
+ /**
15
+ * Options for {@link NodeTelemetryInstance.getTracer}.
16
+ */
17
+ export interface GetTracerOptions {
18
+ /**
19
+ * Emit the tracer's spans under this service identity (its resource
20
+ * `service.name`, which Datadog maps to LLM-Obs `ml_app`). Omit for the
21
+ * primary service.
22
+ */
23
+ serviceName?: string;
24
+ }
25
+ /**
26
+ * Telemetry instance returned by initNodeTelemetry.
27
+ */
28
+ export interface NodeTelemetryInstance {
29
+ /** The underlying NodeSDK instance (undefined in CI/no-op mode) */
30
+ sdk?: NodeSDK;
31
+ /** Policy evaluator for runtime decisions */
32
+ policyEvaluator: TelemetryPolicyEvaluator;
33
+ /**
34
+ * Get a tracer for the service.
35
+ *
36
+ * Pass `options.serviceName` to emit the tracer's spans under a secondary
37
+ * service identity (its resource `service.name`, which Datadog maps to LLM-Obs
38
+ * `ml_app`) while sharing this SDK's sanitization + export pipeline. Omit it
39
+ * for the primary service. The `options` argument is additive and optional —
40
+ * existing single-argument callers are unaffected. See APPS-5082.
41
+ */
42
+ getTracer: (name?: string, options?: GetTracerOptions) => Tracer;
43
+ /** Get a meter for the service */
44
+ getMeter: (name?: string) => Meter;
45
+ /** Get a logger for the service */
46
+ getLogger: (name?: string) => Logger;
47
+ /** Metrics client for recording counters, gauges, and histograms */
48
+ metricsClient: MetricsClient;
49
+ /** Graceful shutdown */
50
+ shutdown: () => Promise<void>;
51
+ }
52
+ declare global {
53
+ var __superblocksNodeTelemetryInstance: NodeTelemetryInstance | undefined;
54
+ }
55
+ /**
56
+ * Initialize Node.js telemetry with policy enforcement.
57
+ *
58
+ * This is the ONLY approved way to initialize telemetry in Node.js services.
59
+ * Direct NodeSDK usage outside this package is prohibited.
60
+ *
61
+ * @param config - Service configuration
62
+ * @param policy - Telemetry policy (REQUIRED)
63
+ * @returns Telemetry instance with SDK and utilities
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * import { initNodeTelemetry } from '@superblocksteam/telemetry/node';
68
+ * import { getDefaultPolicy, DeploymentType } from '@superblocksteam/shared';
69
+ *
70
+ * const policy = getDefaultPolicy(DeploymentType.CLOUD_PREM);
71
+ * const telemetry = initNodeTelemetry({
72
+ * serviceName: 'my-service',
73
+ * serviceVersion: '1.0.0',
74
+ * environment: 'production',
75
+ * otlpUrl: 'http://localhost:4318',
76
+ * }, policy);
77
+ *
78
+ * const tracer = telemetry.getTracer();
79
+ * ```
80
+ */
81
+ export declare function initNodeTelemetry(config: NodeTelemetryConfig, policy: TelemetryPolicy): NodeTelemetryInstance;
82
+ /**
83
+ * Get the current telemetry instance.
84
+ *
85
+ * @throws Error if not initialized
86
+ */
87
+ export declare function getTelemetryInstance(): NodeTelemetryInstance;
88
+ /**
89
+ * Check if telemetry is initialized.
90
+ */
91
+ export declare function isTelemetryInitialized(): boolean;
92
+ /**
93
+ * Reset telemetry (for testing only).
94
+ * @internal
95
+ */
96
+ export declare function resetTelemetry(): void;
97
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAS,MAAM,EAAW,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAcvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAYpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C;;;;;;;;OAQG;IACH,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACjE,kCAAkC;IAClC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC,mCAAmC;IACnC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,oEAAoE;IACpE,aAAa,EAAE,aAAa,CAAC;IAC7B,wBAAwB;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AASD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,kCAAkC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC3E;AA0GD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,eAAe,GACtB,qBAAqB,CAqPvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAQ5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}