@geekmidas/telescope 10.0.0-alpha.99 → 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,212 +1,4 @@
1
- import "./types.mjs";
2
- //#region src/otlp/transformer.ts
3
- /**
4
- * Extract a primitive value from an AnyValue
5
- */
6
- function extractValue(value) {
7
- if (!value) return void 0;
8
- if (value.stringValue !== void 0) return value.stringValue;
9
- if (value.boolValue !== void 0) return value.boolValue;
10
- if (value.intValue !== void 0) return parseInt(value.intValue, 10);
11
- if (value.doubleValue !== void 0) return value.doubleValue;
12
- if (value.bytesValue !== void 0) return value.bytesValue;
13
- if (value.arrayValue) return value.arrayValue.values.map(extractValue);
14
- if (value.kvlistValue) return attributesToObject(value.kvlistValue.values);
15
- }
16
- /**
17
- * Convert KeyValue array to a plain object
18
- */
19
- function attributesToObject(attrs) {
20
- if (!attrs) return {};
21
- const result = {};
22
- for (const attr of attrs) result[attr.key] = extractValue(attr.value);
23
- return result;
24
- }
25
- /**
26
- * Convert nanoseconds string to Date
27
- */
28
- function nanoToDate(nanoStr) {
29
- const nano = BigInt(nanoStr);
30
- const ms = Number(nano / BigInt(1e6));
31
- return new Date(ms);
32
- }
33
- /**
34
- * Convert nanoseconds string to milliseconds number
35
- */
36
- function nanoToMs(nanoStr) {
37
- const nano = BigInt(nanoStr);
38
- return Number(nano / BigInt(1e6));
39
- }
40
- /**
41
- * Map OTLP severity number to Telescope log level
42
- */
43
- function mapSeverity(severity) {
44
- if (severity === void 0) return "info";
45
- if (severity <= 8) return "debug";
46
- if (severity <= 12) return "info";
47
- if (severity <= 16) return "warn";
48
- return "error";
49
- }
50
- /**
51
- * Determine HTTP status from span attributes and status
52
- */
53
- function getHttpStatus(span) {
54
- const attrs = attributesToObject(span.attributes);
55
- const statusCode = attrs["http.status_code"] ?? attrs["http.response.status_code"] ?? attrs["http.response_status_code"];
56
- if (typeof statusCode === "number") return statusCode;
57
- if (typeof statusCode === "string") return parseInt(statusCode, 10) || 200;
58
- if (span.status?.code === 2) return 500;
59
- if (span.status?.code === 1) return 200;
60
- return 200;
61
- }
62
- /**
63
- * Check if a span represents an HTTP server request
64
- */
65
- function isHttpServerSpan(span) {
66
- if (span.kind !== 2) return false;
67
- const attrs = attributesToObject(span.attributes);
68
- return !!(attrs["http.method"] || attrs["http.request.method"] || attrs["http.url"] || attrs["http.target"] || attrs["url.path"]);
69
- }
70
- /**
71
- * Transform HTTP-related span attributes to RequestEntry format
72
- */
73
- function transformHttpSpan(span, resourceAttrs) {
74
- const attrs = attributesToObject(span.attributes);
75
- const method = String(attrs["http.method"] ?? attrs["http.request.method"] ?? "GET").toUpperCase();
76
- const path = String(attrs["http.target"] ?? attrs["url.path"] ?? attrs["http.route"] ?? "/");
77
- const url = String(attrs["http.url"] ?? attrs["url.full"] ?? `http://localhost${path}`);
78
- const headers = {};
79
- const userAgent = attrs["http.user_agent"] ?? attrs["user_agent.original"];
80
- if (userAgent) headers["user-agent"] = String(userAgent);
81
- const contentType = attrs["http.request.header.content_type"];
82
- if (contentType) headers["content-type"] = String(contentType);
83
- const startTime = nanoToMs(span.startTimeUnixNano);
84
- const duration = nanoToMs(span.endTimeUnixNano) - startTime;
85
- const status = getHttpStatus(span);
86
- const ip = attrs["net.peer.ip"] ?? attrs["client.address"] ?? attrs["http.client_ip"];
87
- return {
88
- method,
89
- path,
90
- url,
91
- headers,
92
- query: {},
93
- status,
94
- responseHeaders: {},
95
- duration,
96
- ip: ip ? String(ip) : void 0,
97
- tags: [
98
- `trace:${span.traceId}`,
99
- `span:${span.spanId}`,
100
- ...resourceAttrs["service.name"] ? [`service:${resourceAttrs["service.name"]}`] : []
101
- ]
102
- };
103
- }
104
- /**
105
- * Transform OTLP traces to Telescope RequestEntries
106
- * Only transforms HTTP server spans to request entries
107
- */
108
- function transformTraces(request) {
109
- const entries = [];
110
- for (const resourceSpans of request.resourceSpans ?? []) {
111
- const resourceAttrs = attributesToObject(resourceSpans.resource?.attributes);
112
- for (const scopeSpans of resourceSpans.scopeSpans ?? []) for (const span of scopeSpans.spans ?? []) if (isHttpServerSpan(span)) entries.push(transformHttpSpan(span, resourceAttrs));
113
- }
114
- return entries;
115
- }
116
- /**
117
- * Transform a single OTLP log record to Telescope LogEntry
118
- */
119
- function transformLogRecord(record, resourceAttrs, scopeName) {
120
- const attrs = attributesToObject(record.attributes);
121
- let message = "";
122
- if (record.body) {
123
- const bodyValue = extractValue(record.body);
124
- message = typeof bodyValue === "string" ? bodyValue : JSON.stringify(bodyValue);
125
- }
126
- const context = {
127
- ...attrs,
128
- ...resourceAttrs
129
- };
130
- if (scopeName) context["instrumentation.scope"] = scopeName;
131
- if (record.severityText) context["severity.text"] = record.severityText;
132
- return {
133
- level: mapSeverity(record.severityNumber),
134
- message,
135
- context: Object.keys(context).length > 0 ? context : void 0,
136
- requestId: record.spanId ? `span:${record.spanId}` : void 0
137
- };
138
- }
139
- /**
140
- * Transform OTLP logs to Telescope LogEntries
141
- */
142
- function transformLogs(request) {
143
- const entries = [];
144
- for (const resourceLogs of request.resourceLogs ?? []) {
145
- const resourceAttrs = attributesToObject(resourceLogs.resource?.attributes);
146
- for (const scopeLogs of resourceLogs.scopeLogs ?? []) {
147
- const scopeName = scopeLogs.scope?.name;
148
- for (const record of scopeLogs.logRecords ?? []) entries.push(transformLogRecord(record, resourceAttrs, scopeName));
149
- }
150
- }
151
- return entries;
152
- }
153
- /**
154
- * Transform OTLP metrics to normalized data points
155
- * These can be used for custom metrics processing or forwarding
156
- */
157
- function transformMetrics(request) {
158
- const points = [];
159
- for (const resourceMetrics of request.resourceMetrics ?? []) {
160
- const resourceAttrs = attributesToObject(resourceMetrics.resource?.attributes);
161
- for (const scopeMetrics of resourceMetrics.scopeMetrics ?? []) for (const metric of scopeMetrics.metrics ?? []) {
162
- const baseMeta = {
163
- name: metric.name,
164
- description: metric.description,
165
- unit: metric.unit,
166
- resourceAttributes: resourceAttrs
167
- };
168
- if (metric.gauge) for (const dp of metric.gauge.dataPoints) points.push({
169
- ...baseMeta,
170
- value: dp.asDouble ?? (dp.asInt ? parseInt(dp.asInt, 10) : 0),
171
- timestamp: nanoToDate(dp.timeUnixNano),
172
- attributes: attributesToObject(dp.attributes),
173
- type: "gauge"
174
- });
175
- if (metric.sum) for (const dp of metric.sum.dataPoints) points.push({
176
- ...baseMeta,
177
- value: dp.asDouble ?? (dp.asInt ? parseInt(dp.asInt, 10) : 0),
178
- timestamp: nanoToDate(dp.timeUnixNano),
179
- attributes: attributesToObject(dp.attributes),
180
- type: "sum"
181
- });
182
- if (metric.histogram) for (const dp of metric.histogram.dataPoints) points.push({
183
- ...baseMeta,
184
- value: dp.sum ?? 0,
185
- timestamp: nanoToDate(dp.timeUnixNano),
186
- attributes: {
187
- ...attributesToObject(dp.attributes),
188
- count: parseInt(dp.count, 10),
189
- min: dp.min,
190
- max: dp.max
191
- },
192
- type: "histogram"
193
- });
194
- if (metric.summary) for (const dp of metric.summary.dataPoints) points.push({
195
- ...baseMeta,
196
- value: dp.sum ?? 0,
197
- timestamp: nanoToDate(dp.timeUnixNano),
198
- attributes: {
199
- ...attributesToObject(dp.attributes),
200
- count: parseInt(dp.count, 10),
201
- quantiles: dp.quantileValues
202
- },
203
- type: "summary"
204
- });
205
- }
206
- }
207
- return points;
208
- }
209
- //#endregion
210
- export { transformLogs, transformMetrics, transformTraces };
1
+ import "../types-Bwm_jNU7.mjs";
2
+ import { transformLogs, transformMetrics, transformTraces } from "../transformer-BXQPhzql.mjs";
211
3
 
