@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,165 +1,7 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_instrumentation_http = require("./http.cjs");
3
- const require_instrumentation_trust = require("./trust.cjs");
4
- let _opentelemetry_api = require("@opentelemetry/api");
5
- //#region src/instrumentation/middleware.ts
6
- const SPAN_SYMBOL = Symbol("telemetry.span");
7
- const CONTEXT_SYMBOL = Symbol("telemetry.context");
8
- /**
9
- * Get the current span from the Lambda event
10
- */
11
- function getSpanFromEvent(event) {
12
- return event?.[SPAN_SYMBOL];
13
- }
14
- /**
15
- * Get the current trace context from the Lambda event
16
- */
17
- function getContextFromEvent(event) {
18
- return event?.[CONTEXT_SYMBOL];
19
- }
20
- /**
21
- * Create a telemetry middleware for Lambda handlers
22
- *
23
- * @example
24
- * ```typescript
25
- * import { telemetryMiddleware } from '@geekmidas/telescope/instrumentation';
26
- *
27
- * const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
28
- * telemetry: { middleware: telemetryMiddleware() },
29
- * });
30
- * ```
31
- */
32
- function telemetryMiddleware(options = {}) {
33
- return {
34
- before: async (request) => {
35
- if (options.shouldSkip?.(request.event)) return;
36
- const event = request.event;
37
- const lambdaContext = request.context;
38
- const headers = normalizeHeaders(event.headers || {});
39
- const trusted = require_instrumentation_trust.isTrustedOrigin(typeof headers.origin === "string" ? headers.origin : void 0, options.trustedOrigins) || Boolean(options.trustRequest?.(event));
40
- const { parent: parentContext, links } = require_instrumentation_http.incomingTraceContext(headers, trusted);
41
- const attrs = buildSpanAttributes(event, lambdaContext, options);
42
- const span = require_instrumentation_http.createHttpServerSpan(attrs, parentContext, links);
43
- event[SPAN_SYMBOL] = span;
44
- event[CONTEXT_SYMBOL] = _opentelemetry_api.trace.setSpan(parentContext, span);
45
- span.setAttribute("faas.invocation_id", lambdaContext.awsRequestId);
46
- span.setAttribute("faas.name", lambdaContext.functionName);
47
- if (options.recordBody && event.body) {
48
- const bodyStr = typeof event.body === "string" ? event.body : JSON.stringify(event.body);
49
- span.setAttribute("http.request.body", bodyStr.length > 4096 ? `${bodyStr.slice(0, 4096)}...` : bodyStr);
50
- }
51
- },
52
- after: async (request) => {
53
- const span = getSpanFromEvent(request.event);
54
- if (!span) return;
55
- const response = request.response;
56
- const statusCode = typeof response?.statusCode === "number" ? response.statusCode : 200;
57
- if (options.recordResponseBody && response?.body) {
58
- const bodyStr = typeof response.body === "string" ? response.body : JSON.stringify(response.body);
59
- span.setAttribute("http.response.body", bodyStr.length > 4096 ? `${bodyStr.slice(0, 4096)}...` : bodyStr);
60
- }
61
- require_instrumentation_http.endHttpSpan(span, { statusCode });
62
- },
63
- onError: async (request) => {
64
- const span = getSpanFromEvent(request.event);
65
- if (!span) return;
66
- const error = request.error;
67
- const response = request.response;
68
- let statusCode = 500;
69
- if (response?.statusCode) statusCode = response.statusCode;
70
- else if (error && "statusCode" in error) statusCode = error.statusCode;
71
- require_instrumentation_http.endHttpSpan(span, { statusCode }, error instanceof Error ? error : new Error(String(error)));
72
- }
73
- };
74
- }
75
- /**
76
- * Build span attributes from Lambda event
77
- */
78
- function buildSpanAttributes(event, lambdaContext, options) {
79
- const isV2 = "requestContext" in event && "http" in (event.requestContext || {});
80
- const isV1 = "requestContext" in event && "httpMethod" in event && !("http" in (event.requestContext || {}));
81
- let method = "INVOKE";
82
- let path = "/";
83
- let route;
84
- let host;
85
- let scheme;
86
- let userAgent;
87
- let clientIp;
88
- let requestId;
89
- if (isV2) {
90
- const http = event.requestContext.http;
91
- method = http.method;
92
- path = event.rawPath || http.path;
93
- route = event.routeKey?.replace(/^[A-Z]+\s+/, "");
94
- host = event.headers?.host;
95
- scheme = "https";
96
- userAgent = http.userAgent;
97
- clientIp = http.sourceIp;
98
- requestId = event.requestContext.requestId;
99
- } else if (isV1) {
100
- method = event.httpMethod;
101
- path = event.path;
102
- route = event.resource;
103
- host = event.headers?.Host || event.headers?.host;
104
- scheme = "https";
105
- userAgent = event.headers?.["User-Agent"] || event.headers?.["user-agent"];
106
- clientIp = event.requestContext?.identity?.sourceIp;
107
- requestId = event.requestContext?.requestId;
108
- } else if ("httpMethod" in event) {
109
- method = event.httpMethod;
110
- path = event.path;
111
- host = event.headers?.host;
112
- userAgent = event.headers?.["user-agent"] || event.headers?.["User-Agent"];
113
- clientIp = event.headers?.["x-forwarded-for"]?.split(",")[0]?.trim();
114
- }
115
- const attrs = {
116
- method,
117
- path,
118
- route,
119
- host,
120
- scheme,
121
- userAgent,
122
- clientIp,
123
- requestId: requestId || lambdaContext.awsRequestId
124
- };
125
- if (options.getEndpointName || options.getOperationId) attrs.endpoint = {
126
- name: options.getEndpointName?.(event),
127
- operationId: options.getOperationId?.(event)
128
- };
129
- if (options.getUserId) {
130
- const userId = options.getUserId(event);
131
- if (userId) attrs.user = { userId };
132
- }
133
- return attrs;
134
- }
135
- /**
136
- * Normalize headers to lowercase keys
137
- */
138
- function normalizeHeaders(headers) {
139
- const normalized = {};
140
- for (const [key, value] of Object.entries(headers)) normalized[key.toLowerCase()] = value;
141
- return normalized;
142
- }
143
- /**
144
- * Run a function within the span context from a Lambda event
145
- *
146
- * @example
147
- * ```typescript
148
- * await withEventContext(event, async () => {
149
- * // Any spans created here will be children of the request span
150
- * await doSomething();
151
- * });
152
- * ```
153
- */
154
- async function withEventContext(event, fn) {
155
- const ctx = getContextFromEvent(event);
156
- if (!ctx) return fn();
157
- return _opentelemetry_api.context.with(ctx, fn);
158
- }
159
- //#endregion
160
- exports.getContextFromEvent = getContextFromEvent;
161
- exports.getSpanFromEvent = getSpanFromEvent;
162
- exports.telemetryMiddleware = telemetryMiddleware;
163
- exports.withEventContext = withEventContext;
1
+ require('../http-D_Z8sYXZ.cjs');
2
+ const require_middleware = require('../middleware-B2jFUukM.cjs');
164
3
 
