@geekmidas/telescope 10.0.0-alpha.98 → 10.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 (480) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +18 -28
  3. package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts +47 -0
  4. package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts.map +1 -0
  5. package/dist/InMemoryMetricsStorage-C4drxT7G.mjs +247 -0
  6. package/dist/InMemoryMetricsStorage-C4drxT7G.mjs.map +1 -0
  7. package/dist/InMemoryMetricsStorage-D0njWUSi.cjs +252 -0
  8. package/dist/InMemoryMetricsStorage-D0njWUSi.cjs.map +1 -0
  9. package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts +47 -0
  10. package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts.map +1 -0
  11. package/dist/{MetricsAggregator-BJdIvfEv.d.mts → MetricsAggregator-4SqelGcG.d.cts} +6 -3
  12. package/dist/MetricsAggregator-4SqelGcG.d.cts.map +1 -0
  13. package/dist/MetricsAggregator-B7lUICdH.cjs +363 -0
  14. package/dist/MetricsAggregator-B7lUICdH.cjs.map +1 -0
  15. package/dist/{MetricsAggregator-CnC3oT5q.d.cts → MetricsAggregator-DZrW8ls6.d.mts} +6 -3
  16. package/dist/MetricsAggregator-DZrW8ls6.d.mts.map +1 -0
  17. package/dist/MetricsAggregator-S3DQWNas.mjs +357 -0
  18. package/dist/MetricsAggregator-S3DQWNas.mjs.map +1 -0
  19. package/dist/MetricsStorage-B86e4131.d.cts +60 -0
  20. package/dist/MetricsStorage-B86e4131.d.cts.map +1 -0
  21. package/dist/MetricsStorage-BWyP2_12.d.mts +60 -0
  22. package/dist/MetricsStorage-BWyP2_12.d.mts.map +1 -0
  23. package/dist/MetricsStorage-BypQXWiv.mjs +0 -0
  24. package/dist/MetricsStorage-Or8pVCe4.cjs +0 -0
  25. package/dist/Telescope-Cs3fv8jt.cjs +395 -0
  26. package/dist/Telescope-Cs3fv8jt.cjs.map +1 -0
  27. package/dist/{Telescope-BVfDvVvY.d.mts → Telescope-D4nmwDRA.d.cts} +7 -4
  28. package/dist/Telescope-D4nmwDRA.d.cts.map +1 -0
  29. package/dist/Telescope-Dh5av3FC.mjs +389 -0
  30. package/dist/Telescope-Dh5av3FC.mjs.map +1 -0
  31. package/dist/{Telescope-DeqSHfuB.d.cts → Telescope-Dl6VSfxd.d.mts} +7 -4
  32. package/dist/Telescope-Dl6VSfxd.d.mts.map +1 -0
  33. package/dist/Telescope.cjs +4 -385
  34. package/dist/Telescope.d.cts +3 -1
  35. package/dist/Telescope.d.mts +3 -1
  36. package/dist/Telescope.mjs +4 -384
  37. package/dist/adapters/index.d.cts +2 -2
  38. package/dist/adapters/index.d.mts +2 -2
  39. package/dist/adapters/index.mjs +0 -1
  40. package/dist/adapters/lambda.cjs +10 -9
  41. package/dist/adapters/lambda.cjs.map +1 -1
  42. package/dist/adapters/lambda.d.cts +13 -9
  43. package/dist/adapters/lambda.d.cts.map +1 -1
  44. package/dist/adapters/lambda.d.mts +13 -9
  45. package/dist/adapters/lambda.d.mts.map +1 -1
  46. package/dist/adapters/lambda.mjs +4 -3
  47. package/dist/adapters/lambda.mjs.map +1 -1
  48. package/dist/adapters/middy.cjs +4 -236
  49. package/dist/adapters/middy.d.cts +5 -60
  50. package/dist/adapters/middy.d.mts +5 -60
  51. package/dist/adapters/middy.mjs +3 -234
  52. package/dist/adapters/types.d.cts +2 -162
  53. package/dist/adapters/types.d.mts +2 -162
  54. package/dist/adapters/types.mjs +0 -1
  55. package/dist/{rolldown-runtime-VH7oDXx4.cjs → chunk-CUT6urMc.cjs} +10 -8
  56. package/dist/core--quSp5Qr.d.mts +78 -0
  57. package/dist/core--quSp5Qr.d.mts.map +1 -0
  58. package/dist/core-B4Jpia5H.d.cts +78 -0
  59. package/dist/core-B4Jpia5H.d.cts.map +1 -0
  60. package/dist/core-CtVHRJGv.cjs +199 -0
  61. package/dist/core-CtVHRJGv.cjs.map +1 -0
  62. package/dist/core-D6hJ6exL.mjs +139 -0
  63. package/dist/core-D6hJ6exL.mjs.map +1 -0
  64. package/dist/core.cjs +22 -22
  65. package/dist/core.d.cts +4 -4
  66. package/dist/core.d.mts +4 -4
  67. package/dist/core.mjs +4 -3
  68. package/dist/hono--uKQ7Jgi.d.mts +71 -0
  69. package/dist/hono--uKQ7Jgi.d.mts.map +1 -0
  70. package/dist/hono-C4EgpbKQ.cjs +160 -0
  71. package/dist/hono-C4EgpbKQ.cjs.map +1 -0
  72. package/dist/hono-CemCKU87.d.cts +71 -0
  73. package/dist/hono-CemCKU87.d.cts.map +1 -0
  74. package/dist/hono-DxhvnVbF.mjs +136 -0
  75. package/dist/hono-DxhvnVbF.mjs.map +1 -0
  76. package/dist/http-BiNtg85L.d.mts +107 -0
  77. package/dist/http-BiNtg85L.d.mts.map +1 -0
  78. package/dist/http-DQzgLczm.mjs +159 -0
  79. package/dist/http-DQzgLczm.mjs.map +1 -0
  80. package/dist/http-D_Z8sYXZ.cjs +219 -0
  81. package/dist/http-D_Z8sYXZ.cjs.map +1 -0
  82. package/dist/http-Dvca6fC3.d.cts +107 -0
  83. package/dist/http-Dvca6fC3.d.cts.map +1 -0
  84. package/dist/index-BL32-cvv.d.cts +1 -0
  85. package/dist/index-CsuikFeJ.d.mts +1 -0
  86. package/dist/index.cjs +9 -8
  87. package/dist/index.d.cts +6 -5
  88. package/dist/index.d.mts +6 -5
  89. package/dist/index.mjs +7 -5
  90. package/dist/instrumentation/core.cjs +11 -147
  91. package/dist/instrumentation/core.d.cts +3 -74
  92. package/dist/instrumentation/core.d.mts +3 -74
  93. package/dist/instrumentation/core.mjs +2 -137
  94. package/dist/instrumentation/hono.cjs +6 -174
  95. package/dist/instrumentation/hono.d.cts +2 -86
  96. package/dist/instrumentation/hono.d.mts +2 -86
  97. package/dist/instrumentation/hono.mjs +3 -170
  98. package/dist/instrumentation/http.cjs +11 -189
  99. package/dist/instrumentation/http.d.cts +2 -119
  100. package/dist/instrumentation/http.d.mts +2 -119
  101. package/dist/instrumentation/http.mjs +2 -178
  102. package/dist/instrumentation/index.cjs +47 -56
  103. package/dist/instrumentation/index.d.cts +9 -11
  104. package/dist/instrumentation/index.d.mts +9 -11
  105. package/dist/instrumentation/index.mjs +9 -10
  106. package/dist/instrumentation/middleware.cjs +6 -164
  107. package/dist/instrumentation/middleware.d.cts +2 -83
  108. package/dist/instrumentation/middleware.d.mts +2 -83
  109. package/dist/instrumentation/middleware.mjs +3 -160
  110. package/dist/instrumentation/otel.cjs +3 -137
  111. package/dist/instrumentation/otel.d.cts +2 -97
  112. package/dist/instrumentation/otel.d.mts +2 -97
  113. package/dist/instrumentation/otel.mjs +3 -136
  114. package/dist/instrumentation/setup.cjs +4 -142
  115. package/dist/instrumentation/setup.d.cts +3 -139
  116. package/dist/instrumentation/setup.d.mts +3 -139
  117. package/dist/instrumentation/setup.mjs +3 -139
  118. package/dist/instrumentation/tracing.cjs +10 -114
  119. package/dist/instrumentation/tracing.d.cts +2 -49
  120. package/dist/instrumentation/tracing.d.mts +2 -49
  121. package/dist/instrumentation/tracing.mjs +2 -105
  122. package/dist/logger/console.cjs +12 -18
  123. package/dist/logger/console.cjs.map +1 -1
  124. package/dist/logger/console.d.cts +10 -7
  125. package/dist/logger/console.d.cts.map +1 -1
  126. package/dist/logger/console.d.mts +10 -7
  127. package/dist/logger/console.d.mts.map +1 -1
  128. package/dist/logger/console.mjs +11 -17
  129. package/dist/logger/console.mjs.map +1 -1
  130. package/dist/logger/pino.cjs +5 -6
  131. package/dist/logger/pino.cjs.map +1 -1
  132. package/dist/logger/pino.d.cts +10 -6
  133. package/dist/logger/pino.d.cts.map +1 -1
  134. package/dist/logger/pino.d.mts +10 -6
  135. package/dist/logger/pino.d.mts.map +1 -1
  136. package/dist/logger/pino.mjs +3 -2
  137. package/dist/logger/pino.mjs.map +1 -1
  138. package/dist/memory--BK4iWiv.d.cts +40 -0
  139. package/dist/memory--BK4iWiv.d.cts.map +1 -0
  140. package/dist/memory-6S9H-IF5.mjs +123 -0
  141. package/dist/memory-6S9H-IF5.mjs.map +1 -0
  142. package/dist/memory-B0d_n1g5.cjs +129 -0
  143. package/dist/memory-B0d_n1g5.cjs.map +1 -0
  144. package/dist/memory-DCirEVFW.d.mts +40 -0
  145. package/dist/memory-DCirEVFW.d.mts.map +1 -0
  146. package/dist/metrics/MetricsAggregator.cjs +2 -354
  147. package/dist/metrics/MetricsAggregator.d.cts +2 -1
  148. package/dist/metrics/MetricsAggregator.d.mts +2 -1
  149. package/dist/metrics/MetricsAggregator.mjs +2 -353
  150. package/dist/metrics/index.cjs +4 -3
  151. package/dist/metrics/index.d.cts +4 -2
  152. package/dist/metrics/index.d.mts +4 -2
  153. package/dist/metrics/index.mjs +4 -2
  154. package/dist/metrics/storage/InMemoryMetricsStorage.cjs +3 -240
  155. package/dist/metrics/storage/InMemoryMetricsStorage.d.cts +4 -43
  156. package/dist/metrics/storage/InMemoryMetricsStorage.d.mts +4 -43
  157. package/dist/metrics/storage/InMemoryMetricsStorage.mjs +3 -239
  158. package/dist/metrics/storage/MetricsStorage.cjs +1 -0
  159. package/dist/metrics/storage/MetricsStorage.d.cts +3 -56
  160. package/dist/metrics/storage/MetricsStorage.d.mts +3 -56
  161. package/dist/metrics/storage/MetricsStorage.mjs +1 -1
  162. package/dist/metrics/storage/index.cjs +6 -6
  163. package/dist/metrics/storage/index.d.cts +3 -3
  164. package/dist/metrics/storage/index.d.mts +3 -3
  165. package/dist/metrics/storage/index.mjs +5 -4
  166. package/dist/metrics/storage/types.cjs +2 -34
  167. package/dist/metrics/storage/types.d.cts +2 -207
  168. package/dist/metrics/storage/types.d.mts +2 -207
  169. package/dist/metrics/storage/types.mjs +2 -33
  170. package/dist/metrics-D5YT-Rnq.mjs +0 -0
  171. package/dist/metrics-fhD3l3C3.cjs +0 -0
  172. package/dist/middleware-B2jFUukM.cjs +184 -0
  173. package/dist/middleware-B2jFUukM.cjs.map +1 -0
  174. package/dist/middleware-BTDncHwm.mjs +160 -0
  175. package/dist/middleware-BTDncHwm.mjs.map +1 -0
  176. package/dist/middleware-CA84nsNN.d.cts +74 -0
  177. package/dist/middleware-CA84nsNN.d.cts.map +1 -0
  178. package/dist/middleware-DAceVpfw.d.mts +74 -0
  179. package/dist/middleware-DAceVpfw.d.mts.map +1 -0
  180. package/dist/middy-B6Btl8XE.d.mts +64 -0
  181. package/dist/middy-B6Btl8XE.d.mts.map +1 -0
  182. package/dist/middy-BTR3cyvk.mjs +236 -0
  183. package/dist/middy-BTR3cyvk.mjs.map +1 -0
  184. package/dist/middy-Bq0defVg.d.cts +64 -0
  185. package/dist/middy-Bq0defVg.d.cts.map +1 -0
  186. package/dist/middy-y5Zp27eG.cjs +247 -0
  187. package/dist/middy-y5Zp27eG.cjs.map +1 -0
  188. package/dist/otel-1bJPb2Z7.d.mts +101 -0
  189. package/dist/otel-1bJPb2Z7.d.mts.map +1 -0
  190. package/dist/otel-C1HqHA2O.cjs +136 -0
  191. package/dist/otel-C1HqHA2O.cjs.map +1 -0
  192. package/dist/otel-SBVoVEHr.d.cts +101 -0
  193. package/dist/otel-SBVoVEHr.d.cts.map +1 -0
  194. package/dist/otel-wulj5B-X.mjs +130 -0
  195. package/dist/otel-wulj5B-X.mjs.map +1 -0
  196. package/dist/otlp/hono.cjs +15 -9
  197. package/dist/otlp/hono.cjs.map +1 -1
  198. package/dist/otlp/hono.d.cts +13 -3
  199. package/dist/otlp/hono.d.cts.map +1 -1
  200. package/dist/otlp/hono.d.mts +13 -3
  201. package/dist/otlp/hono.d.mts.map +1 -1
  202. package/dist/otlp/hono.mjs +11 -5
  203. package/dist/otlp/hono.mjs.map +1 -1
  204. package/dist/otlp/index.cjs +11 -11
  205. package/dist/otlp/index.d.cts +7 -4
  206. package/dist/otlp/index.d.mts +7 -4
  207. package/dist/otlp/index.mjs +5 -4
  208. package/dist/otlp/receiver.cjs +4 -88
  209. package/dist/otlp/receiver.d.cts +7 -59
  210. package/dist/otlp/receiver.d.mts +7 -59
  211. package/dist/otlp/receiver.mjs +4 -87
  212. package/dist/otlp/transformer.cjs +5 -214
  213. package/dist/otlp/transformer.d.cts +3 -1
  214. package/dist/otlp/transformer.d.mts +3 -1
  215. package/dist/otlp/transformer.mjs +3 -211
  216. package/dist/otlp/types.cjs +5 -57
  217. package/dist/otlp/types.d.cts +1 -1
  218. package/dist/otlp/types.d.mts +1 -1
  219. package/dist/otlp/types.mjs +2 -53
  220. package/dist/receiver-Cj1lbAOO.cjs +94 -0
  221. package/dist/receiver-Cj1lbAOO.cjs.map +1 -0
  222. package/dist/receiver-CxVd_9CB.mjs +89 -0
  223. package/dist/receiver-CxVd_9CB.mjs.map +1 -0
  224. package/dist/receiver-DLICx5uU.d.cts +63 -0
  225. package/dist/receiver-DLICx5uU.d.cts.map +1 -0
  226. package/dist/receiver-UeZT-H8u.d.mts +63 -0
  227. package/dist/receiver-UeZT-H8u.d.mts.map +1 -0
  228. package/dist/redact-BzkITCNW.mjs +83 -0
  229. package/dist/redact-BzkITCNW.mjs.map +1 -0
  230. package/dist/redact-DVaSSPZT.cjs +95 -0
  231. package/dist/redact-DVaSSPZT.cjs.map +1 -0
  232. package/dist/redact.cjs +3 -84
  233. package/dist/redact.d.cts +8 -4
  234. package/dist/redact.d.cts.map +1 -1
  235. package/dist/redact.d.mts +8 -4
  236. package/dist/redact.d.mts.map +1 -1
  237. package/dist/redact.mjs +2 -80
  238. package/dist/server/hono.cjs +54 -33
  239. package/dist/server/hono.cjs.map +1 -1
  240. package/dist/server/hono.d.cts +14 -19
  241. package/dist/server/hono.d.cts.map +1 -1
  242. package/dist/server/hono.d.mts +14 -19
  243. package/dist/server/hono.d.mts.map +1 -1
  244. package/dist/server/hono.mjs +52 -31
  245. package/dist/server/hono.mjs.map +1 -1
  246. package/dist/setup-B9jM77Qk.mjs +98 -0
  247. package/dist/setup-B9jM77Qk.mjs.map +1 -0
  248. package/dist/setup-Bkxm4g6b.d.mts +87 -0
  249. package/dist/setup-Bkxm4g6b.d.mts.map +1 -0
  250. package/dist/setup-CYpff5B9.cjs +110 -0
  251. package/dist/setup-CYpff5B9.cjs.map +1 -0
  252. package/dist/setup-D58N1f9O.d.cts +87 -0
  253. package/dist/setup-D58N1f9O.d.cts.map +1 -0
  254. package/dist/storage/kysely.cjs +70 -82
  255. package/dist/storage/kysely.cjs.map +1 -1
  256. package/dist/storage/kysely.d.cts +20 -36
  257. package/dist/storage/kysely.d.cts.map +1 -1
  258. package/dist/storage/kysely.d.mts +20 -36
  259. package/dist/storage/kysely.d.mts.map +1 -1
  260. package/dist/storage/kysely.mjs +69 -81
  261. package/dist/storage/kysely.mjs.map +1 -1
  262. package/dist/storage/memory.cjs +2 -122
  263. package/dist/storage/memory.d.cts +3 -36
  264. package/dist/storage/memory.d.mts +3 -36
  265. package/dist/storage/memory.mjs +2 -121
  266. package/dist/tracing-BX8uY2nR.d.cts +53 -0
  267. package/dist/tracing-BX8uY2nR.d.cts.map +1 -0
  268. package/dist/tracing-Bt1zWRlb.cjs +167 -0
  269. package/dist/tracing-Bt1zWRlb.cjs.map +1 -0
  270. package/dist/tracing-Cijm_5NI.mjs +113 -0
  271. package/dist/tracing-Cijm_5NI.mjs.map +1 -0
  272. package/dist/tracing-PnECEbEu.d.mts +53 -0
  273. package/dist/tracing-PnECEbEu.d.mts.map +1 -0
  274. package/dist/transformer-BXQPhzql.mjs +215 -0
  275. package/dist/transformer-BXQPhzql.mjs.map +1 -0
  276. package/dist/transformer-CLGZ0EQc.cjs +232 -0
  277. package/dist/transformer-CLGZ0EQc.cjs.map +1 -0
  278. package/dist/{transformer-BtqjAs0b.d.cts → transformer-CTGsaVfV.d.mts} +8 -4
  279. package/dist/transformer-CTGsaVfV.d.mts.map +1 -0
  280. package/dist/{transformer-DI6t8-YA.d.mts → transformer-ICEbxpFf.d.cts} +8 -4
  281. package/dist/transformer-ICEbxpFf.d.cts.map +1 -0
  282. package/dist/{types-BVujq4zd.d.mts → types-B1EIa_cQ.d.mts} +4 -3
  283. package/dist/types-B1EIa_cQ.d.mts.map +1 -0
  284. package/dist/types-BRzW1NM8.d.cts +166 -0
  285. package/dist/types-BRzW1NM8.d.cts.map +1 -0
  286. package/dist/types-BS3Rx8Sk.d.cts +209 -0
  287. package/dist/types-BS3Rx8Sk.d.cts.map +1 -0
  288. package/dist/types-Bwm_jNU7.mjs +54 -0
  289. package/dist/types-Bwm_jNU7.mjs.map +1 -0
  290. package/dist/types-BzQ78Efw.d.mts +166 -0
  291. package/dist/types-BzQ78Efw.d.mts.map +1 -0
  292. package/dist/types-CbNGXnJE.d.mts +209 -0
  293. package/dist/types-CbNGXnJE.d.mts.map +1 -0
  294. package/dist/{types-DVETVdpa.d.cts → types-CmOB7CLO.d.cts} +7 -6
  295. package/dist/types-CmOB7CLO.d.cts.map +1 -0
  296. package/dist/{types-DVETVdpa.d.mts → types-DBc0q5KD.d.mts} +7 -6
  297. package/dist/types-DBc0q5KD.d.mts.map +1 -0
  298. package/dist/types-Dsh-DIO_.cjs +78 -0
  299. package/dist/types-Dsh-DIO_.cjs.map +1 -0
  300. package/dist/types-ZW-nfWf6.cjs +40 -0
  301. package/dist/types-ZW-nfWf6.cjs.map +1 -0
  302. package/dist/{types-BVujq4zd.d.cts → types-l7Rlb5Mg.d.cts} +4 -3
  303. package/dist/types-l7Rlb5Mg.d.cts.map +1 -0
  304. package/dist/types-ojhnLdwz.mjs +34 -0
  305. package/dist/types-ojhnLdwz.mjs.map +1 -0
  306. package/dist/types.d.cts +1 -1
  307. package/dist/types.d.mts +1 -1
  308. package/dist/types.mjs +0 -1
  309. package/dist/ui-assets-BEXqOQLe.cjs +48 -0
  310. package/dist/ui-assets-BEXqOQLe.cjs.map +1 -0
  311. package/dist/ui-assets-BhTDUsrM.mjs +30 -0
  312. package/dist/ui-assets-BhTDUsrM.mjs.map +1 -0
  313. package/dist/ui-assets.cjs +5 -0
  314. package/dist/ui-assets.d.cts +13 -0
  315. package/dist/ui-assets.d.cts.map +1 -0
  316. package/dist/ui-assets.d.mts +13 -0
  317. package/dist/ui-assets.d.mts.map +1 -0
  318. package/dist/ui-assets.mjs +3 -0
  319. package/package.json +46 -46
  320. package/src/Telescope.ts +561 -0
  321. package/src/__tests__/Telescope.spec.ts +438 -0
  322. package/src/__tests__/pino-transport.spec.ts +115 -0
  323. package/src/__tests__/redact.spec.ts +336 -0
  324. package/src/adapters/__tests__/lambda.spec.ts +318 -0
  325. package/src/adapters/__tests__/middy.spec.ts +741 -0
  326. package/src/adapters/index.ts +22 -0
  327. package/src/adapters/lambda.ts +432 -0
  328. package/src/adapters/middy.ts +402 -0
  329. package/src/adapters/types.ts +181 -0
  330. package/src/core.ts +51 -0
  331. package/src/index.ts +34 -0
  332. package/src/instrumentation/__tests__/core.spec.ts +248 -0
  333. package/src/instrumentation/__tests__/hono.spec.ts +348 -0
  334. package/src/instrumentation/__tests__/middleware.spec.ts +528 -0
  335. package/src/instrumentation/__tests__/otel.spec.ts +291 -0
  336. package/src/instrumentation/__tests__/tracing.spec.ts +208 -0
  337. package/src/instrumentation/core.ts +228 -0
  338. package/src/instrumentation/hono.ts +270 -0
  339. package/src/instrumentation/http.ts +306 -0
  340. package/src/instrumentation/index.ts +90 -0
  341. package/src/instrumentation/middleware.ts +297 -0
  342. package/src/instrumentation/otel.ts +271 -0
  343. package/src/instrumentation/setup.ts +246 -0
  344. package/src/instrumentation/tracing.ts +145 -0
  345. package/src/logger/__tests__/console.spec.ts +366 -0
  346. package/src/logger/__tests__/pino.spec.ts +217 -0
  347. package/src/logger/console.ts +230 -0
  348. package/src/logger/pino.ts +201 -0
  349. package/src/metrics/MetricsAggregator.ts +555 -0
  350. package/src/metrics/__tests__/MetricsAggregator.spec.ts +298 -0
  351. package/src/metrics/index.ts +2 -0
  352. package/src/metrics/storage/InMemoryMetricsStorage.ts +380 -0
  353. package/src/metrics/storage/MetricsStorage.ts +74 -0
  354. package/src/metrics/storage/index.ts +3 -0
  355. package/src/metrics/storage/types.ts +243 -0
  356. package/src/otlp/__tests__/receiver.spec.ts +367 -0
  357. package/src/otlp/__tests__/transformer.spec.ts +455 -0
  358. package/src/otlp/hono.ts +120 -0
  359. package/src/otlp/index.ts +22 -0
  360. package/src/otlp/receiver.ts +162 -0
  361. package/src/otlp/transformer.ts +367 -0
  362. package/src/otlp/types.ts +364 -0
  363. package/src/redact.ts +116 -0
  364. package/src/server/__tests__/hono.spec.ts +814 -0
  365. package/src/server/hono.ts +442 -0
  366. package/src/storage/__tests__/kysely.spec.ts +715 -0
  367. package/src/storage/__tests__/memory.spec.ts +694 -0
  368. package/src/storage/kysely.ts +599 -0
  369. package/src/storage/memory.ts +204 -0
  370. package/src/types.ts +447 -0
  371. package/src/ui-assets.ts +40 -0
  372. package/tsconfig.json +9 -0
  373. package/ui/CHANGELOG.md +7 -0
  374. package/ui/index.html +12 -0
  375. package/ui/node_modules/.bin/tsc +21 -0
  376. package/ui/node_modules/.bin/tsserver +21 -0
  377. package/ui/node_modules/.bin/vite +21 -0
  378. package/ui/package.json +24 -0
  379. package/ui/src/App.tsx +595 -0
  380. package/ui/src/api.ts +88 -0
  381. package/ui/src/components/ExceptionDetail.tsx +100 -0
  382. package/ui/src/components/FilterBar.tsx +162 -0
  383. package/ui/src/components/LogDetail.tsx +91 -0
  384. package/ui/src/components/RequestDetail.tsx +143 -0
  385. package/ui/src/main.tsx +10 -0
  386. package/ui/src/styles.css +11 -0
  387. package/ui/src/types.ts +63 -0
  388. package/ui/src/vite-env.d.ts +1 -0
  389. package/ui/src/vite-plugin-gkm-config.ts +54 -0
  390. package/ui/tsconfig.json +20 -0
  391. package/ui/tsconfig.tsbuildinfo +1 -0
  392. package/ui/vite.config.ts +13 -0
  393. package/dist/MetricsAggregator-BJdIvfEv.d.mts.map +0 -1
  394. package/dist/MetricsAggregator-CnC3oT5q.d.cts.map +0 -1
  395. package/dist/Telescope-BVfDvVvY.d.mts.map +0 -1
  396. package/dist/Telescope-DeqSHfuB.d.cts.map +0 -1
  397. package/dist/Telescope.cjs.map +0 -1
  398. package/dist/Telescope.mjs.map +0 -1
  399. package/dist/adapters/middy.cjs.map +0 -1
  400. package/dist/adapters/middy.d.cts.map +0 -1
  401. package/dist/adapters/middy.d.mts.map +0 -1
  402. package/dist/adapters/middy.mjs.map +0 -1
  403. package/dist/adapters/types.d.cts.map +0 -1
  404. package/dist/adapters/types.d.mts.map +0 -1
  405. package/dist/instrumentation/core.cjs.map +0 -1
  406. package/dist/instrumentation/core.d.cts.map +0 -1
  407. package/dist/instrumentation/core.d.mts.map +0 -1
  408. package/dist/instrumentation/core.mjs.map +0 -1
  409. package/dist/instrumentation/hono.cjs.map +0 -1
  410. package/dist/instrumentation/hono.d.cts.map +0 -1
  411. package/dist/instrumentation/hono.d.mts.map +0 -1
  412. package/dist/instrumentation/hono.mjs.map +0 -1
  413. package/dist/instrumentation/http.cjs.map +0 -1
  414. package/dist/instrumentation/http.d.cts.map +0 -1
  415. package/dist/instrumentation/http.d.mts.map +0 -1
  416. package/dist/instrumentation/http.mjs.map +0 -1
  417. package/dist/instrumentation/middleware.cjs.map +0 -1
  418. package/dist/instrumentation/middleware.d.cts.map +0 -1
  419. package/dist/instrumentation/middleware.d.mts.map +0 -1
  420. package/dist/instrumentation/middleware.mjs.map +0 -1
  421. package/dist/instrumentation/otel.cjs.map +0 -1
  422. package/dist/instrumentation/otel.d.cts.map +0 -1
  423. package/dist/instrumentation/otel.d.mts.map +0 -1
  424. package/dist/instrumentation/otel.mjs.map +0 -1
  425. package/dist/instrumentation/sampler.cjs +0 -54
  426. package/dist/instrumentation/sampler.cjs.map +0 -1
  427. package/dist/instrumentation/sampler.d.cts +0 -38
  428. package/dist/instrumentation/sampler.d.cts.map +0 -1
  429. package/dist/instrumentation/sampler.d.mts +0 -38
  430. package/dist/instrumentation/sampler.d.mts.map +0 -1
  431. package/dist/instrumentation/sampler.mjs +0 -52
  432. package/dist/instrumentation/sampler.mjs.map +0 -1
  433. package/dist/instrumentation/setup.cjs.map +0 -1
  434. package/dist/instrumentation/setup.d.cts.map +0 -1
  435. package/dist/instrumentation/setup.d.mts.map +0 -1
  436. package/dist/instrumentation/setup.mjs.map +0 -1
  437. package/dist/instrumentation/tracing.cjs.map +0 -1
  438. package/dist/instrumentation/tracing.d.cts.map +0 -1
  439. package/dist/instrumentation/tracing.d.mts.map +0 -1
  440. package/dist/instrumentation/tracing.mjs.map +0 -1
  441. package/dist/instrumentation/trust.cjs +0 -107
  442. package/dist/instrumentation/trust.cjs.map +0 -1
  443. package/dist/instrumentation/trust.d.cts +0 -57
  444. package/dist/instrumentation/trust.d.cts.map +0 -1
  445. package/dist/instrumentation/trust.d.mts +0 -57
  446. package/dist/instrumentation/trust.d.mts.map +0 -1
  447. package/dist/instrumentation/trust.mjs +0 -104
  448. package/dist/instrumentation/trust.mjs.map +0 -1
  449. package/dist/metrics/MetricsAggregator.cjs.map +0 -1
  450. package/dist/metrics/MetricsAggregator.mjs.map +0 -1
  451. package/dist/metrics/storage/InMemoryMetricsStorage.cjs.map +0 -1
  452. package/dist/metrics/storage/InMemoryMetricsStorage.d.cts.map +0 -1
  453. package/dist/metrics/storage/InMemoryMetricsStorage.d.mts.map +0 -1
  454. package/dist/metrics/storage/InMemoryMetricsStorage.mjs.map +0 -1
  455. package/dist/metrics/storage/MetricsStorage.d.cts.map +0 -1
  456. package/dist/metrics/storage/MetricsStorage.d.mts.map +0 -1
  457. package/dist/metrics/storage/types.cjs.map +0 -1
  458. package/dist/metrics/storage/types.d.cts.map +0 -1
  459. package/dist/metrics/storage/types.d.mts.map +0 -1
  460. package/dist/metrics/storage/types.mjs.map +0 -1
  461. package/dist/otlp/receiver.cjs.map +0 -1
  462. package/dist/otlp/receiver.d.cts.map +0 -1
  463. package/dist/otlp/receiver.d.mts.map +0 -1
  464. package/dist/otlp/receiver.mjs.map +0 -1
  465. package/dist/otlp/transformer.cjs.map +0 -1
  466. package/dist/otlp/transformer.mjs.map +0 -1
  467. package/dist/otlp/types.cjs.map +0 -1
  468. package/dist/otlp/types.mjs.map +0 -1
  469. package/dist/redact.cjs.map +0 -1
  470. package/dist/redact.mjs.map +0 -1
  471. package/dist/storage/memory.cjs.map +0 -1
  472. package/dist/storage/memory.d.cts.map +0 -1
  473. package/dist/storage/memory.d.mts.map +0 -1
  474. package/dist/storage/memory.mjs.map +0 -1
  475. package/dist/transformer-BtqjAs0b.d.cts.map +0 -1
  476. package/dist/transformer-DI6t8-YA.d.mts.map +0 -1
  477. package/dist/types-BVujq4zd.d.cts.map +0 -1
  478. package/dist/types-BVujq4zd.d.mts.map +0 -1
  479. package/dist/types-DVETVdpa.d.cts.map +0 -1
  480. package/dist/types-DVETVdpa.d.mts.map +0 -1