212
- //# sourceMappingURL=transformer.mjs.map
4
+ export { transformLogs, transformMetrics, transformTraces };
@@ -1,58 +1,6 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/otlp/types.ts
3
- let SpanKind = /* @__PURE__ */ function(SpanKind) {
4
- SpanKind[SpanKind["SPAN_KIND_UNSPECIFIED"] = 0] = "SPAN_KIND_UNSPECIFIED";
5
- SpanKind[SpanKind["SPAN_KIND_INTERNAL"] = 1] = "SPAN_KIND_INTERNAL";
6
- SpanKind[SpanKind["SPAN_KIND_SERVER"] = 2] = "SPAN_KIND_SERVER";
7
- SpanKind[SpanKind["SPAN_KIND_CLIENT"] = 3] = "SPAN_KIND_CLIENT";
8
- SpanKind[SpanKind["SPAN_KIND_PRODUCER"] = 4] = "SPAN_KIND_PRODUCER";
9
- SpanKind[SpanKind["SPAN_KIND_CONSUMER"] = 5] = "SPAN_KIND_CONSUMER";
10
- return SpanKind;
11
- }({});
12
- let SpanStatusCode = /* @__PURE__ */ function(SpanStatusCode) {
13
- SpanStatusCode[SpanStatusCode["STATUS_CODE_UNSET"] = 0] = "STATUS_CODE_UNSET";
14
- SpanStatusCode[SpanStatusCode["STATUS_CODE_OK"] = 1] = "STATUS_CODE_OK";
15
- SpanStatusCode[SpanStatusCode["STATUS_CODE_ERROR"] = 2] = "STATUS_CODE_ERROR";
16
- return SpanStatusCode;
17
- }({});
18
- let SeverityNumber = /* @__PURE__ */ function(SeverityNumber) {
19
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_UNSPECIFIED"] = 0] = "SEVERITY_NUMBER_UNSPECIFIED";
20
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE"] = 1] = "SEVERITY_NUMBER_TRACE";
21
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE2"] = 2] = "SEVERITY_NUMBER_TRACE2";
22
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE3"] = 3] = "SEVERITY_NUMBER_TRACE3";
23
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE4"] = 4] = "SEVERITY_NUMBER_TRACE4";
24
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG"] = 5] = "SEVERITY_NUMBER_DEBUG";
25
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG2"] = 6] = "SEVERITY_NUMBER_DEBUG2";
26
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG3"] = 7] = "SEVERITY_NUMBER_DEBUG3";
27
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG4"] = 8] = "SEVERITY_NUMBER_DEBUG4";
28
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO"] = 9] = "SEVERITY_NUMBER_INFO";
29
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO2"] = 10] = "SEVERITY_NUMBER_INFO2";
30
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO3"] = 11] = "SEVERITY_NUMBER_INFO3";
31
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO4"] = 12] = "SEVERITY_NUMBER_INFO4";
32
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN"] = 13] = "SEVERITY_NUMBER_WARN";
33
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN2"] = 14] = "SEVERITY_NUMBER_WARN2";
34
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN3"] = 15] = "SEVERITY_NUMBER_WARN3";
35
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN4"] = 16] = "SEVERITY_NUMBER_WARN4";
36
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR"] = 17] = "SEVERITY_NUMBER_ERROR";
37
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR2"] = 18] = "SEVERITY_NUMBER_ERROR2";
38
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR3"] = 19] = "SEVERITY_NUMBER_ERROR3";
39
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR4"] = 20] = "SEVERITY_NUMBER_ERROR4";
40
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL"] = 21] = "SEVERITY_NUMBER_FATAL";
41
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL2"] = 22] = "SEVERITY_NUMBER_FATAL2";
42
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL3"] = 23] = "SEVERITY_NUMBER_FATAL3";
43
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL4"] = 24] = "SEVERITY_NUMBER_FATAL4";
44
- return SeverityNumber;
45
- }({});
46
- let AggregationTemporality = /* @__PURE__ */ function(AggregationTemporality) {
47
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_UNSPECIFIED"] = 0] = "AGGREGATION_TEMPORALITY_UNSPECIFIED";
48
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_DELTA"] = 1] = "AGGREGATION_TEMPORALITY_DELTA";
49
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_CUMULATIVE"] = 2] = "AGGREGATION_TEMPORALITY_CUMULATIVE";
50
- return AggregationTemporality;
51
- }({});
52
- //#endregion
53
- exports.AggregationTemporality = AggregationTemporality;
54
- exports.SeverityNumber = SeverityNumber;
55
- exports.SpanKind = SpanKind;
56
- exports.SpanStatusCode = SpanStatusCode;
1
+ const require_types = require('../types-Dsh-DIO_.cjs');
57
2
 