165
- //# sourceMappingURL=middleware.cjs.map
4
+ exports.getContextFromEvent = require_middleware.getContextFromEvent;
5
+ exports.getSpanFromEvent = require_middleware.getSpanFromEvent;
6
+ exports.telemetryMiddleware = require_middleware.telemetryMiddleware;
7
+ exports.withEventContext = require_middleware.withEventContext;
@@ -1,83 +1,2 @@
1
- import { Context } from "aws-lambda";
2
- import { MiddlewareObj } from "@middy/core";
3
- import { Span } from "@opentelemetry/api";
4
- //#region src/instrumentation/middleware.d.ts
5
- /**
6
- * Options for the telemetry middleware
7
- */
8
- export interface TelemetryMiddlewareOptions {
9
- /**
10
- * Whether to record request body as span attribute
11
- * @default false
12
- */
13
- recordBody?: boolean;
14
- /**
15
- * Whether to record response body as span attribute
16
- * @default false
17
- */
18
- recordResponseBody?: boolean;
19
- /**
20
- * Custom function to extract endpoint name from event
21
- */
22
- getEndpointName?: (event: any) => string | undefined;
23
- /**
24
- * Custom function to extract operation ID from event
25
- */
26
- getOperationId?: (event: any) => string | undefined;
27
- /**
28
- * Custom function to extract user ID from event
29
- */
30
- getUserId?: (event: any) => string | undefined;
31
- /**
32
- * Whether to skip tracing for this request
33
- */
34
- shouldSkip?: (event: any) => boolean;
35
- /**
36
- * The origins whose `traceparent` is continued: the API's own sites, the
37
- * same list its CORS allows. Any other caller starts a new trace linked to
38
- * the one it claimed.
39
- */
40
- trustedOrigins?: readonly string[];
41
- /**
42
- * Trust a request with no trusted origin anyway — a caller the function
43
- * can vouch for, such as one that passed IAM auth. A Lambda behind API
44
- * Gateway has no private network to tell an internal caller by, so none
45
- * is trusted unless this says so.
46
- */
47
- trustRequest?: (event: any) => boolean;
48
- }
49
- /**
50
- * Get the current span from the Lambda event
51
- */
52
- export declare function getSpanFromEvent(event: any): Span | undefined;
53
- /**
54
- * Get the current trace context from the Lambda event
55
- */
56
- export declare function getContextFromEvent(event: any): any;
57
- /**
58
- * Create a telemetry middleware for Lambda handlers
59
- *
60
- * @example
61
- * ```typescript
62
- * import { telemetryMiddleware } from '@geekmidas/telescope/instrumentation';
63
- *
64
- * const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
65
- * telemetry: { middleware: telemetryMiddleware() },
66
- * });
67
- * ```
68
- */
69
- export declare function telemetryMiddleware(options?: TelemetryMiddlewareOptions): MiddlewareObj<any, any, Error, Context>;
70
- /**
71
- * Run a function within the span context from a Lambda event
72
- *
73
- * @example
74
- * ```typescript
75
- * await withEventContext(event, async () => {
76
- * // Any spans created here will be children of the request span
77
- * await doSomething();
78
- * });
79
- * ```
80
- */
81
- export declare function withEventContext<T>(event: any, fn: () => Promise<T>): Promise<T>;
82
- //#endregion
83
- //# sourceMappingURL=middleware.d.cts.map
1
+ import { TelemetryMiddlewareOptions, getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext } from "../middleware-CA84nsNN.cjs";
2
+ export { TelemetryMiddlewareOptions, getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext };
@@ -1,83 +1,2 @@
1
- import { Span } from "@opentelemetry/api";
2
- import { Context as Context$1 } from "aws-lambda";
3
- import { MiddlewareObj } from "@middy/core";
4
- //#region src/instrumentation/middleware.d.ts
5
- /**
6
- * Options for the telemetry middleware
7
- */
8
- export interface TelemetryMiddlewareOptions {
9
- /**
10
- * Whether to record request body as span attribute
11
- * @default false
12
- */
13
- recordBody?: boolean;
14
- /**
15
- * Whether to record response body as span attribute
16
- * @default false
17
- */
18
- recordResponseBody?: boolean;
19
- /**
20
- * Custom function to extract endpoint name from event
21
- */
22
- getEndpointName?: (event: any) => string | undefined;
23
- /**
24
- * Custom function to extract operation ID from event
25
- */
26
- getOperationId?: (event: any) => string | undefined;
27
- /**
28
- * Custom function to extract user ID from event
29
- */
30
- getUserId?: (event: any) => string | undefined;
31
- /**
32
- * Whether to skip tracing for this request
33
- */
34
- shouldSkip?: (event: any) => boolean;
35
- /**
36
- * The origins whose `traceparent` is continued: the API's own sites, the
37
- * same list its CORS allows. Any other caller starts a new trace linked to
38
- * the one it claimed.
39
- */
40
- trustedOrigins?: readonly string[];
41
- /**
42
- * Trust a request with no trusted origin anyway — a caller the function
43
- * can vouch for, such as one that passed IAM auth. A Lambda behind API
44
- * Gateway has no private network to tell an internal caller by, so none
45
- * is trusted unless this says so.
46
- */
47
- trustRequest?: (event: any) => boolean;
48
- }
49
- /**
50
- * Get the current span from the Lambda event
51
- */
52
- export declare function getSpanFromEvent(event: any): Span | undefined;
53
- /**
54
- * Get the current trace context from the Lambda event
55
- */
56
- export declare function getContextFromEvent(event: any): any;
57
- /**
58
- * Create a telemetry middleware for Lambda handlers
59
- *
60
- * @example
61
- * ```typescript
62
- * import { telemetryMiddleware } from '@geekmidas/telescope/instrumentation';
63
- *
64
- * const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
65
- * telemetry: { middleware: telemetryMiddleware() },
66
- * });
67
- * ```
68
- */
69
- export declare function telemetryMiddleware(options?: TelemetryMiddlewareOptions): MiddlewareObj<any, any, Error, Context$1>;
70
- /**
71
- * Run a function within the span context from a Lambda event
72
- *
73
- * @example
74
- * ```typescript
75
- * await withEventContext(event, async () => {
76
- * // Any spans created here will be children of the request span
77
- * await doSomething();
78
- * });
79
- * ```
80
- */
81
- export declare function withEventContext<T>(event: any, fn: () => Promise<T>): Promise<T>;
82
- //#endregion
83
- //# sourceMappingURL=middleware.d.mts.map
1
+ import { TelemetryMiddlewareOptions, getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext } from "../middleware-DAceVpfw.mjs";
2
+ export { TelemetryMiddlewareOptions, getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext };
@@ -1,161 +1,4 @@
1
- import { createHttpServerSpan, endHttpSpan, incomingTraceContext } from "./http.mjs";
2
- import { isTrustedOrigin } from "./trust.mjs";
3
- import { context, trace } from "@opentelemetry/api";
4
- //#region src/instrumentation/middleware.ts
5
- const SPAN_SYMBOL = Symbol("telemetry.span");
6
- const CONTEXT_SYMBOL = Symbol("telemetry.context");
7
- /**
8
- * Get the current span from the Lambda event
9
- */
10
- function getSpanFromEvent(event) {
11
- return event?.[SPAN_SYMBOL];
12
- }
13
- /**
14
- * Get the current trace context from the Lambda event
15
- */
16
- function getContextFromEvent(event) {
17
- return event?.[CONTEXT_SYMBOL];
18
- }
19
- /**
20
- * Create a telemetry middleware for Lambda handlers
21
- *
22
- * @example
23
- * ```typescript
24
- * import { telemetryMiddleware } from '@geekmidas/telescope/instrumentation';
25
- *
26
- * const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
27
- * telemetry: { middleware: telemetryMiddleware() },
28
- * });
29
- * ```
30
- */
31
- function telemetryMiddleware(options = {}) {
32
- return {
33
- before: async (request) => {
34
- if (options.shouldSkip?.(request.event)) return;
35
- const event = request.event;
36
- const lambdaContext = request.context;
37
- const headers = normalizeHeaders(event.headers || {});
38
- const trusted = isTrustedOrigin(typeof headers.origin === "string" ? headers.origin : void 0, options.trustedOrigins) || Boolean(options.trustRequest?.(event));
39
- const { parent: parentContext, links } = incomingTraceContext(headers, trusted);
40
- const attrs = buildSpanAttributes(event, lambdaContext, options);
41
- const span = createHttpServerSpan(attrs, parentContext, links);
42
- event[SPAN_SYMBOL] = span;
43
- event[CONTEXT_SYMBOL] = trace.setSpan(parentContext, span);
44
- span.setAttribute("faas.invocation_id", lambdaContext.awsRequestId);
45
- span.setAttribute("faas.name", lambdaContext.functionName);
46
- if (options.recordBody && event.body) {
47
- const bodyStr = typeof event.body === "string" ? event.body : JSON.stringify(event.body);
48
- span.setAttribute("http.request.body", bodyStr.length > 4096 ? `${bodyStr.slice(0, 4096)}...` : bodyStr);
49
- }
50
- },
51
- after: async (request) => {
52
- const span = getSpanFromEvent(request.event);
53
- if (!span) return;
54
- const response = request.response;
55
- const statusCode = typeof response?.statusCode === "number" ? response.statusCode : 200;
56
- if (options.recordResponseBody && response?.body) {
57
- const bodyStr = typeof response.body === "string" ? response.body : JSON.stringify(response.body);
58
- span.setAttribute("http.response.body", bodyStr.length > 4096 ? `${bodyStr.slice(0, 4096)}...` : bodyStr);
59
- }
60
- endHttpSpan(span, { statusCode });
61
- },
62
- onError: async (request) => {
63
- const span = getSpanFromEvent(request.event);
64
- if (!span) return;
65
- const error = request.error;
66
- const response = request.response;
67
- let statusCode = 500;
68
- if (response?.statusCode) statusCode = response.statusCode;
69
- else if (error && "statusCode" in error) statusCode = error.statusCode;
70
- endHttpSpan(span, { statusCode }, error instanceof Error ? error : new Error(String(error)));
71
- }
72
- };
73
- }
74
- /**
75
- * Build span attributes from Lambda event
76
- */
77
- function buildSpanAttributes(event, lambdaContext, options) {
78
- const isV2 = "requestContext" in event && "http" in (event.requestContext || {});
79
- const isV1 = "requestContext" in event && "httpMethod" in event && !("http" in (event.requestContext || {}));
80
- let method = "INVOKE";
81
- let path = "/";
82
- let route;
83
- let host;
84
- let scheme;
85
- let userAgent;
86
- let clientIp;
87
- let requestId;
88
- if (isV2) {
89
- const http = event.requestContext.http;
90
- method = http.method;
91
- path = event.rawPath || http.path;
92
- route = event.routeKey?.replace(/^[A-Z]+\s+/, "");
93
- host = event.headers?.host;
94
- scheme = "https";
95
- userAgent = http.userAgent;
96
- clientIp = http.sourceIp;
97
- requestId = event.requestContext.requestId;
98
- } else if (isV1) {
99
- method = event.httpMethod;
100
- path = event.path;
101
- route = event.resource;
102
- host = event.headers?.Host || event.headers?.host;
103
- scheme = "https";
104
- userAgent = event.headers?.["User-Agent"] || event.headers?.["user-agent"];
105
- clientIp = event.requestContext?.identity?.sourceIp;
106
- requestId = event.requestContext?.requestId;
107
- } else if ("httpMethod" in event) {
108
- method = event.httpMethod;
109
- path = event.path;
110
- host = event.headers?.host;
111
- userAgent = event.headers?.["user-agent"] || event.headers?.["User-Agent"];
112
- clientIp = event.headers?.["x-forwarded-for"]?.split(",")[0]?.trim();
113
- }
114
- const attrs = {
115
- method,
116
- path,
117
- route,
118
- host,
119
- scheme,
120
- userAgent,
121
- clientIp,
122
- requestId: requestId || lambdaContext.awsRequestId
123
- };
124
- if (options.getEndpointName || options.getOperationId) attrs.endpoint = {
125
- name: options.getEndpointName?.(event),
126
- operationId: options.getOperationId?.(event)
127
- };
128
- if (options.getUserId) {
129
- const userId = options.getUserId(event);
130
- if (userId) attrs.user = { userId };
131
- }
132
- return attrs;
133
- }
134
- /**
135
- * Normalize headers to lowercase keys
136
- */
137
- function normalizeHeaders(headers) {
138
- const normalized = {};
139
- for (const [key, value] of Object.entries(headers)) normalized[key.toLowerCase()] = value;
140
- return normalized;
141
- }
142
- /**
143
- * Run a function within the span context from a Lambda event
144
- *
145
- * @example
146
- * ```typescript
147
- * await withEventContext(event, async () => {
148
- * // Any spans created here will be children of the request span
149
- * await doSomething();
150
- * });
151
- * ```
152
- */
153
- async function withEventContext(event, fn) {
154
- const ctx = getContextFromEvent(event);
155
- if (!ctx) return fn();
156
- return context.with(ctx, fn);
157
- }
158
- //#endregion
159
- export { getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext };
1
+ import "../http-DQzgLczm.mjs";
2
+ import { getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext } from "../middleware-BTDncHwm.mjs";
160
3
 