@@ -1,122 +1,3 @@
1
- //#region src/storage/memory.ts
2
- /**
3
- * In-memory storage for Telescope data.
4
- * Ideal for development and testing.
5
- * Data is lost when the process restarts.
6
- */
7
- var InMemoryStorage = class {
8
- requests = [];
9
- exceptions = [];
10
- logs = [];
11
- maxEntries;
12
- constructor(options) {
13
- this.maxEntries = options?.maxEntries ?? 1e3;
14
- }
15
- async saveRequest(entry) {
16
- this.requests.unshift(entry);
17
- this.enforceLimit("requests");
18
- }
19
- async saveRequests(entries) {
20
- this.requests.unshift(...entries);
21
- this.enforceLimit("requests");
22
- }
23
- async getRequests(options) {
24
- let result = this.requests;
25
- if (options?.method) result = result.filter((r) => r.method === options.method);
26
- if (options?.status) {
27
- const statusFilter = options.status;
28
- result = result.filter((r) => {
29
- if (statusFilter.endsWith("xx")) {
30
- const firstChar = statusFilter[0];
31
- if (!firstChar) return false;
32
- const category = parseInt(firstChar, 10);
33
- return Math.floor(r.status / 100) === category;
34
- }
35
- return r.status === parseInt(statusFilter, 10);
36
- });
37
- }
38
- return this.filterEntries(result, options);
39
- }
40
- async getRequest(id) {
41
- return this.requests.find((r) => r.id === id) ?? null;
42
- }
43
- async saveException(entry) {
44
- this.exceptions.unshift(entry);
45
- this.enforceLimit("exceptions");
46
- }
47
- async saveExceptions(entries) {
48
- this.exceptions.unshift(...entries);
49
- this.enforceLimit("exceptions");
50
- }
51
- async getExceptions(options) {
52
- return this.filterEntries(this.exceptions, options);
53
- }
54
- async getException(id) {
55
- return this.exceptions.find((e) => e.id === id) ?? null;
56
- }
57
- async saveLog(entry) {
58
- this.logs.unshift(entry);
59
- this.enforceLimit("logs");
60
- }
61
- async saveLogs(entries) {
62
- this.logs.unshift(...entries);
63
- this.enforceLimit("logs");
64
- }
65
- async getLogs(options) {
66
- let result = this.logs;
67
- if (options?.level) result = result.filter((l) => l.level === options.level);
68
- return this.filterEntries(result, options);
69
- }
70
- async prune(olderThan) {
71
- const beforeCount = this.requests.length + this.exceptions.length + this.logs.length;
72
- this.requests = this.requests.filter((r) => r.timestamp >= olderThan);
73
- this.exceptions = this.exceptions.filter((e) => e.timestamp >= olderThan);
74
- this.logs = this.logs.filter((l) => l.timestamp >= olderThan);
75
- return beforeCount - (this.requests.length + this.exceptions.length + this.logs.length);
76
- }
77
- async getStats() {
78
- const allTimestamps = [
79
- ...this.requests.map((r) => r.timestamp),
80
- ...this.exceptions.map((e) => e.timestamp),
81
- ...this.logs.map((l) => l.timestamp)
82
- ].sort((a, b) => a.getTime() - b.getTime());
83
- return {
84
- requests: this.requests.length,
85
- exceptions: this.exceptions.length,
86
- logs: this.logs.length,
87
- oldestEntry: allTimestamps[0],
88
- newestEntry: allTimestamps[allTimestamps.length - 1]
89
- };
90
- }
91
- clear() {
92
- this.requests = [];
93
- this.exceptions = [];
94
- this.logs = [];
95
- }
96
- enforceLimit(type) {
97
- if (this[type].length > this.maxEntries) {
98
- if (type === "requests") this.requests = this.requests.slice(0, this.maxEntries);
99
- else if (type === "exceptions") this.exceptions = this.exceptions.slice(0, this.maxEntries);
100
- else this.logs = this.logs.slice(0, this.maxEntries);
101
- }
102
- }
103
- filterEntries(entries, options) {
104
- let result = entries;
105
- if (options?.after) result = result.filter((e) => e.timestamp >= options.after);
106
- if (options?.before) result = result.filter((e) => e.timestamp <= options.before);
107
- if (options?.tags && options.tags.length > 0) result = result.filter((e) => e.tags && options.tags?.some((t) => e.tags?.includes(t)));
108
- if (options?.search) {
109
- const searchLower = options.search.toLowerCase();
110
- result = result.filter((e) => {
111
- return JSON.stringify(e).toLowerCase().includes(searchLower);
112
- });
113
- }
114
- const offset = options?.offset ?? 0;
115
- const limit = options?.limit ?? 50;
116
- return result.slice(offset, offset + limit);
117
- }
118
- };
119
- //#endregion
120
- export { InMemoryStorage };
1
+ import { InMemoryStorage } from "../memory-6S9H-IF5.mjs";
121
2
 