58
- //# sourceMappingURL=types.cjs.map
3
+ exports.AggregationTemporality = require_types.AggregationTemporality;
4
+ exports.SeverityNumber = require_types.SeverityNumber;
5
+ exports.SpanKind = require_types.SpanKind;
6
+ exports.SpanStatusCode = require_types.SpanStatusCode;
@@ -1,2 +1,2 @@
1
- import { A as ScopeLogs, B as Sum, C as LogRecord, D as ResourceLogs, E as Resource, F as SpanEvent, H as SummaryDataPoint, I as SpanKind, L as SpanLink, M as ScopeSpans, N as SeverityNumber, O as ResourceMetrics, P as Span, R as SpanStatus, S as KeyValueList, T as NumberDataPoint, U as ValueAtQuantile, V as Summary, _ as Gauge, a as Exemplar, b as InstrumentationScope, c as ExportLogsPartialSuccess, d as ExportMetricsPartialSuccess, f as ExportMetricsServiceRequest, g as ExportTraceServiceResponse, h as ExportTraceServiceRequest, i as Buckets, j as ScopeMetrics, k as ResourceSpans, l as ExportLogsServiceRequest, m as ExportTracePartialSuccess, n as AnyValue, o as ExponentialHistogram, p as ExportMetricsServiceResponse, r as ArrayValue, s as ExponentialHistogramDataPoint, t as AggregationTemporality, u as ExportLogsServiceResponse, v as Histogram, w as Metric, x as KeyValue, y as HistogramDataPoint, z as SpanStatusCode } from "../types-DVETVdpa.cjs";
1
+ import { AggregationTemporality, AnyValue, ArrayValue, Buckets, Exemplar, ExponentialHistogram, ExponentialHistogramDataPoint, ExportLogsPartialSuccess, ExportLogsServiceRequest, ExportLogsServiceResponse, ExportMetricsPartialSuccess, ExportMetricsServiceRequest, ExportMetricsServiceResponse, ExportTracePartialSuccess, ExportTraceServiceRequest, ExportTraceServiceResponse, Gauge, Histogram, HistogramDataPoint, InstrumentationScope, KeyValue, KeyValueList, LogRecord, Metric, NumberDataPoint, Resource, ResourceLogs, ResourceMetrics, ResourceSpans, ScopeLogs, ScopeMetrics, ScopeSpans, SeverityNumber, Span, SpanEvent, SpanKind, SpanLink, SpanStatus, SpanStatusCode, Sum, Summary, SummaryDataPoint, ValueAtQuantile } from "../types-CmOB7CLO.cjs";
2
2
  export { AggregationTemporality, AnyValue, ArrayValue, Buckets, Exemplar, ExponentialHistogram, ExponentialHistogramDataPoint, ExportLogsPartialSuccess, ExportLogsServiceRequest, ExportLogsServiceResponse, ExportMetricsPartialSuccess, ExportMetricsServiceRequest, ExportMetricsServiceResponse, ExportTracePartialSuccess, ExportTraceServiceRequest, ExportTraceServiceResponse, Gauge, Histogram, HistogramDataPoint, InstrumentationScope, KeyValue, KeyValueList, LogRecord, Metric, NumberDataPoint, Resource, ResourceLogs, ResourceMetrics, ResourceSpans, ScopeLogs, ScopeMetrics, ScopeSpans, SeverityNumber, Span, SpanEvent, SpanKind, SpanLink, SpanStatus, SpanStatusCode, Sum, Summary, SummaryDataPoint, ValueAtQuantile };
@@ -1,2 +1,2 @@
1
- import { A as ScopeLogs, B as Sum, C as LogRecord, D as ResourceLogs, E as Resource, F as SpanEvent, H as SummaryDataPoint, I as SpanKind, L as SpanLink, M as ScopeSpans, N as SeverityNumber, O as ResourceMetrics, P as Span, R as SpanStatus, S as KeyValueList, T as NumberDataPoint, U as ValueAtQuantile, V as Summary, _ as Gauge, a as Exemplar, b as InstrumentationScope, c as ExportLogsPartialSuccess, d as ExportMetricsPartialSuccess, f as ExportMetricsServiceRequest, g as ExportTraceServiceResponse, h as ExportTraceServiceRequest, i as Buckets, j as ScopeMetrics, k as ResourceSpans, l as ExportLogsServiceRequest, m as ExportTracePartialSuccess, n as AnyValue, o as ExponentialHistogram, p as ExportMetricsServiceResponse, r as ArrayValue, s as ExponentialHistogramDataPoint, t as AggregationTemporality, u as ExportLogsServiceResponse, v as Histogram, w as Metric, x as KeyValue, y as HistogramDataPoint, z as SpanStatusCode } from "../types-DVETVdpa.mjs";
1
+ import { AggregationTemporality, AnyValue, ArrayValue, Buckets, Exemplar, ExponentialHistogram, ExponentialHistogramDataPoint, ExportLogsPartialSuccess, ExportLogsServiceRequest, ExportLogsServiceResponse, ExportMetricsPartialSuccess, ExportMetricsServiceRequest, ExportMetricsServiceResponse, ExportTracePartialSuccess, ExportTraceServiceRequest, ExportTraceServiceResponse, Gauge, Histogram, HistogramDataPoint, InstrumentationScope, KeyValue, KeyValueList, LogRecord, Metric, NumberDataPoint, Resource, ResourceLogs, ResourceMetrics, ResourceSpans, ScopeLogs, ScopeMetrics, ScopeSpans, SeverityNumber, Span, SpanEvent, SpanKind, SpanLink, SpanStatus, SpanStatusCode, Sum, Summary, SummaryDataPoint, ValueAtQuantile } from "../types-DBc0q5KD.mjs";
2
2
  export { AggregationTemporality, AnyValue, ArrayValue, Buckets, Exemplar, ExponentialHistogram, ExponentialHistogramDataPoint, ExportLogsPartialSuccess, ExportLogsServiceRequest, ExportLogsServiceResponse, ExportMetricsPartialSuccess, ExportMetricsServiceRequest, ExportMetricsServiceResponse, ExportTracePartialSuccess, ExportTraceServiceRequest, ExportTraceServiceResponse, Gauge, Histogram, HistogramDataPoint, InstrumentationScope, KeyValue, KeyValueList, LogRecord, Metric, NumberDataPoint, Resource, ResourceLogs, ResourceMetrics, ResourceSpans, ScopeLogs, ScopeMetrics, ScopeSpans, SeverityNumber, Span, SpanEvent, SpanKind, SpanLink, SpanStatus, SpanStatusCode, Sum, Summary, SummaryDataPoint, ValueAtQuantile };
