@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.
- package/CHANGELOG.md +79 -0
- package/README.md +18 -28
- package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts +47 -0
- package/dist/InMemoryMetricsStorage-BbKCL3YL.d.mts.map +1 -0
- package/dist/InMemoryMetricsStorage-C4drxT7G.mjs +247 -0
- package/dist/InMemoryMetricsStorage-C4drxT7G.mjs.map +1 -0
- package/dist/InMemoryMetricsStorage-D0njWUSi.cjs +252 -0
- package/dist/InMemoryMetricsStorage-D0njWUSi.cjs.map +1 -0
- package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts +47 -0
- package/dist/InMemoryMetricsStorage-TvPdZjL0.d.cts.map +1 -0
- package/dist/{MetricsAggregator-BJdIvfEv.d.mts → MetricsAggregator-4SqelGcG.d.cts} +6 -3
- package/dist/MetricsAggregator-4SqelGcG.d.cts.map +1 -0
- package/dist/MetricsAggregator-B7lUICdH.cjs +363 -0
- package/dist/MetricsAggregator-B7lUICdH.cjs.map +1 -0
- package/dist/{MetricsAggregator-CnC3oT5q.d.cts → MetricsAggregator-DZrW8ls6.d.mts} +6 -3
- package/dist/MetricsAggregator-DZrW8ls6.d.mts.map +1 -0
- package/dist/MetricsAggregator-S3DQWNas.mjs +357 -0
- package/dist/MetricsAggregator-S3DQWNas.mjs.map +1 -0
- package/dist/MetricsStorage-B86e4131.d.cts +60 -0
- package/dist/MetricsStorage-B86e4131.d.cts.map +1 -0
- package/dist/MetricsStorage-BWyP2_12.d.mts +60 -0
- package/dist/MetricsStorage-BWyP2_12.d.mts.map +1 -0
- package/dist/MetricsStorage-BypQXWiv.mjs +0 -0
- package/dist/MetricsStorage-Or8pVCe4.cjs +0 -0
- package/dist/Telescope-Cs3fv8jt.cjs +395 -0
- package/dist/Telescope-Cs3fv8jt.cjs.map +1 -0
- package/dist/{Telescope-BVfDvVvY.d.mts → Telescope-D4nmwDRA.d.cts} +7 -4
- package/dist/Telescope-D4nmwDRA.d.cts.map +1 -0
- package/dist/Telescope-Dh5av3FC.mjs +389 -0
- package/dist/Telescope-Dh5av3FC.mjs.map +1 -0
- package/dist/{Telescope-DeqSHfuB.d.cts → Telescope-Dl6VSfxd.d.mts} +7 -4
- package/dist/Telescope-Dl6VSfxd.d.mts.map +1 -0
- package/dist/Telescope.cjs +4 -385
- package/dist/Telescope.d.cts +3 -1
- package/dist/Telescope.d.mts +3 -1
- package/dist/Telescope.mjs +4 -384
- package/dist/adapters/index.d.cts +2 -2
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.mjs +0 -1
- package/dist/adapters/lambda.cjs +10 -9
- package/dist/adapters/lambda.cjs.map +1 -1
- package/dist/adapters/lambda.d.cts +13 -9
- package/dist/adapters/lambda.d.cts.map +1 -1
- package/dist/adapters/lambda.d.mts +13 -9
- package/dist/adapters/lambda.d.mts.map +1 -1
- package/dist/adapters/lambda.mjs +4 -3
- package/dist/adapters/lambda.mjs.map +1 -1
- package/dist/adapters/middy.cjs +4 -236
- package/dist/adapters/middy.d.cts +5 -60
- package/dist/adapters/middy.d.mts +5 -60
- package/dist/adapters/middy.mjs +3 -234
- package/dist/adapters/types.d.cts +2 -162
- package/dist/adapters/types.d.mts +2 -162
- package/dist/adapters/types.mjs +0 -1
- package/dist/{rolldown-runtime-VH7oDXx4.cjs → chunk-CUT6urMc.cjs} +10 -8
- package/dist/core--quSp5Qr.d.mts +78 -0
- package/dist/core--quSp5Qr.d.mts.map +1 -0
- package/dist/core-B4Jpia5H.d.cts +78 -0
- package/dist/core-B4Jpia5H.d.cts.map +1 -0
- package/dist/core-CtVHRJGv.cjs +199 -0
- package/dist/core-CtVHRJGv.cjs.map +1 -0
- package/dist/core-D6hJ6exL.mjs +139 -0
- package/dist/core-D6hJ6exL.mjs.map +1 -0
- package/dist/core.cjs +22 -22
- package/dist/core.d.cts +4 -4
- package/dist/core.d.mts +4 -4
- package/dist/core.mjs +4 -3
- package/dist/hono--uKQ7Jgi.d.mts +71 -0
- package/dist/hono--uKQ7Jgi.d.mts.map +1 -0
- package/dist/hono-C4EgpbKQ.cjs +160 -0
- package/dist/hono-C4EgpbKQ.cjs.map +1 -0
- package/dist/hono-CemCKU87.d.cts +71 -0
- package/dist/hono-CemCKU87.d.cts.map +1 -0
- package/dist/hono-DxhvnVbF.mjs +136 -0
- package/dist/hono-DxhvnVbF.mjs.map +1 -0
- package/dist/http-BiNtg85L.d.mts +107 -0
- package/dist/http-BiNtg85L.d.mts.map +1 -0
- package/dist/http-DQzgLczm.mjs +159 -0
- package/dist/http-DQzgLczm.mjs.map +1 -0
- package/dist/http-D_Z8sYXZ.cjs +219 -0
- package/dist/http-D_Z8sYXZ.cjs.map +1 -0
- package/dist/http-Dvca6fC3.d.cts +107 -0
- package/dist/http-Dvca6fC3.d.cts.map +1 -0
- package/dist/index-BL32-cvv.d.cts +1 -0
- package/dist/index-CsuikFeJ.d.mts +1 -0
- package/dist/index.cjs +9 -8
- package/dist/index.d.cts +6 -5
- package/dist/index.d.mts +6 -5
- package/dist/index.mjs +7 -5
- package/dist/instrumentation/core.cjs +11 -147
- package/dist/instrumentation/core.d.cts +3 -74
- package/dist/instrumentation/core.d.mts +3 -74
- package/dist/instrumentation/core.mjs +2 -137
- package/dist/instrumentation/hono.cjs +6 -174
- package/dist/instrumentation/hono.d.cts +2 -86
- package/dist/instrumentation/hono.d.mts +2 -86
- package/dist/instrumentation/hono.mjs +3 -170
- package/dist/instrumentation/http.cjs +11 -189
- package/dist/instrumentation/http.d.cts +2 -119
- package/dist/instrumentation/http.d.mts +2 -119
- package/dist/instrumentation/http.mjs +2 -178
- package/dist/instrumentation/index.cjs +47 -56
- package/dist/instrumentation/index.d.cts +9 -11
- package/dist/instrumentation/index.d.mts +9 -11
- package/dist/instrumentation/index.mjs +9 -10
- package/dist/instrumentation/middleware.cjs +6 -164
- package/dist/instrumentation/middleware.d.cts +2 -83
- package/dist/instrumentation/middleware.d.mts +2 -83
- package/dist/instrumentation/middleware.mjs +3 -160
- package/dist/instrumentation/otel.cjs +3 -137
- package/dist/instrumentation/otel.d.cts +2 -97
- package/dist/instrumentation/otel.d.mts +2 -97
- package/dist/instrumentation/otel.mjs +3 -136
- package/dist/instrumentation/setup.cjs +4 -142
- package/dist/instrumentation/setup.d.cts +3 -139
- package/dist/instrumentation/setup.d.mts +3 -139
- package/dist/instrumentation/setup.mjs +3 -139
- package/dist/instrumentation/tracing.cjs +10 -114
- package/dist/instrumentation/tracing.d.cts +2 -49
- package/dist/instrumentation/tracing.d.mts +2 -49
- package/dist/instrumentation/tracing.mjs +2 -105
- package/dist/logger/console.cjs +12 -18
- package/dist/logger/console.cjs.map +1 -1
- package/dist/logger/console.d.cts +10 -7
- package/dist/logger/console.d.cts.map +1 -1
- package/dist/logger/console.d.mts +10 -7
- package/dist/logger/console.d.mts.map +1 -1
- package/dist/logger/console.mjs +11 -17
- package/dist/logger/console.mjs.map +1 -1
- package/dist/logger/pino.cjs +5 -6
- package/dist/logger/pino.cjs.map +1 -1
- package/dist/logger/pino.d.cts +10 -6
- package/dist/logger/pino.d.cts.map +1 -1
- package/dist/logger/pino.d.mts +10 -6
- package/dist/logger/pino.d.mts.map +1 -1
- package/dist/logger/pino.mjs +3 -2
- package/dist/logger/pino.mjs.map +1 -1
- package/dist/memory--BK4iWiv.d.cts +40 -0
- package/dist/memory--BK4iWiv.d.cts.map +1 -0
- package/dist/memory-6S9H-IF5.mjs +123 -0
- package/dist/memory-6S9H-IF5.mjs.map +1 -0
- package/dist/memory-B0d_n1g5.cjs +129 -0
- package/dist/memory-B0d_n1g5.cjs.map +1 -0
- package/dist/memory-DCirEVFW.d.mts +40 -0
- package/dist/memory-DCirEVFW.d.mts.map +1 -0
- package/dist/metrics/MetricsAggregator.cjs +2 -354
- package/dist/metrics/MetricsAggregator.d.cts +2 -1
- package/dist/metrics/MetricsAggregator.d.mts +2 -1
- package/dist/metrics/MetricsAggregator.mjs +2 -353
- package/dist/metrics/index.cjs +4 -3
- package/dist/metrics/index.d.cts +4 -2
- package/dist/metrics/index.d.mts +4 -2
- package/dist/metrics/index.mjs +4 -2
- package/dist/metrics/storage/InMemoryMetricsStorage.cjs +3 -240
- package/dist/metrics/storage/InMemoryMetricsStorage.d.cts +4 -43
- package/dist/metrics/storage/InMemoryMetricsStorage.d.mts +4 -43
- package/dist/metrics/storage/InMemoryMetricsStorage.mjs +3 -239
- package/dist/metrics/storage/MetricsStorage.cjs +1 -0
- package/dist/metrics/storage/MetricsStorage.d.cts +3 -56
- package/dist/metrics/storage/MetricsStorage.d.mts +3 -56
- package/dist/metrics/storage/MetricsStorage.mjs +1 -1
- package/dist/metrics/storage/index.cjs +6 -6
- package/dist/metrics/storage/index.d.cts +3 -3
- package/dist/metrics/storage/index.d.mts +3 -3
- package/dist/metrics/storage/index.mjs +5 -4
- package/dist/metrics/storage/types.cjs +2 -34
- package/dist/metrics/storage/types.d.cts +2 -207
- package/dist/metrics/storage/types.d.mts +2 -207
- package/dist/metrics/storage/types.mjs +2 -33
- package/dist/metrics-D5YT-Rnq.mjs +0 -0
- package/dist/metrics-fhD3l3C3.cjs +0 -0
- package/dist/middleware-B2jFUukM.cjs +184 -0
- package/dist/middleware-B2jFUukM.cjs.map +1 -0
- package/dist/middleware-BTDncHwm.mjs +160 -0
- package/dist/middleware-BTDncHwm.mjs.map +1 -0
- package/dist/middleware-CA84nsNN.d.cts +74 -0
- package/dist/middleware-CA84nsNN.d.cts.map +1 -0
- package/dist/middleware-DAceVpfw.d.mts +74 -0
- package/dist/middleware-DAceVpfw.d.mts.map +1 -0
- package/dist/middy-B6Btl8XE.d.mts +64 -0
- package/dist/middy-B6Btl8XE.d.mts.map +1 -0
- package/dist/middy-BTR3cyvk.mjs +236 -0
- package/dist/middy-BTR3cyvk.mjs.map +1 -0
- package/dist/middy-Bq0defVg.d.cts +64 -0
- package/dist/middy-Bq0defVg.d.cts.map +1 -0
- package/dist/middy-y5Zp27eG.cjs +247 -0
- package/dist/middy-y5Zp27eG.cjs.map +1 -0
- package/dist/otel-1bJPb2Z7.d.mts +101 -0
- package/dist/otel-1bJPb2Z7.d.mts.map +1 -0
- package/dist/otel-C1HqHA2O.cjs +136 -0
- package/dist/otel-C1HqHA2O.cjs.map +1 -0
- package/dist/otel-SBVoVEHr.d.cts +101 -0
- package/dist/otel-SBVoVEHr.d.cts.map +1 -0
- package/dist/otel-wulj5B-X.mjs +130 -0
- package/dist/otel-wulj5B-X.mjs.map +1 -0
- package/dist/otlp/hono.cjs +15 -9
- package/dist/otlp/hono.cjs.map +1 -1
- package/dist/otlp/hono.d.cts +13 -3
- package/dist/otlp/hono.d.cts.map +1 -1
- package/dist/otlp/hono.d.mts +13 -3
- package/dist/otlp/hono.d.mts.map +1 -1
- package/dist/otlp/hono.mjs +11 -5
- package/dist/otlp/hono.mjs.map +1 -1
- package/dist/otlp/index.cjs +11 -11
- package/dist/otlp/index.d.cts +7 -4
- package/dist/otlp/index.d.mts +7 -4
- package/dist/otlp/index.mjs +5 -4
- package/dist/otlp/receiver.cjs +4 -88
- package/dist/otlp/receiver.d.cts +7 -59
- package/dist/otlp/receiver.d.mts +7 -59
- package/dist/otlp/receiver.mjs +4 -87
- package/dist/otlp/transformer.cjs +5 -214
- package/dist/otlp/transformer.d.cts +3 -1
- package/dist/otlp/transformer.d.mts +3 -1
- package/dist/otlp/transformer.mjs +3 -211
- package/dist/otlp/types.cjs +5 -57
- package/dist/otlp/types.d.cts +1 -1
- package/dist/otlp/types.d.mts +1 -1
- package/dist/otlp/types.mjs +2 -53
- package/dist/receiver-Cj1lbAOO.cjs +94 -0
- package/dist/receiver-Cj1lbAOO.cjs.map +1 -0
- package/dist/receiver-CxVd_9CB.mjs +89 -0
- package/dist/receiver-CxVd_9CB.mjs.map +1 -0
- package/dist/receiver-DLICx5uU.d.cts +63 -0
- package/dist/receiver-DLICx5uU.d.cts.map +1 -0
- package/dist/receiver-UeZT-H8u.d.mts +63 -0
- package/dist/receiver-UeZT-H8u.d.mts.map +1 -0
- package/dist/redact-BzkITCNW.mjs +83 -0
- package/dist/redact-BzkITCNW.mjs.map +1 -0
- package/dist/redact-DVaSSPZT.cjs +95 -0
- package/dist/redact-DVaSSPZT.cjs.map +1 -0
- package/dist/redact.cjs +3 -84
- package/dist/redact.d.cts +8 -4
- package/dist/redact.d.cts.map +1 -1
- package/dist/redact.d.mts +8 -4
- package/dist/redact.d.mts.map +1 -1
- package/dist/redact.mjs +2 -80
- package/dist/server/hono.cjs +54 -33
- package/dist/server/hono.cjs.map +1 -1
- package/dist/server/hono.d.cts +14 -19
- package/dist/server/hono.d.cts.map +1 -1
- package/dist/server/hono.d.mts +14 -19
- package/dist/server/hono.d.mts.map +1 -1
- package/dist/server/hono.mjs +52 -31
- package/dist/server/hono.mjs.map +1 -1
- package/dist/setup-B9jM77Qk.mjs +98 -0
- package/dist/setup-B9jM77Qk.mjs.map +1 -0
- package/dist/setup-Bkxm4g6b.d.mts +87 -0
- package/dist/setup-Bkxm4g6b.d.mts.map +1 -0
- package/dist/setup-CYpff5B9.cjs +110 -0
- package/dist/setup-CYpff5B9.cjs.map +1 -0
- package/dist/setup-D58N1f9O.d.cts +87 -0
- package/dist/setup-D58N1f9O.d.cts.map +1 -0
- package/dist/storage/kysely.cjs +70 -82
- package/dist/storage/kysely.cjs.map +1 -1
- package/dist/storage/kysely.d.cts +20 -36
- package/dist/storage/kysely.d.cts.map +1 -1
- package/dist/storage/kysely.d.mts +20 -36
- package/dist/storage/kysely.d.mts.map +1 -1
- package/dist/storage/kysely.mjs +69 -81
- package/dist/storage/kysely.mjs.map +1 -1
- package/dist/storage/memory.cjs +2 -122
- package/dist/storage/memory.d.cts +3 -36
- package/dist/storage/memory.d.mts +3 -36
- package/dist/storage/memory.mjs +2 -121
- package/dist/tracing-BX8uY2nR.d.cts +53 -0
- package/dist/tracing-BX8uY2nR.d.cts.map +1 -0
- package/dist/tracing-Bt1zWRlb.cjs +167 -0
- package/dist/tracing-Bt1zWRlb.cjs.map +1 -0
- package/dist/tracing-Cijm_5NI.mjs +113 -0
- package/dist/tracing-Cijm_5NI.mjs.map +1 -0
- package/dist/tracing-PnECEbEu.d.mts +53 -0
- package/dist/tracing-PnECEbEu.d.mts.map +1 -0
- package/dist/transformer-BXQPhzql.mjs +215 -0
- package/dist/transformer-BXQPhzql.mjs.map +1 -0
- package/dist/transformer-CLGZ0EQc.cjs +232 -0
- package/dist/transformer-CLGZ0EQc.cjs.map +1 -0
- package/dist/{transformer-BtqjAs0b.d.cts → transformer-CTGsaVfV.d.mts} +8 -4
- package/dist/transformer-CTGsaVfV.d.mts.map +1 -0
- package/dist/{transformer-DI6t8-YA.d.mts → transformer-ICEbxpFf.d.cts} +8 -4
- package/dist/transformer-ICEbxpFf.d.cts.map +1 -0
- package/dist/{types-BVujq4zd.d.mts → types-B1EIa_cQ.d.mts} +4 -3
- package/dist/types-B1EIa_cQ.d.mts.map +1 -0
- package/dist/types-BRzW1NM8.d.cts +166 -0
- package/dist/types-BRzW1NM8.d.cts.map +1 -0
- package/dist/types-BS3Rx8Sk.d.cts +209 -0
- package/dist/types-BS3Rx8Sk.d.cts.map +1 -0
- package/dist/types-Bwm_jNU7.mjs +54 -0
- package/dist/types-Bwm_jNU7.mjs.map +1 -0
- package/dist/types-BzQ78Efw.d.mts +166 -0
- package/dist/types-BzQ78Efw.d.mts.map +1 -0
- package/dist/types-CbNGXnJE.d.mts +209 -0
- package/dist/types-CbNGXnJE.d.mts.map +1 -0
- package/dist/{types-DVETVdpa.d.cts → types-CmOB7CLO.d.cts} +7 -6
- package/dist/types-CmOB7CLO.d.cts.map +1 -0
- package/dist/{types-DVETVdpa.d.mts → types-DBc0q5KD.d.mts} +7 -6
- package/dist/types-DBc0q5KD.d.mts.map +1 -0
- package/dist/types-Dsh-DIO_.cjs +78 -0
- package/dist/types-Dsh-DIO_.cjs.map +1 -0
- package/dist/types-ZW-nfWf6.cjs +40 -0
- package/dist/types-ZW-nfWf6.cjs.map +1 -0
- package/dist/{types-BVujq4zd.d.cts → types-l7Rlb5Mg.d.cts} +4 -3
- package/dist/types-l7Rlb5Mg.d.cts.map +1 -0
- package/dist/types-ojhnLdwz.mjs +34 -0
- package/dist/types-ojhnLdwz.mjs.map +1 -0
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.mjs +0 -1
- package/dist/ui-assets-BEXqOQLe.cjs +48 -0
- package/dist/ui-assets-BEXqOQLe.cjs.map +1 -0
- package/dist/ui-assets-BhTDUsrM.mjs +30 -0
- package/dist/ui-assets-BhTDUsrM.mjs.map +1 -0
- package/dist/ui-assets.cjs +5 -0
- package/dist/ui-assets.d.cts +13 -0
- package/dist/ui-assets.d.cts.map +1 -0
- package/dist/ui-assets.d.mts +13 -0
- package/dist/ui-assets.d.mts.map +1 -0
- package/dist/ui-assets.mjs +3 -0
- package/package.json +46 -46
- package/src/Telescope.ts +561 -0
- package/src/__tests__/Telescope.spec.ts +438 -0
- package/src/__tests__/pino-transport.spec.ts +115 -0
- package/src/__tests__/redact.spec.ts +336 -0
- package/src/adapters/__tests__/lambda.spec.ts +318 -0
- package/src/adapters/__tests__/middy.spec.ts +741 -0
- package/src/adapters/index.ts +22 -0
- package/src/adapters/lambda.ts +432 -0
- package/src/adapters/middy.ts +402 -0
- package/src/adapters/types.ts +181 -0
- package/src/core.ts +51 -0
- package/src/index.ts +34 -0
- package/src/instrumentation/__tests__/core.spec.ts +248 -0
- package/src/instrumentation/__tests__/hono.spec.ts +348 -0
- package/src/instrumentation/__tests__/middleware.spec.ts +528 -0
- package/src/instrumentation/__tests__/otel.spec.ts +291 -0
- package/src/instrumentation/__tests__/tracing.spec.ts +208 -0
- package/src/instrumentation/core.ts +228 -0
- package/src/instrumentation/hono.ts +270 -0
- package/src/instrumentation/http.ts +306 -0
- package/src/instrumentation/index.ts +90 -0
- package/src/instrumentation/middleware.ts +297 -0
- package/src/instrumentation/otel.ts +271 -0
- package/src/instrumentation/setup.ts +246 -0
- package/src/instrumentation/tracing.ts +145 -0
- package/src/logger/__tests__/console.spec.ts +366 -0
- package/src/logger/__tests__/pino.spec.ts +217 -0
- package/src/logger/console.ts +230 -0
- package/src/logger/pino.ts +201 -0
- package/src/metrics/MetricsAggregator.ts +555 -0
- package/src/metrics/__tests__/MetricsAggregator.spec.ts +298 -0
- package/src/metrics/index.ts +2 -0
- package/src/metrics/storage/InMemoryMetricsStorage.ts +380 -0
- package/src/metrics/storage/MetricsStorage.ts +74 -0
- package/src/metrics/storage/index.ts +3 -0
- package/src/metrics/storage/types.ts +243 -0
- package/src/otlp/__tests__/receiver.spec.ts +367 -0
- package/src/otlp/__tests__/transformer.spec.ts +455 -0
- package/src/otlp/hono.ts +120 -0
- package/src/otlp/index.ts +22 -0
- package/src/otlp/receiver.ts +162 -0
- package/src/otlp/transformer.ts +367 -0
- package/src/otlp/types.ts +364 -0
- package/src/redact.ts +116 -0
- package/src/server/__tests__/hono.spec.ts +814 -0
- package/src/server/hono.ts +442 -0
- package/src/storage/__tests__/kysely.spec.ts +715 -0
- package/src/storage/__tests__/memory.spec.ts +694 -0
- package/src/storage/kysely.ts +599 -0
- package/src/storage/memory.ts +204 -0
- package/src/types.ts +447 -0
- package/src/ui-assets.ts +40 -0
- package/tsconfig.json +9 -0
- package/ui/CHANGELOG.md +7 -0
- package/ui/index.html +12 -0
- package/ui/node_modules/.bin/tsc +21 -0
- package/ui/node_modules/.bin/tsserver +21 -0
- package/ui/node_modules/.bin/vite +21 -0
- package/ui/package.json +24 -0
- package/ui/src/App.tsx +595 -0
- package/ui/src/api.ts +88 -0
- package/ui/src/components/ExceptionDetail.tsx +100 -0
- package/ui/src/components/FilterBar.tsx +162 -0
- package/ui/src/components/LogDetail.tsx +91 -0
- package/ui/src/components/RequestDetail.tsx +143 -0
- package/ui/src/main.tsx +10 -0
- package/ui/src/styles.css +11 -0
- package/ui/src/types.ts +63 -0
- package/ui/src/vite-env.d.ts +1 -0
- package/ui/src/vite-plugin-gkm-config.ts +54 -0
- package/ui/tsconfig.json +20 -0
- package/ui/tsconfig.tsbuildinfo +1 -0
- package/ui/vite.config.ts +13 -0
- package/dist/MetricsAggregator-BJdIvfEv.d.mts.map +0 -1
- package/dist/MetricsAggregator-CnC3oT5q.d.cts.map +0 -1
- package/dist/Telescope-BVfDvVvY.d.mts.map +0 -1
- package/dist/Telescope-DeqSHfuB.d.cts.map +0 -1
- package/dist/Telescope.cjs.map +0 -1
- package/dist/Telescope.mjs.map +0 -1
- package/dist/adapters/middy.cjs.map +0 -1
- package/dist/adapters/middy.d.cts.map +0 -1
- package/dist/adapters/middy.d.mts.map +0 -1
- package/dist/adapters/middy.mjs.map +0 -1
- package/dist/adapters/types.d.cts.map +0 -1
- package/dist/adapters/types.d.mts.map +0 -1
- package/dist/instrumentation/core.cjs.map +0 -1
- package/dist/instrumentation/core.d.cts.map +0 -1
- package/dist/instrumentation/core.d.mts.map +0 -1
- package/dist/instrumentation/core.mjs.map +0 -1
- package/dist/instrumentation/hono.cjs.map +0 -1
- package/dist/instrumentation/hono.d.cts.map +0 -1
- package/dist/instrumentation/hono.d.mts.map +0 -1
- package/dist/instrumentation/hono.mjs.map +0 -1
- package/dist/instrumentation/http.cjs.map +0 -1
- package/dist/instrumentation/http.d.cts.map +0 -1
- package/dist/instrumentation/http.d.mts.map +0 -1
- package/dist/instrumentation/http.mjs.map +0 -1
- package/dist/instrumentation/middleware.cjs.map +0 -1
- package/dist/instrumentation/middleware.d.cts.map +0 -1
- package/dist/instrumentation/middleware.d.mts.map +0 -1
- package/dist/instrumentation/middleware.mjs.map +0 -1
- package/dist/instrumentation/otel.cjs.map +0 -1
- package/dist/instrumentation/otel.d.cts.map +0 -1
- package/dist/instrumentation/otel.d.mts.map +0 -1
- package/dist/instrumentation/otel.mjs.map +0 -1
- package/dist/instrumentation/sampler.cjs +0 -54
- package/dist/instrumentation/sampler.cjs.map +0 -1
- package/dist/instrumentation/sampler.d.cts +0 -38
- package/dist/instrumentation/sampler.d.cts.map +0 -1
- package/dist/instrumentation/sampler.d.mts +0 -38
- package/dist/instrumentation/sampler.d.mts.map +0 -1
- package/dist/instrumentation/sampler.mjs +0 -52
- package/dist/instrumentation/sampler.mjs.map +0 -1
- package/dist/instrumentation/setup.cjs.map +0 -1
- package/dist/instrumentation/setup.d.cts.map +0 -1
- package/dist/instrumentation/setup.d.mts.map +0 -1
- package/dist/instrumentation/setup.mjs.map +0 -1
- package/dist/instrumentation/tracing.cjs.map +0 -1
- package/dist/instrumentation/tracing.d.cts.map +0 -1
- package/dist/instrumentation/tracing.d.mts.map +0 -1
- package/dist/instrumentation/tracing.mjs.map +0 -1
- package/dist/instrumentation/trust.cjs +0 -107
- package/dist/instrumentation/trust.cjs.map +0 -1
- package/dist/instrumentation/trust.d.cts +0 -57
- package/dist/instrumentation/trust.d.cts.map +0 -1
- package/dist/instrumentation/trust.d.mts +0 -57
- package/dist/instrumentation/trust.d.mts.map +0 -1
- package/dist/instrumentation/trust.mjs +0 -104
- package/dist/instrumentation/trust.mjs.map +0 -1
- package/dist/metrics/MetricsAggregator.cjs.map +0 -1
- package/dist/metrics/MetricsAggregator.mjs.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.cjs.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.d.cts.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.d.mts.map +0 -1
- package/dist/metrics/storage/InMemoryMetricsStorage.mjs.map +0 -1
- package/dist/metrics/storage/MetricsStorage.d.cts.map +0 -1
- package/dist/metrics/storage/MetricsStorage.d.mts.map +0 -1
- package/dist/metrics/storage/types.cjs.map +0 -1
- package/dist/metrics/storage/types.d.cts.map +0 -1
- package/dist/metrics/storage/types.d.mts.map +0 -1
- package/dist/metrics/storage/types.mjs.map +0 -1
- package/dist/otlp/receiver.cjs.map +0 -1
- package/dist/otlp/receiver.d.cts.map +0 -1
- package/dist/otlp/receiver.d.mts.map +0 -1
- package/dist/otlp/receiver.mjs.map +0 -1
- package/dist/otlp/transformer.cjs.map +0 -1
- package/dist/otlp/transformer.mjs.map +0 -1
- package/dist/otlp/types.cjs.map +0 -1
- package/dist/otlp/types.mjs.map +0 -1
- package/dist/redact.cjs.map +0 -1
- package/dist/redact.mjs.map +0 -1
- package/dist/storage/memory.cjs.map +0 -1
- package/dist/storage/memory.d.cts.map +0 -1
- package/dist/storage/memory.d.mts.map +0 -1
- package/dist/storage/memory.mjs.map +0 -1
- package/dist/transformer-BtqjAs0b.d.cts.map +0 -1
- package/dist/transformer-DI6t8-YA.d.mts.map +0 -1
- package/dist/types-BVujq4zd.d.cts.map +0 -1
- package/dist/types-BVujq4zd.d.mts.map +0 -1
- package/dist/types-DVETVdpa.d.cts.map +0 -1
- package/dist/types-DVETVdpa.d.mts.map +0 -1
|
@@ -1,97 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Context object returned by onRequestStart, passed to subsequent hooks.
|
|
5
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
6
|
-
*/
|
|
7
|
-
export interface TelemetryContext {
|
|
8
|
-
[key: string]: unknown;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Request information passed to telemetry hooks.
|
|
12
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
13
|
-
*/
|
|
14
|
-
export interface TelemetryRequest {
|
|
15
|
-
event: any;
|
|
16
|
-
context: Context;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Response information passed to onRequestEnd.
|
|
20
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
21
|
-
*/
|
|
22
|
-
export interface TelemetryResponse {
|
|
23
|
-
statusCode: number;
|
|
24
|
-
body?: string;
|
|
25
|
-
headers?: Record<string, string>;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Telemetry interface for instrumenting endpoint requests.
|
|
29
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
30
|
-
*/
|
|
31
|
-
export interface Telemetry {
|
|
32
|
-
onRequestStart(request: TelemetryRequest): TelemetryContext;
|
|
33
|
-
onRequestEnd(ctx: TelemetryContext, response: TelemetryResponse): void;
|
|
34
|
-
onRequestError(ctx: TelemetryContext, error: Error): void;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Options for OTelTelemetry
|
|
38
|
-
*/
|
|
39
|
-
export interface OTelTelemetryOptions {
|
|
40
|
-
/**
|
|
41
|
-
* Whether to record request body as span attribute
|
|
42
|
-
* @default false
|
|
43
|
-
*/
|
|
44
|
-
recordBody?: boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Whether to record response body as span attribute
|
|
47
|
-
* @default false
|
|
48
|
-
*/
|
|
49
|
-
recordResponseBody?: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Custom function to extract user ID from event
|
|
52
|
-
*/
|
|
53
|
-
getUserId?: (event: any) => string | undefined;
|
|
54
|
-
/**
|
|
55
|
-
* Custom function to extract endpoint name from event
|
|
56
|
-
*/
|
|
57
|
-
getEndpointName?: (event: any) => string | undefined;
|
|
58
|
-
/**
|
|
59
|
-
* Custom function to extract operation ID from event
|
|
60
|
-
*/
|
|
61
|
-
getOperationId?: (event: any) => string | undefined;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* OpenTelemetry implementation of the Telemetry interface
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```typescript
|
|
68
|
-
* import { OTelTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
69
|
-
*
|
|
70
|
-
* const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
|
|
71
|
-
* telemetry: new OTelTelemetry(),
|
|
72
|
-
* });
|
|
73
|
-
* ```
|
|
74
|
-
*
|
|
75
|
-
* @example With options
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
|
|
78
|
-
* telemetry: new OTelTelemetry({
|
|
79
|
-
* recordBody: true,
|
|
80
|
-
* getUserId: (event) => event.requestContext?.authorizer?.userId,
|
|
81
|
-
* }),
|
|
82
|
-
* });
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
export declare class OTelTelemetry implements Telemetry {
|
|
86
|
-
private options;
|
|
87
|
-
constructor(options?: OTelTelemetryOptions);
|
|
88
|
-
onRequestStart(request: TelemetryRequest): TelemetryContext;
|
|
89
|
-
onRequestEnd(ctx: TelemetryContext, response: TelemetryResponse): void;
|
|
90
|
-
onRequestError(ctx: TelemetryContext, error: Error): void;
|
|
91
|
-
/**
|
|
92
|
-
* Build span attributes from Lambda event
|
|
93
|
-
*/
|
|
94
|
-
private buildSpanAttributes;
|
|
95
|
-
}
|
|
96
|
-
//#endregion
|
|
97
|
-
//# sourceMappingURL=otel.d.cts.map
|
|
1
|
+
import { OTelTelemetry, OTelTelemetryOptions, Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "../otel-SBVoVEHr.cjs";
|
|
2
|
+
export { OTelTelemetry, OTelTelemetryOptions, Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse };
|
|
@@ -1,97 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Context object returned by onRequestStart, passed to subsequent hooks.
|
|
5
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
6
|
-
*/
|
|
7
|
-
export interface TelemetryContext {
|
|
8
|
-
[key: string]: unknown;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Request information passed to telemetry hooks.
|
|
12
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
13
|
-
*/
|
|
14
|
-
export interface TelemetryRequest {
|
|
15
|
-
event: any;
|
|
16
|
-
context: Context;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Response information passed to onRequestEnd.
|
|
20
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
21
|
-
*/
|
|
22
|
-
export interface TelemetryResponse {
|
|
23
|
-
statusCode: number;
|
|
24
|
-
body?: string;
|
|
25
|
-
headers?: Record<string, string>;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Telemetry interface for instrumenting endpoint requests.
|
|
29
|
-
* This matches the Telemetry interface from @geekmidas/constructs.
|
|
30
|
-
*/
|
|
31
|
-
export interface Telemetry {
|
|
32
|
-
onRequestStart(request: TelemetryRequest): TelemetryContext;
|
|
33
|
-
onRequestEnd(ctx: TelemetryContext, response: TelemetryResponse): void;
|
|
34
|
-
onRequestError(ctx: TelemetryContext, error: Error): void;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Options for OTelTelemetry
|
|
38
|
-
*/
|
|
39
|
-
export interface OTelTelemetryOptions {
|
|
40
|
-
/**
|
|
41
|
-
* Whether to record request body as span attribute
|
|
42
|
-
* @default false
|
|
43
|
-
*/
|
|
44
|
-
recordBody?: boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Whether to record response body as span attribute
|
|
47
|
-
* @default false
|
|
48
|
-
*/
|
|
49
|
-
recordResponseBody?: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Custom function to extract user ID from event
|
|
52
|
-
*/
|
|
53
|
-
getUserId?: (event: any) => string | undefined;
|
|
54
|
-
/**
|
|
55
|
-
* Custom function to extract endpoint name from event
|
|
56
|
-
*/
|
|
57
|
-
getEndpointName?: (event: any) => string | undefined;
|
|
58
|
-
/**
|
|
59
|
-
* Custom function to extract operation ID from event
|
|
60
|
-
*/
|
|
61
|
-
getOperationId?: (event: any) => string | undefined;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* OpenTelemetry implementation of the Telemetry interface
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```typescript
|
|
68
|
-
* import { OTelTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
69
|
-
*
|
|
70
|
-
* const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
|
|
71
|
-
* telemetry: new OTelTelemetry(),
|
|
72
|
-
* });
|
|
73
|
-
* ```
|
|
74
|
-
*
|
|
75
|
-
* @example With options
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
|
|
78
|
-
* telemetry: new OTelTelemetry({
|
|
79
|
-
* recordBody: true,
|
|
80
|
-
* getUserId: (event) => event.requestContext?.authorizer?.userId,
|
|
81
|
-
* }),
|
|
82
|
-
* });
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
export declare class OTelTelemetry implements Telemetry {
|
|
86
|
-
private options;
|
|
87
|
-
constructor(options?: OTelTelemetryOptions);
|
|
88
|
-
onRequestStart(request: TelemetryRequest): TelemetryContext;
|
|
89
|
-
onRequestEnd(ctx: TelemetryContext, response: TelemetryResponse): void;
|
|
90
|
-
onRequestError(ctx: TelemetryContext, error: Error): void;
|
|
91
|
-
/**
|
|
92
|
-
* Build span attributes from Lambda event
|
|
93
|
-
*/
|
|
94
|
-
private buildSpanAttributes;
|
|
95
|
-
}
|
|
96
|
-
//#endregion
|
|
97
|
-
//# sourceMappingURL=otel.d.mts.map
|
|
1
|
+
import { OTelTelemetry, OTelTelemetryOptions, Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "../otel-1bJPb2Z7.mjs";
|
|
2
|
+
export { OTelTelemetry, OTelTelemetryOptions, Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse };
|
|
@@ -1,137 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
//#region src/instrumentation/otel.ts
|
|
4
|
-
/**
|
|
5
|
-
* OpenTelemetry implementation of the Telemetry interface
|
|
6
|
-
*
|
|
7
|
-
* This provides automatic span creation for Lambda handlers using
|
|
8
|
-
* OpenTelemetry. Works with any OTel-compatible backend (Jaeger, Zipkin,
|
|
9
|
-
* Datadog, Honeycomb, etc.)
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* OpenTelemetry implementation of the Telemetry interface
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* import { OTelTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
17
|
-
*
|
|
18
|
-
* const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
|
|
19
|
-
* telemetry: new OTelTelemetry(),
|
|
20
|
-
* });
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* @example With options
|
|
24
|
-
* ```typescript
|
|
25
|
-
* const adaptor = new AmazonApiGatewayV2Endpoint(endpoint, {
|
|
26
|
-
* telemetry: new OTelTelemetry({
|
|
27
|
-
* recordBody: true,
|
|
28
|
-
* getUserId: (event) => event.requestContext?.authorizer?.userId,
|
|
29
|
-
* }),
|
|
30
|
-
* });
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
var OTelTelemetry = class {
|
|
34
|
-
options;
|
|
35
|
-
constructor(options = {}) {
|
|
36
|
-
this.options = options;
|
|
37
|
-
}
|
|
38
|
-
onRequestStart(request) {
|
|
39
|
-
const { event, context: lambdaContext } = request;
|
|
40
|
-
const headers = normalizeHeaders(event.headers || {});
|
|
41
|
-
const parentContext = extractTraceContext(headers);
|
|
42
|
-
const attrs = this.buildSpanAttributes(event, lambdaContext);
|
|
43
|
-
const span = createHttpServerSpan(attrs, parentContext);
|
|
44
|
-
const otelContext = trace.setSpan(parentContext, span);
|
|
45
|
-
span.setAttribute("faas.invocation_id", lambdaContext.awsRequestId);
|
|
46
|
-
span.setAttribute("faas.name", lambdaContext.functionName);
|
|
47
|
-
if (this.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
|
-
return {
|
|
52
|
-
span,
|
|
53
|
-
otelContext
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
onRequestEnd(ctx, response) {
|
|
57
|
-
const { span } = ctx;
|
|
58
|
-
if (this.options.recordResponseBody && response.body) span.setAttribute("http.response.body", response.body.length > 4096 ? `${response.body.slice(0, 4096)}...` : response.body);
|
|
59
|
-
endHttpSpan(span, { statusCode: response.statusCode });
|
|
60
|
-
}
|
|
61
|
-
onRequestError(ctx, error) {
|
|
62
|
-
const { span } = ctx;
|
|
63
|
-
endHttpSpan(span, { statusCode: 500 }, error);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Build span attributes from Lambda event
|
|
67
|
-
*/
|
|
68
|
-
buildSpanAttributes(event, lambdaContext) {
|
|
69
|
-
const isV2 = "requestContext" in event && "http" in (event.requestContext || {});
|
|
70
|
-
const isV1 = "requestContext" in event && "httpMethod" in event && !("http" in (event.requestContext || {}));
|
|
71
|
-
let method = "INVOKE";
|
|
72
|
-
let path = "/";
|
|
73
|
-
let route;
|
|
74
|
-
let host;
|
|
75
|
-
let scheme;
|
|
76
|
-
let userAgent;
|
|
77
|
-
let clientIp;
|
|
78
|
-
let requestId;
|
|
79
|
-
if (isV2) {
|
|
80
|
-
const http = event.requestContext.http;
|
|
81
|
-
method = http.method;
|
|
82
|
-
path = event.rawPath || http.path;
|
|
83
|
-
route = event.routeKey?.replace(/^[A-Z]+\s+/, "");
|
|
84
|
-
host = event.headers?.host;
|
|
85
|
-
scheme = "https";
|
|
86
|
-
userAgent = http.userAgent;
|
|
87
|
-
clientIp = http.sourceIp;
|
|
88
|
-
requestId = event.requestContext.requestId;
|
|
89
|
-
} else if (isV1) {
|
|
90
|
-
method = event.httpMethod;
|
|
91
|
-
path = event.path;
|
|
92
|
-
route = event.resource;
|
|
93
|
-
host = event.headers?.Host || event.headers?.host;
|
|
94
|
-
scheme = "https";
|
|
95
|
-
userAgent = event.headers?.["User-Agent"] || event.headers?.["user-agent"];
|
|
96
|
-
clientIp = event.requestContext?.identity?.sourceIp;
|
|
97
|
-
requestId = event.requestContext?.requestId;
|
|
98
|
-
} else if ("httpMethod" in event) {
|
|
99
|
-
method = event.httpMethod;
|
|
100
|
-
path = event.path;
|
|
101
|
-
host = event.headers?.host;
|
|
102
|
-
userAgent = event.headers?.["user-agent"] || event.headers?.["User-Agent"];
|
|
103
|
-
clientIp = event.headers?.["x-forwarded-for"]?.split(",")[0]?.trim();
|
|
104
|
-
}
|
|
105
|
-
const attrs = {
|
|
106
|
-
method,
|
|
107
|
-
path,
|
|
108
|
-
route,
|
|
109
|
-
host,
|
|
110
|
-
scheme,
|
|
111
|
-
userAgent,
|
|
112
|
-
clientIp,
|
|
113
|
-
requestId: requestId || lambdaContext.awsRequestId
|
|
114
|
-
};
|
|
115
|
-
if (this.options.getEndpointName || this.options.getOperationId) attrs.endpoint = {
|
|
116
|
-
name: this.options.getEndpointName?.(event),
|
|
117
|
-
operationId: this.options.getOperationId?.(event)
|
|
118
|
-
};
|
|
119
|
-
if (this.options.getUserId) {
|
|
120
|
-
const userId = this.options.getUserId(event);
|
|
121
|
-
if (userId) attrs.user = { userId };
|
|
122
|
-
}
|
|
123
|
-
return attrs;
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* Normalize headers to lowercase keys
|
|
128
|
-
*/
|
|
129
|
-
function normalizeHeaders(headers) {
|
|
130
|
-
const normalized = {};
|
|
131
|
-
for (const [key, value] of Object.entries(headers)) normalized[key.toLowerCase()] = value;
|
|
132
|
-
return normalized;
|
|
133
|
-
}
|
|
134
|
-
//#endregion
|
|
135
|
-
export { OTelTelemetry };
|
|
1
|
+
import "../http-DQzgLczm.mjs";
|
|
2
|
+
import { OTelTelemetry } from "../otel-wulj5B-X.mjs";
|
|
136
3
|
|
|
137
|
-
|
|
4
|
+
export { OTelTelemetry };
|
|
@@ -1,143 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
const require_instrumentation_sampler = require("./sampler.cjs");
|
|
4
|
-
let _opentelemetry_api = require("@opentelemetry/api");
|
|
5
|
-
let _opentelemetry_auto_instrumentations_node = require("@opentelemetry/auto-instrumentations-node");
|
|
6
|
-
let _opentelemetry_exporter_logs_otlp_http = require("@opentelemetry/exporter-logs-otlp-http");
|
|
7
|
-
let _opentelemetry_exporter_trace_otlp_http = require("@opentelemetry/exporter-trace-otlp-http");
|
|
8
|
-
let _opentelemetry_instrumentation_pino = require("@opentelemetry/instrumentation-pino");
|
|
9
|
-
let _opentelemetry_resources = require("@opentelemetry/resources");
|
|
10
|
-
let _opentelemetry_sdk_logs = require("@opentelemetry/sdk-logs");
|
|
11
|
-
let _opentelemetry_sdk_node = require("@opentelemetry/sdk-node");
|
|
12
|
-
let _opentelemetry_sdk_trace_node = require("@opentelemetry/sdk-trace-node");
|
|
13
|
-
let _opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conventions");
|
|
14
|
-
//#region src/instrumentation/setup.ts
|
|
15
|
-
let sdk = null;
|
|
16
|
-
let onSigterm = null;
|
|
17
|
-
/** A `sampleRatio` outside 0–1, which no sampler can honour. */
|
|
18
|
-
var InvalidSampleRatio = class extends Error {
|
|
19
|
-
sampleRatio;
|
|
20
|
-
constructor(sampleRatio) {
|
|
21
|
-
super(`sampleRatio must be a number from 0 (no traces) to 1 (every trace), got ${sampleRatio}. Pass a fraction such as 0.1 to keep one trace in ten.`);
|
|
22
|
-
this.sampleRatio = sampleRatio;
|
|
23
|
-
this.name = "InvalidSampleRatio";
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
/** Whether the standard OTLP environment variables name a collector. */
|
|
27
|
-
function otlpEndpointFromEnv(signal) {
|
|
28
|
-
return Boolean(process.env[`OTEL_EXPORTER_OTLP_${signal}_ENDPOINT`] || process.env.OTEL_EXPORTER_OTLP_ENDPOINT);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* The sampler for an explicit ratio, or for the stage's rate in
|
|
32
|
-
* `OTEL_TRACES_SAMPLER_ARG` — or undefined to let the SDK read any other
|
|
33
|
-
* `OTEL_TRACES_SAMPLER` itself.
|
|
34
|
-
*/
|
|
35
|
-
function samplerFor(sampleRatio) {
|
|
36
|
-
if (sampleRatio === void 0) return require_instrumentation_sampler.traceSamplerFromEnv();
|
|
37
|
-
if (!Number.isFinite(sampleRatio) || sampleRatio < 0 || sampleRatio > 1) throw new InvalidSampleRatio(sampleRatio);
|
|
38
|
-
return require_instrumentation_sampler.traceSampler(sampleRatio);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Set up OpenTelemetry instrumentation.
|
|
42
|
-
* Call this BEFORE importing your application code.
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* // instrumentation.ts (create this file)
|
|
47
|
-
* import { setupTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
48
|
-
*
|
|
49
|
-
* setupTelemetry({
|
|
50
|
-
* serviceName: 'my-api',
|
|
51
|
-
* endpoint: 'http://localhost:3000/__telescope/v1',
|
|
52
|
-
* });
|
|
53
|
-
*
|
|
54
|
-
* // Then in your entry point:
|
|
55
|
-
* // import './instrumentation';
|
|
56
|
-
* // import { app } from './app';
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
function setupTelemetry(options) {
|
|
60
|
-
if (sdk) return;
|
|
61
|
-
const { serviceName, serviceVersion = "1.0.0", serviceNamespace, deploymentEnvironment, endpoint, sampleRatio, handleSignals = true, instrumentPino = true, incomingHttpSpans = true, autoInstrument = true, debug = false, resourceAttributes = {}, headers, spanProcessorStrategy, environment = "server" } = options;
|
|
62
|
-
const sampler = samplerFor(sampleRatio);
|
|
63
|
-
if (debug) _opentelemetry_api.diag.setLogger(new _opentelemetry_api.DiagConsoleLogger(), _opentelemetry_api.DiagLogLevel.DEBUG);
|
|
64
|
-
const resource = (0, _opentelemetry_resources.resourceFromAttributes)({
|
|
65
|
-
[_opentelemetry_semantic_conventions.ATTR_SERVICE_NAME]: serviceName,
|
|
66
|
-
[_opentelemetry_semantic_conventions.ATTR_SERVICE_VERSION]: serviceVersion,
|
|
67
|
-
...serviceNamespace && { "service.namespace": serviceNamespace },
|
|
68
|
-
...deploymentEnvironment && {
|
|
69
|
-
"deployment.environment.name": deploymentEnvironment,
|
|
70
|
-
"deployment.environment": deploymentEnvironment
|
|
71
|
-
},
|
|
72
|
-
...resourceAttributes
|
|
73
|
-
});
|
|
74
|
-
const instrumentations = [];
|
|
75
|
-
if (instrumentPino) instrumentations.push(new _opentelemetry_instrumentation_pino.PinoInstrumentation({ logHook: (span, record) => {
|
|
76
|
-
record.trace_id = span.spanContext().traceId;
|
|
77
|
-
record.span_id = span.spanContext().spanId;
|
|
78
|
-
record.trace_flags = span.spanContext().traceFlags;
|
|
79
|
-
} }));
|
|
80
|
-
if (autoInstrument) instrumentations.push((0, _opentelemetry_auto_instrumentations_node.getNodeAutoInstrumentations)({
|
|
81
|
-
"@opentelemetry/instrumentation-fs": { enabled: false },
|
|
82
|
-
"@opentelemetry/instrumentation-http": {
|
|
83
|
-
disableIncomingRequestInstrumentation: !incomingHttpSpans,
|
|
84
|
-
ignoreIncomingRequestHook: (request) => {
|
|
85
|
-
const path = request.url || "";
|
|
86
|
-
return path.includes("/__health") || path.includes("/__telescope") || path.includes("/favicon");
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}));
|
|
90
|
-
let traceExporter;
|
|
91
|
-
if (endpoint) traceExporter = new _opentelemetry_exporter_trace_otlp_http.OTLPTraceExporter({
|
|
92
|
-
url: `${endpoint}/traces`,
|
|
93
|
-
headers: headers ?? {}
|
|
94
|
-
});
|
|
95
|
-
else if (otlpEndpointFromEnv("TRACES")) traceExporter = new _opentelemetry_exporter_trace_otlp_http.OTLPTraceExporter(headers ? { headers } : {});
|
|
96
|
-
else traceExporter = new _opentelemetry_sdk_trace_node.ConsoleSpanExporter();
|
|
97
|
-
const strategy = spanProcessorStrategy ?? require_instrumentation_core.getRecommendedStrategy(environment);
|
|
98
|
-
const spanProcessor = require_instrumentation_core.createSpanProcessor(traceExporter, { strategy });
|
|
99
|
-
require_instrumentation_core.setGlobalSpanProcessor(spanProcessor);
|
|
100
|
-
let logProcessor;
|
|
101
|
-
if (endpoint || otlpEndpointFromEnv("LOGS")) {
|
|
102
|
-
const logExporter = endpoint ? new _opentelemetry_exporter_logs_otlp_http.OTLPLogExporter({
|
|
103
|
-
url: `${endpoint}/logs`,
|
|
104
|
-
headers: headers ?? {}
|
|
105
|
-
}) : new _opentelemetry_exporter_logs_otlp_http.OTLPLogExporter(headers ? { headers } : {});
|
|
106
|
-
logProcessor = new _opentelemetry_sdk_logs.BatchLogRecordProcessor({ exporter: logExporter });
|
|
107
|
-
require_instrumentation_core.setGlobalLogProcessor(logProcessor);
|
|
108
|
-
}
|
|
109
|
-
sdk = new _opentelemetry_sdk_node.NodeSDK({
|
|
110
|
-
resource,
|
|
111
|
-
traceExporter,
|
|
112
|
-
spanProcessors: [spanProcessor],
|
|
113
|
-
...logProcessor && { logRecordProcessors: [logProcessor] },
|
|
114
|
-
...sampler && { sampler },
|
|
115
|
-
instrumentations
|
|
116
|
-
});
|
|
117
|
-
sdk.start();
|
|
118
|
-
if (handleSignals) {
|
|
119
|
-
onSigterm = () => {
|
|
120
|
-
sdk?.shutdown().then(() => {}).catch((_error) => {}).finally(() => process.exit(0));
|
|
121
|
-
};
|
|
122
|
-
process.on("SIGTERM", onSigterm);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Shut down telemetry (for testing or graceful shutdown)
|
|
127
|
-
*/
|
|
128
|
-
async function shutdownTelemetry() {
|
|
129
|
-
if (onSigterm) {
|
|
130
|
-
process.off("SIGTERM", onSigterm);
|
|
131
|
-
onSigterm = null;
|
|
132
|
-
}
|
|
133
|
-
if (sdk) {
|
|
134
|
-
await sdk.shutdown();
|
|
135
|
-
sdk = null;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
//#endregion
|
|
139
|
-
exports.InvalidSampleRatio = InvalidSampleRatio;
|
|
140
|
-
exports.setupTelemetry = setupTelemetry;
|
|
141
|
-
exports.shutdownTelemetry = shutdownTelemetry;
|
|
1
|
+
require('../core-CtVHRJGv.cjs');
|
|
2
|
+
const require_setup = require('../setup-CYpff5B9.cjs');
|
|
142
3
|
|
|
143
|
-
|
|
4
|
+
exports.setupTelemetry = require_setup.setupTelemetry;
|
|
5
|
+
exports.shutdownTelemetry = require_setup.shutdownTelemetry;
|
|
@@ -1,139 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Options for configuring telemetry
|
|
5
|
-
*/
|
|
6
|
-
export interface TelemetryOptions {
|
|
7
|
-
/**
|
|
8
|
-
* Service name for resource identification
|
|
9
|
-
*/
|
|
10
|
-
serviceName: string;
|
|
11
|
-
/**
|
|
12
|
-
* Service version
|
|
13
|
-
*/
|
|
14
|
-
serviceVersion?: string;
|
|
15
|
-
/**
|
|
16
|
-
* The `service.namespace` resource attribute — the product an app is part
|
|
17
|
-
* of, so several services from one workspace group together.
|
|
18
|
-
*/
|
|
19
|
-
serviceNamespace?: string;
|
|
20
|
-
/**
|
|
21
|
-
* The stage this process runs as (`production`, `staging`, …). Sent as
|
|
22
|
-
* `deployment.environment.name`, and as the older `deployment.environment`
|
|
23
|
-
* many backends still filter on.
|
|
24
|
-
*/
|
|
25
|
-
deploymentEnvironment?: string;
|
|
26
|
-
/**
|
|
27
|
-
* OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1').
|
|
28
|
-
* Traces go to `<endpoint>/traces` and logs to `<endpoint>/logs`.
|
|
29
|
-
*
|
|
30
|
-
* If not provided, the standard `OTEL_EXPORTER_OTLP_ENDPOINT` (and its
|
|
31
|
-
* per-signal `_TRACES_`/`_LOGS_` variants and `OTEL_EXPORTER_OTLP_HEADERS`)
|
|
32
|
-
* configure the exporters, with the spec's `/v1/traces` and `/v1/logs`
|
|
33
|
-
* paths. With neither, traces are written to the console.
|
|
34
|
-
*/
|
|
35
|
-
endpoint?: string;
|
|
36
|
-
/**
|
|
37
|
-
* The fraction of new traces to sample, from 0 to 1. A span whose parent
|
|
38
|
-
* in this process was sampled (or not) follows its parent, so a trace is
|
|
39
|
-
* never cut in half; a caller's sampled flag is capped at this rate, so a
|
|
40
|
-
* request cannot force a trace the stage would not keep (`traceSampler`).
|
|
41
|
-
*
|
|
42
|
-
* When left out, the standard `OTEL_TRACES_SAMPLER` and
|
|
43
|
-
* `OTEL_TRACES_SAMPLER_ARG` decide — `parentbased_traceidratio` with `0.1`
|
|
44
|
-
* is the same capped sampler at 0.1; with neither, every trace is sampled.
|
|
45
|
-
*/
|
|
46
|
-
sampleRatio?: number;
|
|
47
|
-
/**
|
|
48
|
-
* Shut the SDK down and exit on `SIGTERM`.
|
|
49
|
-
*
|
|
50
|
-
* Turn it off when the process has its own graceful shutdown — exiting as
|
|
51
|
-
* soon as telemetry is flushed would cut in-flight requests short.
|
|
52
|
-
* @default true
|
|
53
|
-
*/
|
|
54
|
-
handleSignals?: boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Whether to instrument Pino for log correlation.
|
|
57
|
-
*
|
|
58
|
-
* It hooks module loading, so it sees nothing inside a bundle. A logger
|
|
59
|
-
* from `@geekmidas/logger`'s `createLogger` sends its records through the
|
|
60
|
-
* logs API itself; turn this off for one, or each record is sent twice
|
|
61
|
-
* where pino can be hooked.
|
|
62
|
-
* @default true
|
|
63
|
-
*/
|
|
64
|
-
instrumentPino?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Whether the http auto-instrumentation opens a span for each incoming
|
|
67
|
-
* request.
|
|
68
|
-
*
|
|
69
|
-
* Turn it off when the server opens its own — `honoTelemetryMiddleware`,
|
|
70
|
-
* as a `gkm build` server does — or each request is traced twice where
|
|
71
|
-
* `node:http` can be hooked, and not at all in a bundle, where it cannot.
|
|
72
|
-
* Outgoing requests are traced either way.
|
|
73
|
-
* @default true
|
|
74
|
-
*/
|
|
75
|
-
incomingHttpSpans?: boolean;
|
|
76
|
-
/**
|
|
77
|
-
* Whether to enable auto-instrumentation for common libraries
|
|
78
|
-
* (http, fetch, express, etc.)
|
|
79
|
-
* @default true
|
|
80
|
-
*/
|
|
81
|
-
autoInstrument?: boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Enable debug logging for OTel SDK
|
|
84
|
-
* @default false
|
|
85
|
-
*/
|
|
86
|
-
debug?: boolean;
|
|
87
|
-
/**
|
|
88
|
-
* Additional resource attributes
|
|
89
|
-
*/
|
|
90
|
-
resourceAttributes?: Record<string, string>;
|
|
91
|
-
/**
|
|
92
|
-
* Headers to send with OTLP requests
|
|
93
|
-
*/
|
|
94
|
-
headers?: Record<string, string>;
|
|
95
|
-
/**
|
|
96
|
-
* Span processor strategy.
|
|
97
|
-
* - 'batch': Efficient batching for long-running servers (default)
|
|
98
|
-
* - 'simple': Immediate export for serverless environments (Lambda, Edge)
|
|
99
|
-
*
|
|
100
|
-
* If not specified, automatically selected based on environment detection.
|
|
101
|
-
*/
|
|
102
|
-
spanProcessorStrategy?: SpanProcessorStrategy;
|
|
103
|
-
/**
|
|
104
|
-
* Environment type for automatic configuration
|
|
105
|
-
* @default 'server'
|
|
106
|
-
*/
|
|
107
|
-
environment?: 'server' | 'lambda' | 'edge' | 'custom';
|
|
108
|
-
}
|
|
109
|
-
/** A `sampleRatio` outside 0–1, which no sampler can honour. */
|
|
110
|
-
export declare class InvalidSampleRatio extends Error {
|
|
111
|
-
readonly sampleRatio: number;
|
|
112
|
-
constructor(sampleRatio: number);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Set up OpenTelemetry instrumentation.
|
|
116
|
-
* Call this BEFORE importing your application code.
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* // instrumentation.ts (create this file)
|
|
121
|
-
* import { setupTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
122
|
-
*
|
|
123
|
-
* setupTelemetry({
|
|
124
|
-
* serviceName: 'my-api',
|
|
125
|
-
* endpoint: 'http://localhost:3000/__telescope/v1',
|
|
126
|
-
* });
|
|
127
|
-
*
|
|
128
|
-
* // Then in your entry point:
|
|
129
|
-
* // import './instrumentation';
|
|
130
|
-
* // import { app } from './app';
|
|
131
|
-
* ```
|
|
132
|
-
*/
|
|
133
|
-
export declare function setupTelemetry(options: TelemetryOptions): void;
|
|
134
|
-
/**
|
|
135
|
-
* Shut down telemetry (for testing or graceful shutdown)
|
|
136
|
-
*/
|
|
137
|
-
export declare function shutdownTelemetry(): Promise<void>;
|
|
138
|
-
//#endregion
|
|
139
|
-
//# sourceMappingURL=setup.d.cts.map
|
|
1
|
+
import "../types-BRzW1NM8.cjs";
|
|
2
|
+
import { TelemetryOptions, setupTelemetry, shutdownTelemetry } from "../setup-D58N1f9O.cjs";
|
|
3
|
+
export { TelemetryOptions, setupTelemetry, shutdownTelemetry };
|