161
- //# sourceMappingURL=middleware.mjs.map
4
+ export { getContextFromEvent, getSpanFromEvent, telemetryMiddleware, withEventContext };
@@ -1,138 +1,4 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_instrumentation_http = require("./http.cjs");
3
- let _opentelemetry_api = require("@opentelemetry/api");
4
- //#region src/instrumentation/otel.ts
5
- /**
6
- * OpenTelemetry implementation of the Telemetry interface
7
- *
8
- * This provides automatic span creation for Lambda handlers using
9
- * OpenTelemetry. Works with any OTel-compatible backend (Jaeger, Zipkin,
10
- * Datadog, Honeycomb, etc.)
11
- */
12
- /**
13
- * OpenTelemetry implementation of the Telemetry interface
14
- *
15
- * @example
16
- * ```typescript
17
- * import { OTelTelemetry } from '@geekmidas/telescope/instrumentation';
18
- *
19
- * const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
20
- * telemetry: new OTelTelemetry(),
21
- * });
22
- * ```
23
- *
24
- * @example With options
25
- * ```typescript
26
- * const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
27
- * telemetry: new OTelTelemetry({
28
- * recordBody: true,
29
- * getUserId: (event) => event.requestContext?.authorizer?.userId,
30
- * }),
31
- * });
32
- * ```
33
- */
34
- var OTelTelemetry = class {
35
- options;
36
- constructor(options = {}) {
37
- this.options = options;
38
- }
39
- onRequestStart(request) {
40
- const { event, context: lambdaContext } = request;
41
- const headers = normalizeHeaders(event.headers || {});
42
- const parentContext = require_instrumentation_http.extractTraceContext(headers);
43
- const attrs = this.buildSpanAttributes(event, lambdaContext);
44
- const span = require_instrumentation_http.createHttpServerSpan(attrs, parentContext);
45
- const otelContext = _opentelemetry_api.trace.setSpan(parentContext, span);
46
- span.setAttribute("faas.invocation_id", lambdaContext.awsRequestId);
47
- span.setAttribute("faas.name", lambdaContext.functionName);
48
- if (this.options.recordBody && event.body) {
49
- const bodyStr = typeof event.body === "string" ? event.body : JSON.stringify(event.body);
50
- span.setAttribute("http.request.body", bodyStr.length > 4096 ? `${bodyStr.slice(0, 4096)}...` : bodyStr);
51
- }
52
- return {
53
- span,
54
- otelContext
55
- };
56
- }
57
- onRequestEnd(ctx, response) {
58
- const { span } = ctx;
59
- if (this.options.recordResponseBody && response.body) span.setAttribute("http.response.body", response.body.length > 4096 ? `${response.body.slice(0, 4096)}...` : response.body);
60
- require_instrumentation_http.endHttpSpan(span, { statusCode: response.statusCode });
61
- }
62
- onRequestError(ctx, error) {
63
- const { span } = ctx;
64
- require_instrumentation_http.endHttpSpan(span, { statusCode: 500 }, error);
65
- }
66
- /**
67
- * Build span attributes from Lambda event
68
- */
69
- buildSpanAttributes(event, lambdaContext) {
70
- const isV2 = "requestContext" in event && "http" in (event.requestContext || {});
71
- const isV1 = "requestContext" in event && "httpMethod" in event && !("http" in (event.requestContext || {}));
72
- let method = "INVOKE";
73
- let path = "/";
74
- let route;
75
- let host;
76
- let scheme;
77
- let userAgent;
78
- let clientIp;
79
- let requestId;
80
- if (isV2) {
81
- const http = event.requestContext.http;
82
- method = http.method;
83
- path = event.rawPath || http.path;
84
- route = event.routeKey?.replace(/^[A-Z]+\s+/, "");
85
- host = event.headers?.host;
86
- scheme = "https";
87
- userAgent = http.userAgent;
88
- clientIp = http.sourceIp;
89
- requestId = event.requestContext.requestId;
90
- } else if (isV1) {
91
- method = event.httpMethod;
92
- path = event.path;
93
- route = event.resource;
94
- host = event.headers?.Host || event.headers?.host;
95
- scheme = "https";
96
- userAgent = event.headers?.["User-Agent"] || event.headers?.["user-agent"];
97
- clientIp = event.requestContext?.identity?.sourceIp;
98
- requestId = event.requestContext?.requestId;
99
- } else if ("httpMethod" in event) {
100
- method = event.httpMethod;
101
- path = event.path;
102
- host = event.headers?.host;
103
- userAgent = event.headers?.["user-agent"] || event.headers?.["User-Agent"];
104
- clientIp = event.headers?.["x-forwarded-for"]?.split(",")[0]?.trim();
105
- }
106
- const attrs = {
107
- method,
108
- path,
109
- route,
110
- host,
111
- scheme,
112
- userAgent,
113
- clientIp,
114
- requestId: requestId || lambdaContext.awsRequestId
115
- };
116
- if (this.options.getEndpointName || this.options.getOperationId) attrs.endpoint = {
117
- name: this.options.getEndpointName?.(event),
118
- operationId: this.options.getOperationId?.(event)
119
- };
120
- if (this.options.getUserId) {
121
- const userId = this.options.getUserId(event);
122
- if (userId) attrs.user = { userId };
123
- }
124
- return attrs;
125
- }
126
- };
127
- /**
128
- * Normalize headers to lowercase keys
129
- */
130
- function normalizeHeaders(headers) {
131
- const normalized = {};
132
- for (const [key, value] of Object.entries(headers)) normalized[key.toLowerCase()] = value;
133
- return normalized;
134
- }
135
- //#endregion
136
- exports.OTelTelemetry = OTelTelemetry;
1
+ require('../http-D_Z8sYXZ.cjs');
2
+ const require_otel = require('../otel-C1HqHA2O.cjs');
137
3
 
138
- //# sourceMappingURL=otel.cjs.map
4
+ exports.OTelTelemetry = require_otel.OTelTelemetry;