@@ -1,54 +1,3 @@
1
- //#region src/otlp/types.ts
2
- let SpanKind = /* @__PURE__ */ function(SpanKind) {
3
- SpanKind[SpanKind["SPAN_KIND_UNSPECIFIED"] = 0] = "SPAN_KIND_UNSPECIFIED";
4
- SpanKind[SpanKind["SPAN_KIND_INTERNAL"] = 1] = "SPAN_KIND_INTERNAL";
5
- SpanKind[SpanKind["SPAN_KIND_SERVER"] = 2] = "SPAN_KIND_SERVER";
6
- SpanKind[SpanKind["SPAN_KIND_CLIENT"] = 3] = "SPAN_KIND_CLIENT";
7
- SpanKind[SpanKind["SPAN_KIND_PRODUCER"] = 4] = "SPAN_KIND_PRODUCER";
8
- SpanKind[SpanKind["SPAN_KIND_CONSUMER"] = 5] = "SPAN_KIND_CONSUMER";
9
- return SpanKind;
10
- }({});
11
- let SpanStatusCode = /* @__PURE__ */ function(SpanStatusCode) {
12
- SpanStatusCode[SpanStatusCode["STATUS_CODE_UNSET"] = 0] = "STATUS_CODE_UNSET";
13
- SpanStatusCode[SpanStatusCode["STATUS_CODE_OK"] = 1] = "STATUS_CODE_OK";
14
- SpanStatusCode[SpanStatusCode["STATUS_CODE_ERROR"] = 2] = "STATUS_CODE_ERROR";
15
- return SpanStatusCode;
16
- }({});
17
- let SeverityNumber = /* @__PURE__ */ function(SeverityNumber) {
18
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_UNSPECIFIED"] = 0] = "SEVERITY_NUMBER_UNSPECIFIED";
19
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE"] = 1] = "SEVERITY_NUMBER_TRACE";
20
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE2"] = 2] = "SEVERITY_NUMBER_TRACE2";
21
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE3"] = 3] = "SEVERITY_NUMBER_TRACE3";
22
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_TRACE4"] = 4] = "SEVERITY_NUMBER_TRACE4";
23
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG"] = 5] = "SEVERITY_NUMBER_DEBUG";
24
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG2"] = 6] = "SEVERITY_NUMBER_DEBUG2";
25
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG3"] = 7] = "SEVERITY_NUMBER_DEBUG3";
26
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_DEBUG4"] = 8] = "SEVERITY_NUMBER_DEBUG4";
27
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO"] = 9] = "SEVERITY_NUMBER_INFO";
28
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO2"] = 10] = "SEVERITY_NUMBER_INFO2";
29
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO3"] = 11] = "SEVERITY_NUMBER_INFO3";
30
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_INFO4"] = 12] = "SEVERITY_NUMBER_INFO4";
31
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN"] = 13] = "SEVERITY_NUMBER_WARN";
32
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN2"] = 14] = "SEVERITY_NUMBER_WARN2";
33
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN3"] = 15] = "SEVERITY_NUMBER_WARN3";
34
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_WARN4"] = 16] = "SEVERITY_NUMBER_WARN4";
35
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR"] = 17] = "SEVERITY_NUMBER_ERROR";
36
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR2"] = 18] = "SEVERITY_NUMBER_ERROR2";
37
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR3"] = 19] = "SEVERITY_NUMBER_ERROR3";
38
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_ERROR4"] = 20] = "SEVERITY_NUMBER_ERROR4";
39
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL"] = 21] = "SEVERITY_NUMBER_FATAL";
40
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL2"] = 22] = "SEVERITY_NUMBER_FATAL2";
41
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL3"] = 23] = "SEVERITY_NUMBER_FATAL3";
42
- SeverityNumber[SeverityNumber["SEVERITY_NUMBER_FATAL4"] = 24] = "SEVERITY_NUMBER_FATAL4";
43
- return SeverityNumber;
44
- }({});
45
- let AggregationTemporality = /* @__PURE__ */ function(AggregationTemporality) {
46
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_UNSPECIFIED"] = 0] = "AGGREGATION_TEMPORALITY_UNSPECIFIED";
47
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_DELTA"] = 1] = "AGGREGATION_TEMPORALITY_DELTA";
48
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_CUMULATIVE"] = 2] = "AGGREGATION_TEMPORALITY_CUMULATIVE";
49
- return AggregationTemporality;
50
- }({});
51
- //#endregion
52
- export { AggregationTemporality, SeverityNumber, SpanKind, SpanStatusCode };
1
+ import { AggregationTemporality, SeverityNumber, SpanKind, SpanStatusCode } from "../types-Bwm_jNU7.mjs";
53
2
 