122
- //# sourceMappingURL=memory.mjs.map
3
+ export { InMemoryStorage };
@@ -0,0 +1,53 @@
1
+ import { Attributes, Span } from "@opentelemetry/api";
2
+
3
+ //#region src/instrumentation/tracing.d.ts
4
+
5
+ /**
6
+ * Get the currently active span
7
+ */
8
+ declare function getActiveSpan(): Span | undefined;
9
+ /**
10
+ * Set attributes on the active span
11
+ */
12
+ declare function setSpanAttributes(attributes: Attributes): void;
13
+ /**
14
+ * Create a new span as a child of the current span
15
+ */
16
+ declare function createSpan(name: string, attributes?: Attributes): Span;
17
+ /**
18
+ * Execute a function within a new span context
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const result = await withSpan('processOrder', async (span) => {
23
+ * span.setAttribute('order.id', orderId);
24
+ * const order = await processOrder(orderId);
25
+ * return order;
26
+ * });
27
+ * ```
28
+ */
29
+ declare function withSpan<T>(name: string, fn: (span: Span) => Promise<T>, attributes?: Attributes): Promise<T>;
30
+ /**
31
+ * Synchronous version of withSpan
32
+ */
33
+ declare function withSpanSync<T>(name: string, fn: (span: Span) => T, attributes?: Attributes): T;
34
+ /**
35
+ * Get the current trace ID (useful for log correlation)
36
+ */
37
+ declare function getTraceId(): string | undefined;
38
+ /**
39
+ * Get the current span ID
40
+ */
41
+ declare function getSpanId(): string | undefined;
42
+ /**
43
+ * Record an exception on the current span
44
+ */
45
+ declare function recordException(error: Error): void;
46
+ /**
47
+ * Add an event to the current span
48
+ */
49
+ declare function addSpanEvent(name: string, attributes?: Attributes): void;
50
+ //# sourceMappingURL=tracing.d.ts.map
51
+ //#endregion
52
+ export { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync };
53
+ //# sourceMappingURL=tracing-BX8uY2nR.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-BX8uY2nR.d.cts","names":[],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAOgB,iBAPA,aAAA,CAAA,CAO8B,EAPb,IAOuB,GAAA,SAAA;AAUxD;;;AAAmE,iBAVnD,iBAAA,CAUmD,UAAA,EAVrB,UAUqB,CAAA,EAAA,IAAA;AAAI;AAkBvE;;AAEY,iBApBI,UAAA,CAoBJ,IAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EApB0C,UAoB1C,CAAA,EApBuD,IAoBvD;;;;;;AAEF;AA4BV;;;;;;AAII,iBApCkB,QAoClB,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EAlCQ,IAkCR,EAAA,GAlCiB,OAkCjB,CAlCyB,CAkCzB,CAAA,EAAA,UAAA,CAAA,EAjCU,UAiCV,CAAA,EAhCD,OAgCC,CAhCO,CAgCP,CAAA;AA2BJ;AAQA;AAQA;AAcgB,iBA7DA,YA6DwC,CAAA,CAAA,CAAA,CAAU,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EA3DtD,IA2DsD,EAAA,GA3D7C,CA2D6C,EAAA,UAAA,CAAA,EA1DpD,UA0DoD,CAAA,EAzD/D,CAyD+D;;;;iBA9BlD,UAAA,CAAA;;;;iBAQA,SAAA,CAAA;;;;iBAQA,eAAA,QAAuB;;;;iBAcvB,YAAA,4BAAwC"}
@@ -0,0 +1,167 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
3
+
4
+ //#region src/instrumentation/tracing.ts
5
+ /**
6
+ * Get the currently active span
7
+ */
8
+ function getActiveSpan() {
9
+ return __opentelemetry_api.trace.getActiveSpan();
10
+ }
11
+ /**
12
+ * Set attributes on the active span
13
+ */
14
+ function setSpanAttributes(attributes) {
15
+ const span = getActiveSpan();
16
+ if (span) span.setAttributes(attributes);
17
+ }
18
+ /**
19
+ * Create a new span as a child of the current span
20
+ */
21
+ function createSpan(name, attributes) {
22
+ const tracer = __opentelemetry_api.trace.getTracer("@geekmidas/telescope");
23
+ const span = tracer.startSpan(name, { attributes });
24
+ return span;
25
+ }
26
+ /**
27
+ * Execute a function within a new span context
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const result = await withSpan('processOrder', async (span) => {
32
+ * span.setAttribute('order.id', orderId);
33
+ * const order = await processOrder(orderId);
34
+ * return order;
35
+ * });
36
+ * ```
37
+ */
38
+ async function withSpan(name, fn, attributes) {
39
+ const tracer = __opentelemetry_api.trace.getTracer("@geekmidas/telescope");
40
+ const span = tracer.startSpan(name, { attributes });
41
+ try {
42
+ const result = await __opentelemetry_api.context.with(__opentelemetry_api.trace.setSpan(__opentelemetry_api.context.active(), span), () => fn(span));
43
+ span.setStatus({ code: __opentelemetry_api.SpanStatusCode.OK });
44
+ return result;
45
+ } catch (error) {
46
+ span.setStatus({
47
+ code: __opentelemetry_api.SpanStatusCode.ERROR,
48
+ message: error instanceof Error ? error.message : "Unknown error"
49
+ });
50
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
51
+ throw error;
52
+ } finally {
53
+ span.end();
54
+ }
55
+ }
56
+ /**
57
+ * Synchronous version of withSpan
58
+ */
59
+ function withSpanSync(name, fn, attributes) {
60
+ const tracer = __opentelemetry_api.trace.getTracer("@geekmidas/telescope");
61
+ const span = tracer.startSpan(name, { attributes });
62
+ try {
63
+ const result = __opentelemetry_api.context.with(__opentelemetry_api.trace.setSpan(__opentelemetry_api.context.active(), span), () => fn(span));
64
+ span.setStatus({ code: __opentelemetry_api.SpanStatusCode.OK });
65
+ return result;
66
+ } catch (error) {
67
+ span.setStatus({
68
+ code: __opentelemetry_api.SpanStatusCode.ERROR,
69
+ message: error instanceof Error ? error.message : "Unknown error"
70
+ });
71
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
72
+ throw error;
73
+ } finally {
74
+ span.end();
75
+ }
76
+ }
77
+ /**
78
+ * Get the current trace ID (useful for log correlation)
79
+ */
80
+ function getTraceId() {
81
+ const span = getActiveSpan();
82
+ return span?.spanContext().traceId;
83
+ }
84
+ /**
85
+ * Get the current span ID
86
+ */
87
+ function getSpanId() {
88
+ const span = getActiveSpan();
89
+ return span?.spanContext().spanId;
90
+ }
91
+ /**
92
+ * Record an exception on the current span
93
+ */
94
+ function recordException(error) {
95
+ const span = getActiveSpan();
96
+ if (span) {
97
+ span.recordException(error);
98
+ span.setStatus({
99
+ code: __opentelemetry_api.SpanStatusCode.ERROR,
100
+ message: error.message
101
+ });
102
+ }
103
+ }
104
+ /**
105
+ * Add an event to the current span
106
+ */
107
+ function addSpanEvent(name, attributes) {
108
+ const span = getActiveSpan();
109
+ if (span) span.addEvent(name, attributes);
110
+ }
111
+
112
+ //#endregion
113
+ Object.defineProperty(exports, 'addSpanEvent', {
114
+ enumerable: true,
115
+ get: function () {
116
+ return addSpanEvent;
117
+ }
118
+ });
119
+ Object.defineProperty(exports, 'createSpan', {
120
+ enumerable: true,
121
+ get: function () {
122
+ return createSpan;
123
+ }
124
+ });
125
+ Object.defineProperty(exports, 'getActiveSpan', {
126
+ enumerable: true,
127
+ get: function () {
128
+ return getActiveSpan;
129
+ }
130
+ });
131
+ Object.defineProperty(exports, 'getSpanId', {
132
+ enumerable: true,
133
+ get: function () {
134
+ return getSpanId;
135
+ }
136
+ });
137
+ Object.defineProperty(exports, 'getTraceId', {
138
+ enumerable: true,
139
+ get: function () {
140
+ return getTraceId;
141
+ }
142
+ });
143
+ Object.defineProperty(exports, 'recordException', {
144
+ enumerable: true,
145
+ get: function () {
146
+ return recordException;
147
+ }
148
+ });
149
+ Object.defineProperty(exports, 'setSpanAttributes', {
150
+ enumerable: true,
151
+ get: function () {
152
+ return setSpanAttributes;
153
+ }
154
+ });
155
+ Object.defineProperty(exports, 'withSpan', {
156
+ enumerable: true,
157
+ get: function () {
158
+ return withSpan;
159
+ }
160
+ });
161
+ Object.defineProperty(exports, 'withSpanSync', {
162
+ enumerable: true,
163
+ get: function () {
164
+ return withSpanSync;
165
+ }
166
+ });
167
+ //# sourceMappingURL=tracing-Bt1zWRlb.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-Bt1zWRlb.cjs","names":["attributes: Attributes","name: string","attributes?: Attributes","fn: (span: Span) => Promise<T>","SpanStatusCode","fn: (span: Span) => T","error: Error"],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":["import {\n\ttype Attributes,\n\tcontext,\n\ttype Span,\n\tSpanStatusCode,\n\ttrace,\n} from '@opentelemetry/api';\n\n/**\n * Get the currently active span\n */\nexport function getActiveSpan(): Span | undefined {\n\treturn trace.getActiveSpan();\n}\n\n/**\n * Set attributes on the active span\n */\nexport function setSpanAttributes(attributes: Attributes): void {\n\tconst span = getActiveSpan();\n\tif (span) {\n\t\tspan.setAttributes(attributes);\n\t}\n}\n\n/**\n * Create a new span as a child of the current span\n */\nexport function createSpan(name: string, attributes?: Attributes): Span {\n\tconst tracer = trace.getTracer('@geekmidas/telescope');\n\tconst span = tracer.startSpan(name, { attributes });\n\treturn span;\n}\n\n/**\n * Execute a function within a new span context\n *\n * @example\n * ```typescript\n * const result = await withSpan('processOrder', async (span) => {\n * span.setAttribute('order.id', orderId);\n * const order = await processOrder(orderId);\n * return order;\n * });\n * ```\n */\nexport async function withSpan<T>(\n\tname: string,\n\tfn: (span: Span) => Promise<T>,\n\tattributes?: Attributes,\n): Promise<T> {\n\tconst tracer = trace.getTracer('@geekmidas/telescope');\n\tconst span = tracer.startSpan(name, { attributes });\n\n\ttry {\n\t\tconst result = await context.with(\n\t\t\ttrace.setSpan(context.active(), span),\n\t\t\t() => fn(span),\n\t\t);\n\t\tspan.setStatus({ code: SpanStatusCode.OK });\n\t\treturn result;\n\t} catch (error) {\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error instanceof Error ? error.message : 'Unknown error',\n\t\t});\n\t\tspan.recordException(\n\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t);\n\t\tthrow error;\n\t} finally {\n\t\tspan.end();\n\t}\n}\n\n/**\n * Synchronous version of withSpan\n */\nexport function withSpanSync<T>(\n\tname: string,\n\tfn: (span: Span) => T,\n\tattributes?: Attributes,\n): T {\n\tconst tracer = trace.getTracer('@geekmidas/telescope');\n\tconst span = tracer.startSpan(name, { attributes });\n\n\ttry {\n\t\tconst result = context.with(trace.setSpan(context.active(), span), () =>\n\t\t\tfn(span),\n\t\t);\n\t\tspan.setStatus({ code: SpanStatusCode.OK });\n\t\treturn result;\n\t} catch (error) {\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error instanceof Error ? error.message : 'Unknown error',\n\t\t});\n\t\tspan.recordException(\n\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t);\n\t\tthrow error;\n\t} finally {\n\t\tspan.end();\n\t}\n}\n\n/**\n * Get the current trace ID (useful for log correlation)\n */\nexport function getTraceId(): string | undefined {\n\tconst span = getActiveSpan();\n\treturn span?.spanContext().traceId;\n}\n\n/**\n * Get the current span ID\n */\nexport function getSpanId(): string | undefined {\n\tconst span = getActiveSpan();\n\treturn span?.spanContext().spanId;\n}\n\n/**\n * Record an exception on the current span\n */\nexport function recordException(error: Error): void {\n\tconst span = getActiveSpan();\n\tif (span) {\n\t\tspan.recordException(error);\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error.message,\n\t\t});\n\t}\n}\n\n/**\n * Add an event to the current span\n */\nexport function addSpanEvent(name: string, attributes?: Attributes): void {\n\tconst span = getActiveSpan();\n\tif (span) {\n\t\tspan.addEvent(name, attributes);\n\t}\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,gBAAkC;AACjD,QAAO,0BAAM,eAAe;AAC5B;;;;AAKD,SAAgB,kBAAkBA,YAA8B;CAC/D,MAAM,OAAO,eAAe;AAC5B,KAAI,KACH,MAAK,cAAc,WAAW;AAE/B;;;;AAKD,SAAgB,WAAWC,MAAcC,YAA+B;CACvE,MAAM,SAAS,0BAAM,UAAU,uBAAuB;CACtD,MAAM,OAAO,OAAO,UAAU,MAAM,EAAE,WAAY,EAAC;AACnD,QAAO;AACP;;;;;;;;;;;;;AAcD,eAAsB,SACrBD,MACAE,IACAD,YACa;CACb,MAAM,SAAS,0BAAM,UAAU,uBAAuB;CACtD,MAAM,OAAO,OAAO,UAAU,MAAM,EAAE,WAAY,EAAC;AAEnD,KAAI;EACH,MAAM,SAAS,MAAM,4BAAQ,KAC5B,0BAAM,QAAQ,4BAAQ,QAAQ,EAAE,KAAK,EACrC,MAAM,GAAG,KAAK,CACd;AACD,OAAK,UAAU,EAAE,MAAME,mCAAe,GAAI,EAAC;AAC3C,SAAO;CACP,SAAQ,OAAO;AACf,OAAK,UAAU;GACd,MAAMA,mCAAe;GACrB,SAAS,iBAAiB,QAAQ,MAAM,UAAU;EAClD,EAAC;AACF,OAAK,gBACJ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,EACxD;AACD,QAAM;CACN,UAAS;AACT,OAAK,KAAK;CACV;AACD;;;;AAKD,SAAgB,aACfH,MACAI,IACAH,YACI;CACJ,MAAM,SAAS,0BAAM,UAAU,uBAAuB;CACtD,MAAM,OAAO,OAAO,UAAU,MAAM,EAAE,WAAY,EAAC;AAEnD,KAAI;EACH,MAAM,SAAS,4BAAQ,KAAK,0BAAM,QAAQ,4BAAQ,QAAQ,EAAE,KAAK,EAAE,MAClE,GAAG,KAAK,CACR;AACD,OAAK,UAAU,EAAE,MAAME,mCAAe,GAAI,EAAC;AAC3C,SAAO;CACP,SAAQ,OAAO;AACf,OAAK,UAAU;GACd,MAAMA,mCAAe;GACrB,SAAS,iBAAiB,QAAQ,MAAM,UAAU;EAClD,EAAC;AACF,OAAK,gBACJ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,EACxD;AACD,QAAM;CACN,UAAS;AACT,OAAK,KAAK;CACV;AACD;;;;AAKD,SAAgB,aAAiC;CAChD,MAAM,OAAO,eAAe;AAC5B,QAAO,MAAM,aAAa,CAAC;AAC3B;;;;AAKD,SAAgB,YAAgC;CAC/C,MAAM,OAAO,eAAe;AAC5B,QAAO,MAAM,aAAa,CAAC;AAC3B;;;;AAKD,SAAgB,gBAAgBE,OAAoB;CACnD,MAAM,OAAO,eAAe;AAC5B,KAAI,MAAM;AACT,OAAK,gBAAgB,MAAM;AAC3B,OAAK,UAAU;GACd,MAAMF,mCAAe;GACrB,SAAS,MAAM;EACf,EAAC;CACF;AACD;;;;AAKD,SAAgB,aAAaH,MAAcC,YAA+B;CACzE,MAAM,OAAO,eAAe;AAC5B,KAAI,KACH,MAAK,SAAS,MAAM,WAAW;AAEhC"}
@@ -0,0 +1,113 @@
1
+ import { SpanStatusCode, context, trace } from "@opentelemetry/api";
2
+
3
+ //#region src/instrumentation/tracing.ts
4
+ /**
5
+ * Get the currently active span
6
+ */
7
+ function getActiveSpan() {
8
+ return trace.getActiveSpan();
9
+ }
10
+ /**
11
+ * Set attributes on the active span
12
+ */
13
+ function setSpanAttributes(attributes) {
14
+ const span = getActiveSpan();
15
+ if (span) span.setAttributes(attributes);
16
+ }
17
+ /**
18
+ * Create a new span as a child of the current span
19
+ */
20
+ function createSpan(name, attributes) {
21
+ const tracer = trace.getTracer("@geekmidas/telescope");
22
+ const span = tracer.startSpan(name, { attributes });
23
+ return span;
24
+ }
25
+ /**
26
+ * Execute a function within a new span context
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const result = await withSpan('processOrder', async (span) => {
31
+ * span.setAttribute('order.id', orderId);
32
+ * const order = await processOrder(orderId);
33
+ * return order;
34
+ * });
35
+ * ```
36
+ */
37
+ async function withSpan(name, fn, attributes) {
38
+ const tracer = trace.getTracer("@geekmidas/telescope");
39
+ const span = tracer.startSpan(name, { attributes });
40
+ try {
41
+ const result = await context.with(trace.setSpan(context.active(), span), () => fn(span));
42
+ span.setStatus({ code: SpanStatusCode.OK });
43
+ return result;
44
+ } catch (error) {
45
+ span.setStatus({
46
+ code: SpanStatusCode.ERROR,
47
+ message: error instanceof Error ? error.message : "Unknown error"
48
+ });
49
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
50
+ throw error;
51
+ } finally {
52
+ span.end();
53
+ }
54
+ }
55
+ /**
56
+ * Synchronous version of withSpan
57
+ */
58
+ function withSpanSync(name, fn, attributes) {
59
+ const tracer = trace.getTracer("@geekmidas/telescope");
60
+ const span = tracer.startSpan(name, { attributes });
61
+ try {
62
+ const result = context.with(trace.setSpan(context.active(), span), () => fn(span));
63
+ span.setStatus({ code: SpanStatusCode.OK });
64
+ return result;
65
+ } catch (error) {
66
+ span.setStatus({
67
+ code: SpanStatusCode.ERROR,
68
+ message: error instanceof Error ? error.message : "Unknown error"
69
+ });
70
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
71
+ throw error;
72
+ } finally {
73
+ span.end();
74
+ }
75
+ }
76
+ /**
77
+ * Get the current trace ID (useful for log correlation)
78
+ */
79
+ function getTraceId() {
80
+ const span = getActiveSpan();
81
+ return span?.spanContext().traceId;
82
+ }
83
+ /**
84
+ * Get the current span ID
85
+ */
86
+ function getSpanId() {
87
+ const span = getActiveSpan();
88
+ return span?.spanContext().spanId;
89
+ }
90
+ /**
91
+ * Record an exception on the current span
92
+ */
93
+ function recordException(error) {
94
+ const span = getActiveSpan();
95
+ if (span) {
96
+ span.recordException(error);
97
+ span.setStatus({
98
+ code: SpanStatusCode.ERROR,
99
+ message: error.message
100
+ });
101
+ }
102
+ }
103
+ /**
104
+ * Add an event to the current span
105
+ */
106
+ function addSpanEvent(name, attributes) {
107
+ const span = getActiveSpan();
108
+ if (span) span.addEvent(name, attributes);
109
+ }
110
+
111
+ //#endregion
112
+ export { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync };
113
+ //# sourceMappingURL=tracing-Cijm_5NI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-Cijm_5NI.mjs","names":["attributes: Attributes","name: string","attributes?: Attributes","fn: (span: Span) => Promise<T>","fn: (span: Span) => T","error: Error"],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":["import {\n\ttype Attributes,\n\tcontext,\n\ttype Span,\n\tSpanStatusCode,\n\ttrace,\n} from '@opentelemetry/api';\n\n/**\n * Get the currently active span\n */\nexport function getActiveSpan(): Span | undefined {\n\treturn trace.getActiveSpan();\n}\n\n/**\n * Set attributes on the active span\n */\nexport function setSpanAttributes(attributes: Attributes): void {\n\tconst span = getActiveSpan();\n\tif (span) {\n\t\tspan.setAttributes(attributes);\n\t}\n}\n\n/**\n * Create a new span as a child of the current span\n */\nexport function createSpan(name: string, attributes?: Attributes): Span {\n\tconst tracer = trace.getTracer('@geekmidas/telescope');\n\tconst span = tracer.startSpan(name, { attributes });\n\treturn span;\n}\n\n/**\n * Execute a function within a new span context\n *\n * @example\n * ```typescript\n * const result = await withSpan('processOrder', async (span) => {\n * span.setAttribute('order.id', orderId);\n * const order = await processOrder(orderId);\n * return order;\n * });\n * ```\n */\nexport async function withSpan<T>(\n\tname: string,\n\tfn: (span: Span) => Promise<T>,\n\tattributes?: Attributes,\n): Promise<T> {\n\tconst tracer = trace.getTracer('@geekmidas/telescope');\n\tconst span = tracer.startSpan(name, { attributes });\n\n\ttry {\n\t\tconst result = await context.with(\n\t\t\ttrace.setSpan(context.active(), span),\n\t\t\t() => fn(span),\n\t\t);\n\t\tspan.setStatus({ code: SpanStatusCode.OK });\n\t\treturn result;\n\t} catch (error) {\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error instanceof Error ? error.message : 'Unknown error',\n\t\t});\n\t\tspan.recordException(\n\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t);\n\t\tthrow error;\n\t} finally {\n\t\tspan.end();\n\t}\n}\n\n/**\n * Synchronous version of withSpan\n */\nexport function withSpanSync<T>(\n\tname: string,\n\tfn: (span: Span) => T,\n\tattributes?: Attributes,\n): T {\n\tconst tracer = trace.getTracer('@geekmidas/telescope');\n\tconst span = tracer.startSpan(name, { attributes });\n\n\ttry {\n\t\tconst result = context.with(trace.setSpan(context.active(), span), () =>\n\t\t\tfn(span),\n\t\t);\n\t\tspan.setStatus({ code: SpanStatusCode.OK });\n\t\treturn result;\n\t} catch (error) {\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error instanceof Error ? error.message : 'Unknown error',\n\t\t});\n\t\tspan.recordException(\n\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t);\n\t\tthrow error;\n\t} finally {\n\t\tspan.end();\n\t}\n}\n\n/**\n * Get the current trace ID (useful for log correlation)\n */\nexport function getTraceId(): string | undefined {\n\tconst span = getActiveSpan();\n\treturn span?.spanContext().traceId;\n}\n\n/**\n * Get the current span ID\n */\nexport function getSpanId(): string | undefined {\n\tconst span = getActiveSpan();\n\treturn span?.spanContext().spanId;\n}\n\n/**\n * Record an exception on the current span\n */\nexport function recordException(error: Error): void {\n\tconst span = getActiveSpan();\n\tif (span) {\n\t\tspan.recordException(error);\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error.message,\n\t\t});\n\t}\n}\n\n/**\n * Add an event to the current span\n */\nexport function addSpanEvent(name: string, attributes?: Attributes): void {\n\tconst span = getActiveSpan();\n\tif (span) {\n\t\tspan.addEvent(name, attributes);\n\t}\n}\n"],"mappings":";;;;;;AAWA,SAAgB,gBAAkC;AACjD,QAAO,MAAM,eAAe;AAC5B;;;;AAKD,SAAgB,kBAAkBA,YAA8B;CAC/D,MAAM,OAAO,eAAe;AAC5B,KAAI,KACH,MAAK,cAAc,WAAW;AAE/B;;;;AAKD,SAAgB,WAAWC,MAAcC,YAA+B;CACvE,MAAM,SAAS,MAAM,UAAU,uBAAuB;CACtD,MAAM,OAAO,OAAO,UAAU,MAAM,EAAE,WAAY,EAAC;AACnD,QAAO;AACP;;;;;;;;;;;;;AAcD,eAAsB,SACrBD,MACAE,IACAD,YACa;CACb,MAAM,SAAS,MAAM,UAAU,uBAAuB;CACtD,MAAM,OAAO,OAAO,UAAU,MAAM,EAAE,WAAY,EAAC;AAEnD,KAAI;EACH,MAAM,SAAS,MAAM,QAAQ,KAC5B,MAAM,QAAQ,QAAQ,QAAQ,EAAE,KAAK,EACrC,MAAM,GAAG,KAAK,CACd;AACD,OAAK,UAAU,EAAE,MAAM,eAAe,GAAI,EAAC;AAC3C,SAAO;CACP,SAAQ,OAAO;AACf,OAAK,UAAU;GACd,MAAM,eAAe;GACrB,SAAS,iBAAiB,QAAQ,MAAM,UAAU;EAClD,EAAC;AACF,OAAK,gBACJ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,EACxD;AACD,QAAM;CACN,UAAS;AACT,OAAK,KAAK;CACV;AACD;;;;AAKD,SAAgB,aACfD,MACAG,IACAF,YACI;CACJ,MAAM,SAAS,MAAM,UAAU,uBAAuB;CACtD,MAAM,OAAO,OAAO,UAAU,MAAM,EAAE,WAAY,EAAC;AAEnD,KAAI;EACH,MAAM,SAAS,QAAQ,KAAK,MAAM,QAAQ,QAAQ,QAAQ,EAAE,KAAK,EAAE,MAClE,GAAG,KAAK,CACR;AACD,OAAK,UAAU,EAAE,MAAM,eAAe,GAAI,EAAC;AAC3C,SAAO;CACP,SAAQ,OAAO;AACf,OAAK,UAAU;GACd,MAAM,eAAe;GACrB,SAAS,iBAAiB,QAAQ,MAAM,UAAU;EAClD,EAAC;AACF,OAAK,gBACJ,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,EACxD;AACD,QAAM;CACN,UAAS;AACT,OAAK,KAAK;CACV;AACD;;;;AAKD,SAAgB,aAAiC;CAChD,MAAM,OAAO,eAAe;AAC5B,QAAO,MAAM,aAAa,CAAC;AAC3B;;;;AAKD,SAAgB,YAAgC;CAC/C,MAAM,OAAO,eAAe;AAC5B,QAAO,MAAM,aAAa,CAAC;AAC3B;;;;AAKD,SAAgB,gBAAgBG,OAAoB;CACnD,MAAM,OAAO,eAAe;AAC5B,KAAI,MAAM;AACT,OAAK,gBAAgB,MAAM;AAC3B,OAAK,UAAU;GACd,MAAM,eAAe;GACrB,SAAS,MAAM;EACf,EAAC;CACF;AACD;;;;AAKD,SAAgB,aAAaJ,MAAcC,YAA+B;CACzE,MAAM,OAAO,eAAe;AAC5B,KAAI,KACH,MAAK,SAAS,MAAM,WAAW;AAEhC"}
@@ -0,0 +1,53 @@
1
+ import { Attributes, Span } from "@opentelemetry/api";
2
+
3
+ //#region src/instrumentation/tracing.d.ts
4
+
5
+ /**
6
+ * Get the currently active span
7
+ */
8
+ declare function getActiveSpan(): Span | undefined;
9
+ /**
10
+ * Set attributes on the active span
11
+ */
12
+ declare function setSpanAttributes(attributes: Attributes): void;
13
+ /**
14
+ * Create a new span as a child of the current span
15
+ */
16
+ declare function createSpan(name: string, attributes?: Attributes): Span;
17
+ /**
18
+ * Execute a function within a new span context
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const result = await withSpan('processOrder', async (span) => {
23
+ * span.setAttribute('order.id', orderId);
24
+ * const order = await processOrder(orderId);
25
+ * return order;
26
+ * });
27
+ * ```
28
+ */
29
+ declare function withSpan<T>(name: string, fn: (span: Span) => Promise<T>, attributes?: Attributes): Promise<T>;
30
+ /**
31
+ * Synchronous version of withSpan
32
+ */
33
+ declare function withSpanSync<T>(name: string, fn: (span: Span) => T, attributes?: Attributes): T;
34
+ /**
35
+ * Get the current trace ID (useful for log correlation)
36
+ */
37
+ declare function getTraceId(): string | undefined;
38
+ /**
39
+ * Get the current span ID
40
+ */
41
+ declare function getSpanId(): string | undefined;
42
+ /**
43
+ * Record an exception on the current span
44
+ */
45
+ declare function recordException(error: Error): void;
46
+ /**
47
+ * Add an event to the current span
48
+ */
49
+ declare function addSpanEvent(name: string, attributes?: Attributes): void;
50
+ //# sourceMappingURL=tracing.d.ts.map
51
+ //#endregion
52
+ export { addSpanEvent, createSpan, getActiveSpan, getSpanId, getTraceId, recordException, setSpanAttributes, withSpan, withSpanSync };
53
+ //# sourceMappingURL=tracing-PnECEbEu.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-PnECEbEu.d.mts","names":[],"sources":["../src/instrumentation/tracing.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAOgB,iBAPA,aAAA,CAAA,CAO8B,EAPb,IAOuB,GAAA,SAAA;AAUxD;;;AAAmE,iBAVnD,iBAAA,CAUmD,UAAA,EAVrB,UAUqB,CAAA,EAAA,IAAA;AAAI;AAkBvE;;AAEY,iBApBI,UAAA,CAoBJ,IAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EApB0C,UAoB1C,CAAA,EApBuD,IAoBvD;;;;;;AAEF;AA4BV;;;;;;AAII,iBApCkB,QAoClB,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EAlCQ,IAkCR,EAAA,GAlCiB,OAkCjB,CAlCyB,CAkCzB,CAAA,EAAA,UAAA,CAAA,EAjCU,UAiCV,CAAA,EAhCD,OAgCC,CAhCO,CAgCP,CAAA;AA2BJ;AAQA;AAQA;AAcgB,iBA7DA,YA6DwC,CAAA,CAAA,CAAA,CAAU,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,CAAA,IAAA,EA3DtD,IA2DsD,EAAA,GA3D7C,CA2D6C,EAAA,UAAA,CAAA,EA1DpD,UA0DoD,CAAA,EAzD/D,CAyD+D;;;;iBA9BlD,UAAA,CAAA;;;;iBAQA,SAAA,CAAA;;;;iBAQA,eAAA,QAAuB;;;;iBAcvB,YAAA,4BAAwC"}