54
- //# sourceMappingURL=types.mjs.map
3
+ export { AggregationTemporality, SeverityNumber, SpanKind, SpanStatusCode };
@@ -0,0 +1,94 @@
1
+ const require_transformer = require('./transformer-CLGZ0EQc.cjs');
2
+
3
+ //#region src/otlp/receiver.ts
4
+ /**
5
+ * OTLP Receiver for ingesting OpenTelemetry data into Telescope.
6
+ *
7
+ * Supports the OTLP/JSON protocol for:
8
+ * - Traces (POST /v1/traces) - HTTP server spans become RequestEntries
9
+ * - Logs (POST /v1/logs) - Log records become LogEntries
10
+ * - Metrics (POST /v1/metrics) - Metrics can be forwarded to custom handlers
11
+ */
12
+ var OTLPReceiver = class {
13
+ telescope;
14
+ onMetrics;
15
+ logMetrics;
16
+ constructor(options) {
17
+ this.telescope = options.telescope;
18
+ this.onMetrics = options.onMetrics;
19
+ this.logMetrics = options.logMetrics ?? false;
20
+ }
21
+ /**
22
+ * Handle incoming trace data
23
+ * Transforms HTTP server spans to Telescope request entries
24
+ */
25
+ async receiveTraces(request) {
26
+ const entries = require_transformer.transformTraces(request);
27
+ let rejected = 0;
28
+ for (const entry of entries) try {
29
+ await this.telescope.recordRequest(entry);
30
+ } catch {
31
+ rejected++;
32
+ }
33
+ return rejected > 0 ? { partialSuccess: { rejectedSpans: String(rejected) } } : {};
34
+ }
35
+ /**
36
+ * Handle incoming log data
37
+ * Transforms OTLP log records to Telescope log entries
38
+ */
39
+ async receiveLogs(request) {
40
+ const entries = require_transformer.transformLogs(request);
41
+ let rejected = 0;
42
+ const batchEntries = entries.map((entry) => ({
43
+ level: entry.level,
44
+ message: entry.message,
45
+ context: entry.context,
46
+ requestId: entry.requestId
47
+ }));
48
+ try {
49
+ await this.telescope.log(batchEntries);
50
+ } catch {
51
+ rejected = entries.length;
52
+ }
53
+ return rejected > 0 ? { partialSuccess: { rejectedLogRecords: String(rejected) } } : {};
54
+ }
55
+ /**
56
+ * Handle incoming metrics data
57
+ * Forwards to custom handler and optionally logs to Telescope
58
+ */
59
+ async receiveMetrics(request) {
60
+ const points = require_transformer.transformMetrics(request);
61
+ let rejected = 0;
62
+ if (this.onMetrics) try {
63
+ await this.onMetrics(points);
64
+ } catch {
65
+ rejected = points.length;
66
+ }
67
+ if (this.logMetrics && points.length > 0) {
68
+ const logEntries = points.map((point) => ({
69
+ level: "debug",
70
+ message: `OTLP Metric: ${point.name}`,
71
+ context: {
72
+ name: point.name,
73
+ value: point.value,
74
+ type: point.type,
75
+ unit: point.unit,
76
+ attributes: point.attributes
77
+ }
78
+ }));
79
+ try {
80
+ await this.telescope.log(logEntries);
81
+ } catch {}
82
+ }
83
+ return rejected > 0 ? { partialSuccess: { rejectedDataPoints: String(rejected) } } : {};
84
+ }
85
+ };
86
+
87
+ //#endregion
88
+ Object.defineProperty(exports, 'OTLPReceiver', {
89
+ enumerable: true,
90
+ get: function () {
91
+ return OTLPReceiver;
92
+ }
93
+ });
94
+ //# sourceMappingURL=receiver-Cj1lbAOO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver-Cj1lbAOO.cjs","names":["options: OTLPReceiverOptions","request: ExportTraceServiceRequest","request: ExportLogsServiceRequest","request: ExportMetricsServiceRequest"],"sources":["../src/otlp/receiver.ts"],"sourcesContent":["import type { Telescope } from '../Telescope';\nimport {\n\ttype MetricDataPoint,\n\ttransformLogs,\n\ttransformMetrics,\n\ttransformTraces,\n} from './transformer';\nimport type {\n\tExportLogsServiceRequest,\n\tExportLogsServiceResponse,\n\tExportMetricsServiceRequest,\n\tExportMetricsServiceResponse,\n\tExportTraceServiceRequest,\n\tExportTraceServiceResponse,\n} from './types';\n\n/**\n * Callback for handling OTLP metrics\n */\nexport type MetricsHandler = (\n\tpoints: MetricDataPoint[],\n) => void | Promise<void>;\n\n/**\n * Options for OTLPReceiver\n */\nexport interface OTLPReceiverOptions {\n\t/**\n\t * The Telescope instance to record data to\n\t */\n\ttelescope: Telescope;\n\n\t/**\n\t * Optional callback for handling OTLP metrics.\n\t * OTLP metrics are more granular than Telescope's request metrics,\n\t * so a custom handler allows integration with metrics systems like Prometheus.\n\t */\n\tonMetrics?: MetricsHandler;\n\n\t/**\n\t * Whether to also log OTLP metrics to Telescope as log entries.\n\t * Useful for debugging OTLP integration. Default: false\n\t */\n\tlogMetrics?: boolean;\n}\n\n/**\n * OTLP Receiver for ingesting OpenTelemetry data into Telescope.\n *\n * Supports the OTLP/JSON protocol for:\n * - Traces (POST /v1/traces) - HTTP server spans become RequestEntries\n * - Logs (POST /v1/logs) - Log records become LogEntries\n * - Metrics (POST /v1/metrics) - Metrics can be forwarded to custom handlers\n */\nexport class OTLPReceiver {\n\tprivate telescope: Telescope;\n\tprivate onMetrics?: MetricsHandler;\n\tprivate logMetrics: boolean;\n\n\tconstructor(options: OTLPReceiverOptions) {\n\t\tthis.telescope = options.telescope;\n\t\tthis.onMetrics = options.onMetrics;\n\t\tthis.logMetrics = options.logMetrics ?? false;\n\t}\n\n\t/**\n\t * Handle incoming trace data\n\t * Transforms HTTP server spans to Telescope request entries\n\t */\n\tasync receiveTraces(\n\t\trequest: ExportTraceServiceRequest,\n\t): Promise<ExportTraceServiceResponse> {\n\t\tconst entries = transformTraces(request);\n\t\tlet rejected = 0;\n\n\t\tfor (const entry of entries) {\n\t\t\ttry {\n\t\t\t\tawait this.telescope.recordRequest(entry);\n\t\t\t} catch {\n\t\t\t\trejected++;\n\t\t\t}\n\t\t}\n\n\t\treturn rejected > 0\n\t\t\t? { partialSuccess: { rejectedSpans: String(rejected) } }\n\t\t\t: {};\n\t}\n\n\t/**\n\t * Handle incoming log data\n\t * Transforms OTLP log records to Telescope log entries\n\t */\n\tasync receiveLogs(\n\t\trequest: ExportLogsServiceRequest,\n\t): Promise<ExportLogsServiceResponse> {\n\t\tconst entries = transformLogs(request);\n\t\tlet rejected = 0;\n\n\t\t// Batch log entries for efficiency\n\t\tconst batchEntries = entries.map((entry) => ({\n\t\t\tlevel: entry.level,\n\t\t\tmessage: entry.message,\n\t\t\tcontext: entry.context,\n\t\t\trequestId: entry.requestId,\n\t\t}));\n\n\t\ttry {\n\t\t\tawait this.telescope.log(batchEntries);\n\t\t} catch {\n\t\t\trejected = entries.length;\n\t\t}\n\n\t\treturn rejected > 0\n\t\t\t? { partialSuccess: { rejectedLogRecords: String(rejected) } }\n\t\t\t: {};\n\t}\n\n\t/**\n\t * Handle incoming metrics data\n\t * Forwards to custom handler and optionally logs to Telescope\n\t */\n\tasync receiveMetrics(\n\t\trequest: ExportMetricsServiceRequest,\n\t): Promise<ExportMetricsServiceResponse> {\n\t\tconst points = transformMetrics(request);\n\t\tlet rejected = 0;\n\n\t\t// Forward to custom metrics handler\n\t\tif (this.onMetrics) {\n\t\t\ttry {\n\t\t\t\tawait this.onMetrics(points);\n\t\t\t} catch {\n\t\t\t\trejected = points.length;\n\t\t\t}\n\t\t}\n\n\t\t// Optionally log metrics to Telescope for debugging\n\t\tif (this.logMetrics && points.length > 0) {\n\t\t\tconst logEntries = points.map((point) => ({\n\t\t\t\tlevel: 'debug' as const,\n\t\t\t\tmessage: `OTLP Metric: ${point.name}`,\n\t\t\t\tcontext: {\n\t\t\t\t\tname: point.name,\n\t\t\t\t\tvalue: point.value,\n\t\t\t\t\ttype: point.type,\n\t\t\t\t\tunit: point.unit,\n\t\t\t\t\tattributes: point.attributes,\n\t\t\t\t},\n\t\t\t}));\n\n\t\t\ttry {\n\t\t\t\tawait this.telescope.log(logEntries);\n\t\t\t} catch {\n\t\t\t\t// Ignore logging errors\n\t\t\t}\n\t\t}\n\n\t\treturn rejected > 0\n\t\t\t? { partialSuccess: { rejectedDataPoints: String(rejected) } }\n\t\t\t: {};\n\t}\n}\n"],"mappings":";;;;;;;;;;;AAsDA,IAAa,eAAb,MAA0B;CACzB,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YAAYA,SAA8B;AACzC,OAAK,YAAY,QAAQ;AACzB,OAAK,YAAY,QAAQ;AACzB,OAAK,aAAa,QAAQ,cAAc;CACxC;;;;;CAMD,MAAM,cACLC,SACsC;EACtC,MAAM,UAAU,oCAAgB,QAAQ;EACxC,IAAI,WAAW;AAEf,OAAK,MAAM,SAAS,QACnB,KAAI;AACH,SAAM,KAAK,UAAU,cAAc,MAAM;EACzC,QAAO;AACP;EACA;AAGF,SAAO,WAAW,IACf,EAAE,gBAAgB,EAAE,eAAe,OAAO,SAAS,CAAE,EAAE,IACvD,CAAE;CACL;;;;;CAMD,MAAM,YACLC,SACqC;EACrC,MAAM,UAAU,kCAAc,QAAQ;EACtC,IAAI,WAAW;EAGf,MAAM,eAAe,QAAQ,IAAI,CAAC,WAAW;GAC5C,OAAO,MAAM;GACb,SAAS,MAAM;GACf,SAAS,MAAM;GACf,WAAW,MAAM;EACjB,GAAE;AAEH,MAAI;AACH,SAAM,KAAK,UAAU,IAAI,aAAa;EACtC,QAAO;AACP,cAAW,QAAQ;EACnB;AAED,SAAO,WAAW,IACf,EAAE,gBAAgB,EAAE,oBAAoB,OAAO,SAAS,CAAE,EAAE,IAC5D,CAAE;CACL;;;;;CAMD,MAAM,eACLC,SACwC;EACxC,MAAM,SAAS,qCAAiB,QAAQ;EACxC,IAAI,WAAW;AAGf,MAAI,KAAK,UACR,KAAI;AACH,SAAM,KAAK,UAAU,OAAO;EAC5B,QAAO;AACP,cAAW,OAAO;EAClB;AAIF,MAAI,KAAK,cAAc,OAAO,SAAS,GAAG;GACzC,MAAM,aAAa,OAAO,IAAI,CAAC,WAAW;IACzC,OAAO;IACP,UAAU,eAAe,MAAM,KAAK;IACpC,SAAS;KACR,MAAM,MAAM;KACZ,OAAO,MAAM;KACb,MAAM,MAAM;KACZ,MAAM,MAAM;KACZ,YAAY,MAAM;IAClB;GACD,GAAE;AAEH,OAAI;AACH,UAAM,KAAK,UAAU,IAAI,WAAW;GACpC,QAAO,CAEP;EACD;AAED,SAAO,WAAW,IACf,EAAE,gBAAgB,EAAE,oBAAoB,OAAO,SAAS,CAAE,EAAE,IAC5D,CAAE;CACL;AACD"}
@@ -0,0 +1,89 @@
1
+ import { transformLogs, transformMetrics, transformTraces } from "./transformer-BXQPhzql.mjs";
2
+
3
+ //#region src/otlp/receiver.ts
4
+ /**
5
+ * OTLP Receiver for ingesting OpenTelemetry data into Telescope.
6
+ *
7
+ * Supports the OTLP/JSON protocol for:
8
+ * - Traces (POST /v1/traces) - HTTP server spans become RequestEntries
9
+ * - Logs (POST /v1/logs) - Log records become LogEntries
10
+ * - Metrics (POST /v1/metrics) - Metrics can be forwarded to custom handlers
11
+ */
12
+ var OTLPReceiver = class {
13
+ telescope;
14
+ onMetrics;
15
+ logMetrics;
16
+ constructor(options) {
17
+ this.telescope = options.telescope;
18
+ this.onMetrics = options.onMetrics;
19
+ this.logMetrics = options.logMetrics ?? false;
20
+ }
21
+ /**
22
+ * Handle incoming trace data
23
+ * Transforms HTTP server spans to Telescope request entries
24
+ */
25
+ async receiveTraces(request) {
26
+ const entries = transformTraces(request);
27
+ let rejected = 0;
28
+ for (const entry of entries) try {
29
+ await this.telescope.recordRequest(entry);
30
+ } catch {
31
+ rejected++;
32
+ }
33
+ return rejected > 0 ? { partialSuccess: { rejectedSpans: String(rejected) } } : {};
34
+ }
35
+ /**
36
+ * Handle incoming log data
37
+ * Transforms OTLP log records to Telescope log entries
38
+ */
39
+ async receiveLogs(request) {
40
+ const entries = transformLogs(request);
41
+ let rejected = 0;
42
+ const batchEntries = entries.map((entry) => ({
43
+ level: entry.level,
44
+ message: entry.message,
45
+ context: entry.context,
46
+ requestId: entry.requestId
47
+ }));
48
+ try {
49
+ await this.telescope.log(batchEntries);
50
+ } catch {
51
+ rejected = entries.length;
52
+ }
53
+ return rejected > 0 ? { partialSuccess: { rejectedLogRecords: String(rejected) } } : {};
54
+ }
55
+ /**
56
+ * Handle incoming metrics data
57
+ * Forwards to custom handler and optionally logs to Telescope
58
+ */
59
+ async receiveMetrics(request) {
60
+ const points = transformMetrics(request);
61
+ let rejected = 0;
62
+ if (this.onMetrics) try {
63
+ await this.onMetrics(points);
64
+ } catch {
65
+ rejected = points.length;
66
+ }
67
+ if (this.logMetrics && points.length > 0) {
68
+ const logEntries = points.map((point) => ({
69
+ level: "debug",
70
+ message: `OTLP Metric: ${point.name}`,
71
+ context: {
72
+ name: point.name,
73
+ value: point.value,
74
+ type: point.type,
75
+ unit: point.unit,
76
+ attributes: point.attributes
77
+ }
78
+ }));
79
+ try {
80
+ await this.telescope.log(logEntries);
81
+ } catch {}
82
+ }
83
+ return rejected > 0 ? { partialSuccess: { rejectedDataPoints: String(rejected) } } : {};
84
+ }
85
+ };
86
+
87
+ //#endregion
88
+ export { OTLPReceiver };
89
+ //# sourceMappingURL=receiver-CxVd_9CB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver-CxVd_9CB.mjs","names":["options: OTLPReceiverOptions","request: ExportTraceServiceRequest","request: ExportLogsServiceRequest","request: ExportMetricsServiceRequest"],"sources":["../src/otlp/receiver.ts"],"sourcesContent":["import type { Telescope } from '../Telescope';\nimport {\n\ttype MetricDataPoint,\n\ttransformLogs,\n\ttransformMetrics,\n\ttransformTraces,\n} from './transformer';\nimport type {\n\tExportLogsServiceRequest,\n\tExportLogsServiceResponse,\n\tExportMetricsServiceRequest,\n\tExportMetricsServiceResponse,\n\tExportTraceServiceRequest,\n\tExportTraceServiceResponse,\n} from './types';\n\n/**\n * Callback for handling OTLP metrics\n */\nexport type MetricsHandler = (\n\tpoints: MetricDataPoint[],\n) => void | Promise<void>;\n\n/**\n * Options for OTLPReceiver\n */\nexport interface OTLPReceiverOptions {\n\t/**\n\t * The Telescope instance to record data to\n\t */\n\ttelescope: Telescope;\n\n\t/**\n\t * Optional callback for handling OTLP metrics.\n\t * OTLP metrics are more granular than Telescope's request metrics,\n\t * so a custom handler allows integration with metrics systems like Prometheus.\n\t */\n\tonMetrics?: MetricsHandler;\n\n\t/**\n\t * Whether to also log OTLP metrics to Telescope as log entries.\n\t * Useful for debugging OTLP integration. Default: false\n\t */\n\tlogMetrics?: boolean;\n}\n\n/**\n * OTLP Receiver for ingesting OpenTelemetry data into Telescope.\n *\n * Supports the OTLP/JSON protocol for:\n * - Traces (POST /v1/traces) - HTTP server spans become RequestEntries\n * - Logs (POST /v1/logs) - Log records become LogEntries\n * - Metrics (POST /v1/metrics) - Metrics can be forwarded to custom handlers\n */\nexport class OTLPReceiver {\n\tprivate telescope: Telescope;\n\tprivate onMetrics?: MetricsHandler;\n\tprivate logMetrics: boolean;\n\n\tconstructor(options: OTLPReceiverOptions) {\n\t\tthis.telescope = options.telescope;\n\t\tthis.onMetrics = options.onMetrics;\n\t\tthis.logMetrics = options.logMetrics ?? false;\n\t}\n\n\t/**\n\t * Handle incoming trace data\n\t * Transforms HTTP server spans to Telescope request entries\n\t */\n\tasync receiveTraces(\n\t\trequest: ExportTraceServiceRequest,\n\t): Promise<ExportTraceServiceResponse> {\n\t\tconst entries = transformTraces(request);\n\t\tlet rejected = 0;\n\n\t\tfor (const entry of entries) {\n\t\t\ttry {\n\t\t\t\tawait this.telescope.recordRequest(entry);\n\t\t\t} catch {\n\t\t\t\trejected++;\n\t\t\t}\n\t\t}\n\n\t\treturn rejected > 0\n\t\t\t? { partialSuccess: { rejectedSpans: String(rejected) } }\n\t\t\t: {};\n\t}\n\n\t/**\n\t * Handle incoming log data\n\t * Transforms OTLP log records to Telescope log entries\n\t */\n\tasync receiveLogs(\n\t\trequest: ExportLogsServiceRequest,\n\t): Promise<ExportLogsServiceResponse> {\n\t\tconst entries = transformLogs(request);\n\t\tlet rejected = 0;\n\n\t\t// Batch log entries for efficiency\n\t\tconst batchEntries = entries.map((entry) => ({\n\t\t\tlevel: entry.level,\n\t\t\tmessage: entry.message,\n\t\t\tcontext: entry.context,\n\t\t\trequestId: entry.requestId,\n\t\t}));\n\n\t\ttry {\n\t\t\tawait this.telescope.log(batchEntries);\n\t\t} catch {\n\t\t\trejected = entries.length;\n\t\t}\n\n\t\treturn rejected > 0\n\t\t\t? { partialSuccess: { rejectedLogRecords: String(rejected) } }\n\t\t\t: {};\n\t}\n\n\t/**\n\t * Handle incoming metrics data\n\t * Forwards to custom handler and optionally logs to Telescope\n\t */\n\tasync receiveMetrics(\n\t\trequest: ExportMetricsServiceRequest,\n\t): Promise<ExportMetricsServiceResponse> {\n\t\tconst points = transformMetrics(request);\n\t\tlet rejected = 0;\n\n\t\t// Forward to custom metrics handler\n\t\tif (this.onMetrics) {\n\t\t\ttry {\n\t\t\t\tawait this.onMetrics(points);\n\t\t\t} catch {\n\t\t\t\trejected = points.length;\n\t\t\t}\n\t\t}\n\n\t\t// Optionally log metrics to Telescope for debugging\n\t\tif (this.logMetrics && points.length > 0) {\n\t\t\tconst logEntries = points.map((point) => ({\n\t\t\t\tlevel: 'debug' as const,\n\t\t\t\tmessage: `OTLP Metric: ${point.name}`,\n\t\t\t\tcontext: {\n\t\t\t\t\tname: point.name,\n\t\t\t\t\tvalue: point.value,\n\t\t\t\t\ttype: point.type,\n\t\t\t\t\tunit: point.unit,\n\t\t\t\t\tattributes: point.attributes,\n\t\t\t\t},\n\t\t\t}));\n\n\t\t\ttry {\n\t\t\t\tawait this.telescope.log(logEntries);\n\t\t\t} catch {\n\t\t\t\t// Ignore logging errors\n\t\t\t}\n\t\t}\n\n\t\treturn rejected > 0\n\t\t\t? { partialSuccess: { rejectedDataPoints: String(rejected) } }\n\t\t\t: {};\n\t}\n}\n"],"mappings":";;;;;;;;;;;AAsDA,IAAa,eAAb,MAA0B;CACzB,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YAAYA,SAA8B;AACzC,OAAK,YAAY,QAAQ;AACzB,OAAK,YAAY,QAAQ;AACzB,OAAK,aAAa,QAAQ,cAAc;CACxC;;;;;CAMD,MAAM,cACLC,SACsC;EACtC,MAAM,UAAU,gBAAgB,QAAQ;EACxC,IAAI,WAAW;AAEf,OAAK,MAAM,SAAS,QACnB,KAAI;AACH,SAAM,KAAK,UAAU,cAAc,MAAM;EACzC,QAAO;AACP;EACA;AAGF,SAAO,WAAW,IACf,EAAE,gBAAgB,EAAE,eAAe,OAAO,SAAS,CAAE,EAAE,IACvD,CAAE;CACL;;;;;CAMD,MAAM,YACLC,SACqC;EACrC,MAAM,UAAU,cAAc,QAAQ;EACtC,IAAI,WAAW;EAGf,MAAM,eAAe,QAAQ,IAAI,CAAC,WAAW;GAC5C,OAAO,MAAM;GACb,SAAS,MAAM;GACf,SAAS,MAAM;GACf,WAAW,MAAM;EACjB,GAAE;AAEH,MAAI;AACH,SAAM,KAAK,UAAU,IAAI,aAAa;EACtC,QAAO;AACP,cAAW,QAAQ;EACnB;AAED,SAAO,WAAW,IACf,EAAE,gBAAgB,EAAE,oBAAoB,OAAO,SAAS,CAAE,EAAE,IAC5D,CAAE;CACL;;;;;CAMD,MAAM,eACLC,SACwC;EACxC,MAAM,SAAS,iBAAiB,QAAQ;EACxC,IAAI,WAAW;AAGf,MAAI,KAAK,UACR,KAAI;AACH,SAAM,KAAK,UAAU,OAAO;EAC5B,QAAO;AACP,cAAW,OAAO;EAClB;AAIF,MAAI,KAAK,cAAc,OAAO,SAAS,GAAG;GACzC,MAAM,aAAa,OAAO,IAAI,CAAC,WAAW;IACzC,OAAO;IACP,UAAU,eAAe,MAAM,KAAK;IACpC,SAAS;KACR,MAAM,MAAM;KACZ,OAAO,MAAM;KACb,MAAM,MAAM;KACZ,MAAM,MAAM;KACZ,YAAY,MAAM;IAClB;GACD,GAAE;AAEH,OAAI;AACH,UAAM,KAAK,UAAU,IAAI,WAAW;GACpC,QAAO,CAEP;EACD;AAED,SAAO,WAAW,IACf,EAAE,gBAAgB,EAAE,oBAAoB,OAAO,SAAS,CAAE,EAAE,IAC5D,CAAE;CACL;AACD"}
@@ -0,0 +1,63 @@
1
+ import { Telescope } from "./Telescope-D4nmwDRA.cjs";
2
+ import { ExportLogsServiceRequest, ExportLogsServiceResponse, ExportMetricsServiceRequest, ExportMetricsServiceResponse, ExportTraceServiceRequest, ExportTraceServiceResponse } from "./types-CmOB7CLO.cjs";
3
+ import { MetricDataPoint } from "./transformer-ICEbxpFf.cjs";
4
+
5
+ //#region src/otlp/receiver.d.ts
6
+
7
+ /**
8
+ * Callback for handling OTLP metrics
9
+ */
10
+ type MetricsHandler = (points: MetricDataPoint[]) => void | Promise<void>;
11
+ /**
12
+ * Options for OTLPReceiver
13
+ */
14
+ interface OTLPReceiverOptions {
15
+ /**
16
+ * The Telescope instance to record data to
17
+ */
18
+ telescope: Telescope;
19
+ /**
20
+ * Optional callback for handling OTLP metrics.
21
+ * OTLP metrics are more granular than Telescope's request metrics,
22
+ * so a custom handler allows integration with metrics systems like Prometheus.
23
+ */
24
+ onMetrics?: MetricsHandler;
25
+ /**
26
+ * Whether to also log OTLP metrics to Telescope as log entries.
27
+ * Useful for debugging OTLP integration. Default: false
28
+ */
29
+ logMetrics?: boolean;
30
+ }
31
+ /**
32
+ * OTLP Receiver for ingesting OpenTelemetry data into Telescope.
33
+ *
34
+ * Supports the OTLP/JSON protocol for:
35
+ * - Traces (POST /v1/traces) - HTTP server spans become RequestEntries
36
+ * - Logs (POST /v1/logs) - Log records become LogEntries
37
+ * - Metrics (POST /v1/metrics) - Metrics can be forwarded to custom handlers
38
+ */
39
+ declare class OTLPReceiver {
40
+ private telescope;
41
+ private onMetrics?;
42
+ private logMetrics;
43
+ constructor(options: OTLPReceiverOptions);
44
+ /**
45
+ * Handle incoming trace data
46
+ * Transforms HTTP server spans to Telescope request entries
47
+ */
48
+ receiveTraces(request: ExportTraceServiceRequest): Promise<ExportTraceServiceResponse>;
49
+ /**
50
+ * Handle incoming log data
51
+ * Transforms OTLP log records to Telescope log entries
52
+ */
53
+ receiveLogs(request: ExportLogsServiceRequest): Promise<ExportLogsServiceResponse>;
54
+ /**
55
+ * Handle incoming metrics data
56
+ * Forwards to custom handler and optionally logs to Telescope
57
+ */
58
+ receiveMetrics(request: ExportMetricsServiceRequest): Promise<ExportMetricsServiceResponse>;
59
+ }
60
+ //# sourceMappingURL=receiver.d.ts.map
61
+ //#endregion
62
+ export { MetricsHandler, OTLPReceiver, OTLPReceiverOptions };
63
+ //# sourceMappingURL=receiver-DLICx5uU.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver-DLICx5uU.d.cts","names":[],"sources":["../src/otlp/receiver.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAmBA;AAA0B,KAAd,cAAA,GAAc,CAAA,MAAA,EACjB,eADiB,EAAA,EAAA,GAAA,IAAA,GAEd,OAFc,CAAA,IAAA,CAAA;;;AAEP;AAKF,UAAA,mBAAA,CAAmB;EAAA;;;EAWT,SAAA,EAPf,SAOe;EAiBd;;;;;EAiByB,SAAlC,CAAA,EAlCS,cAkCT;EAAO;;;;EAmD2B,UAC1B,CAAA,EAAA,OAAA;;AAAD;;;;;;;;cArEE,YAAA;;;;uBAKS;;;;;yBAWX,4BACP,QAAQ;;;;;uBAsBD,2BACP,QAAQ;;;;;0BA4BD,8BACP,QAAQ"}