@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
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { SpanProcessorStrategy } from "./types-BzQ78Efw.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/instrumentation/setup.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Options for configuring telemetry
|
|
7
|
+
*/
|
|
8
|
+
interface TelemetryOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Service name for resource identification
|
|
11
|
+
*/
|
|
12
|
+
serviceName: string;
|
|
13
|
+
/**
|
|
14
|
+
* Service version
|
|
15
|
+
*/
|
|
16
|
+
serviceVersion?: string;
|
|
17
|
+
/**
|
|
18
|
+
* OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1')
|
|
19
|
+
* If not provided, traces will be logged to console
|
|
20
|
+
*/
|
|
21
|
+
endpoint?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Whether to instrument Pino for log correlation
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
26
|
+
instrumentPino?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to enable auto-instrumentation for common libraries
|
|
29
|
+
* (http, fetch, express, etc.)
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
autoInstrument?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Enable debug logging for OTel SDK
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
debug?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Additional resource attributes
|
|
40
|
+
*/
|
|
41
|
+
resourceAttributes?: Record<string, string>;
|
|
42
|
+
/**
|
|
43
|
+
* Headers to send with OTLP requests
|
|
44
|
+
*/
|
|
45
|
+
headers?: Record<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* Span processor strategy.
|
|
48
|
+
* - 'batch': Efficient batching for long-running servers (default)
|
|
49
|
+
* - 'simple': Immediate export for serverless environments (Lambda, Edge)
|
|
50
|
+
*
|
|
51
|
+
* If not specified, automatically selected based on environment detection.
|
|
52
|
+
*/
|
|
53
|
+
spanProcessorStrategy?: SpanProcessorStrategy;
|
|
54
|
+
/**
|
|
55
|
+
* Environment type for automatic configuration
|
|
56
|
+
* @default 'server'
|
|
57
|
+
*/
|
|
58
|
+
environment?: 'server' | 'lambda' | 'edge' | 'custom';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Set up OpenTelemetry instrumentation.
|
|
62
|
+
* Call this BEFORE importing your application code.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* // instrumentation.ts (create this file)
|
|
67
|
+
* import { setupTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
68
|
+
*
|
|
69
|
+
* setupTelemetry({
|
|
70
|
+
* serviceName: 'my-api',
|
|
71
|
+
* endpoint: 'http://localhost:3000/__telescope/v1',
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* // Then in your entry point:
|
|
75
|
+
* // import './instrumentation';
|
|
76
|
+
* // import { app } from './app';
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare function setupTelemetry(options: TelemetryOptions): void;
|
|
80
|
+
/**
|
|
81
|
+
* Shut down telemetry (for testing or graceful shutdown)
|
|
82
|
+
*/
|
|
83
|
+
declare function shutdownTelemetry(): Promise<void>;
|
|
84
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
85
|
+
//#endregion
|
|
86
|
+
export { TelemetryOptions, setupTelemetry, shutdownTelemetry };
|
|
87
|
+
//# sourceMappingURL=setup-Bkxm4g6b.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-Bkxm4g6b.d.mts","names":[],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;AAAiC,UAAhB,gBAAA,CAAgB;EAAA;;;EAqDa,WAAA,EAAA,MAAA;EA8B9B;AA+HhB;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA3KsB;;;;YAKX;;;;;;;;0BASc;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BT,cAAA,UAAwB;;;;iBA+HlB,iBAAA,CAAA,GAAqB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
+
const require_core = require('./core-CtVHRJGv.cjs');
|
|
3
|
+
const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
|
|
4
|
+
const __opentelemetry_auto_instrumentations_node = require_chunk.__toESM(require("@opentelemetry/auto-instrumentations-node"));
|
|
5
|
+
const __opentelemetry_exporter_logs_otlp_http = require_chunk.__toESM(require("@opentelemetry/exporter-logs-otlp-http"));
|
|
6
|
+
const __opentelemetry_exporter_trace_otlp_http = require_chunk.__toESM(require("@opentelemetry/exporter-trace-otlp-http"));
|
|
7
|
+
const __opentelemetry_instrumentation_pino = require_chunk.__toESM(require("@opentelemetry/instrumentation-pino"));
|
|
8
|
+
const __opentelemetry_resources = require_chunk.__toESM(require("@opentelemetry/resources"));
|
|
9
|
+
const __opentelemetry_sdk_logs = require_chunk.__toESM(require("@opentelemetry/sdk-logs"));
|
|
10
|
+
const __opentelemetry_sdk_node = require_chunk.__toESM(require("@opentelemetry/sdk-node"));
|
|
11
|
+
const __opentelemetry_sdk_trace_node = require_chunk.__toESM(require("@opentelemetry/sdk-trace-node"));
|
|
12
|
+
const __opentelemetry_semantic_conventions = require_chunk.__toESM(require("@opentelemetry/semantic-conventions"));
|
|
13
|
+
|
|
14
|
+
//#region src/instrumentation/setup.ts
|
|
15
|
+
let sdk = null;
|
|
16
|
+
/**
|
|
17
|
+
* Set up OpenTelemetry instrumentation.
|
|
18
|
+
* Call this BEFORE importing your application code.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* // instrumentation.ts (create this file)
|
|
23
|
+
* import { setupTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
24
|
+
*
|
|
25
|
+
* setupTelemetry({
|
|
26
|
+
* serviceName: 'my-api',
|
|
27
|
+
* endpoint: 'http://localhost:3000/__telescope/v1',
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Then in your entry point:
|
|
31
|
+
* // import './instrumentation';
|
|
32
|
+
* // import { app } from './app';
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
function setupTelemetry(options) {
|
|
36
|
+
if (sdk) return;
|
|
37
|
+
const { serviceName, serviceVersion = "1.0.0", endpoint, instrumentPino = true, autoInstrument = true, debug = false, resourceAttributes = {}, headers = {}, spanProcessorStrategy, environment = "server" } = options;
|
|
38
|
+
if (debug) __opentelemetry_api.diag.setLogger(new __opentelemetry_api.DiagConsoleLogger(), __opentelemetry_api.DiagLogLevel.DEBUG);
|
|
39
|
+
const resource = new __opentelemetry_resources.Resource({
|
|
40
|
+
[__opentelemetry_semantic_conventions.ATTR_SERVICE_NAME]: serviceName,
|
|
41
|
+
[__opentelemetry_semantic_conventions.ATTR_SERVICE_VERSION]: serviceVersion,
|
|
42
|
+
...resourceAttributes
|
|
43
|
+
});
|
|
44
|
+
const instrumentations = [];
|
|
45
|
+
if (instrumentPino) instrumentations.push(new __opentelemetry_instrumentation_pino.PinoInstrumentation({ logHook: (span, record) => {
|
|
46
|
+
record.trace_id = span.spanContext().traceId;
|
|
47
|
+
record.span_id = span.spanContext().spanId;
|
|
48
|
+
record.trace_flags = span.spanContext().traceFlags;
|
|
49
|
+
} }));
|
|
50
|
+
if (autoInstrument) instrumentations.push((0, __opentelemetry_auto_instrumentations_node.getNodeAutoInstrumentations)({
|
|
51
|
+
"@opentelemetry/instrumentation-fs": { enabled: false },
|
|
52
|
+
"@opentelemetry/instrumentation-http": { ignoreIncomingRequestHook: (request) => {
|
|
53
|
+
const path = request.url || "";
|
|
54
|
+
return path.includes("/__health") || path.includes("/__telescope") || path.includes("/favicon");
|
|
55
|
+
} }
|
|
56
|
+
}));
|
|
57
|
+
let traceExporter;
|
|
58
|
+
if (endpoint) traceExporter = new __opentelemetry_exporter_trace_otlp_http.OTLPTraceExporter({
|
|
59
|
+
url: `${endpoint}/traces`,
|
|
60
|
+
headers
|
|
61
|
+
});
|
|
62
|
+
else traceExporter = new __opentelemetry_sdk_trace_node.ConsoleSpanExporter();
|
|
63
|
+
const strategy = spanProcessorStrategy ?? require_core.getRecommendedStrategy(environment);
|
|
64
|
+
const spanProcessor = require_core.createSpanProcessor(traceExporter, { strategy });
|
|
65
|
+
require_core.setGlobalSpanProcessor(spanProcessor);
|
|
66
|
+
sdk = new __opentelemetry_sdk_node.NodeSDK({
|
|
67
|
+
resource,
|
|
68
|
+
traceExporter,
|
|
69
|
+
spanProcessors: [spanProcessor],
|
|
70
|
+
instrumentations
|
|
71
|
+
});
|
|
72
|
+
if (endpoint) {
|
|
73
|
+
const logExporter = new __opentelemetry_exporter_logs_otlp_http.OTLPLogExporter({
|
|
74
|
+
url: `${endpoint}/logs`,
|
|
75
|
+
headers
|
|
76
|
+
});
|
|
77
|
+
const loggerProvider = new __opentelemetry_sdk_logs.LoggerProvider({ resource });
|
|
78
|
+
const logProcessor = new __opentelemetry_sdk_logs.BatchLogRecordProcessor(logExporter);
|
|
79
|
+
loggerProvider.addLogRecordProcessor(logProcessor);
|
|
80
|
+
require_core.setGlobalLogProcessor(logProcessor);
|
|
81
|
+
}
|
|
82
|
+
sdk.start();
|
|
83
|
+
process.on("SIGTERM", () => {
|
|
84
|
+
sdk?.shutdown().then(() => {}).catch((_error) => {}).finally(() => process.exit(0));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Shut down telemetry (for testing or graceful shutdown)
|
|
89
|
+
*/
|
|
90
|
+
async function shutdownTelemetry() {
|
|
91
|
+
if (sdk) {
|
|
92
|
+
await sdk.shutdown();
|
|
93
|
+
sdk = null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
//#endregion
|
|
98
|
+
Object.defineProperty(exports, 'setupTelemetry', {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () {
|
|
101
|
+
return setupTelemetry;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
Object.defineProperty(exports, 'shutdownTelemetry', {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
get: function () {
|
|
107
|
+
return shutdownTelemetry;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=setup-CYpff5B9.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-CYpff5B9.cjs","names":["sdk: NodeSDK | null","options: TelemetryOptions","DiagConsoleLogger","DiagLogLevel","Resource","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","PinoInstrumentation","traceExporter: SpanExporter","OTLPTraceExporter","ConsoleSpanExporter","NodeSDK","OTLPLogExporter","LoggerProvider","BatchLogRecordProcessor"],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';\nimport { Resource } from '@opentelemetry/resources';\nimport {\n\tBatchLogRecordProcessor,\n\tLoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport {\n\tConsoleSpanExporter,\n\ttype SpanExporter,\n} from '@opentelemetry/sdk-trace-node';\nimport {\n\tATTR_SERVICE_NAME,\n\tATTR_SERVICE_VERSION,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanProcessorStrategy } from '../adapters/types';\nimport {\n\tcreateSpanProcessor,\n\tgetRecommendedStrategy,\n\tsetGlobalLogProcessor,\n\tsetGlobalSpanProcessor,\n} from './core';\n\n/**\n * Options for configuring telemetry\n */\nexport interface TelemetryOptions {\n\t/**\n\t * Service name for resource identification\n\t */\n\tserviceName: string;\n\n\t/**\n\t * Service version\n\t */\n\tserviceVersion?: string;\n\n\t/**\n\t * OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1')\n\t * If not provided, traces will be logged to console\n\t */\n\tendpoint?: string;\n\n\t/**\n\t * Whether to instrument Pino for log correlation\n\t * @default true\n\t */\n\tinstrumentPino?: boolean;\n\n\t/**\n\t * Whether to enable auto-instrumentation for common libraries\n\t * (http, fetch, express, etc.)\n\t * @default true\n\t */\n\tautoInstrument?: boolean;\n\n\t/**\n\t * Enable debug logging for OTel SDK\n\t * @default false\n\t */\n\tdebug?: boolean;\n\n\t/**\n\t * Additional resource attributes\n\t */\n\tresourceAttributes?: Record<string, string>;\n\n\t/**\n\t * Headers to send with OTLP requests\n\t */\n\theaders?: Record<string, string>;\n\n\t/**\n\t * Span processor strategy.\n\t * - 'batch': Efficient batching for long-running servers (default)\n\t * - 'simple': Immediate export for serverless environments (Lambda, Edge)\n\t *\n\t * If not specified, automatically selected based on environment detection.\n\t */\n\tspanProcessorStrategy?: SpanProcessorStrategy;\n\n\t/**\n\t * Environment type for automatic configuration\n\t * @default 'server'\n\t */\n\tenvironment?: 'server' | 'lambda' | 'edge' | 'custom';\n}\n\nlet sdk: NodeSDK | null = null;\n\n/**\n * Set up OpenTelemetry instrumentation.\n * Call this BEFORE importing your application code.\n *\n * @example\n * ```typescript\n * // instrumentation.ts (create this file)\n * import { setupTelemetry } from '@geekmidas/telescope/instrumentation';\n *\n * setupTelemetry({\n * serviceName: 'my-api',\n * endpoint: 'http://localhost:3000/__telescope/v1',\n * });\n *\n * // Then in your entry point:\n * // import './instrumentation';\n * // import { app } from './app';\n * ```\n */\nexport function setupTelemetry(options: TelemetryOptions): void {\n\tif (sdk) {\n\t\treturn;\n\t}\n\n\tconst {\n\t\tserviceName,\n\t\tserviceVersion = '1.0.0',\n\t\tendpoint,\n\t\tinstrumentPino = true,\n\t\tautoInstrument = true,\n\t\tdebug = false,\n\t\tresourceAttributes = {},\n\t\theaders = {},\n\t\tspanProcessorStrategy,\n\t\tenvironment = 'server',\n\t} = options;\n\n\t// Enable debug logging if requested\n\tif (debug) {\n\t\tdiag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);\n\t}\n\n\t// Create resource\n\tconst resource = new Resource({\n\t\t[ATTR_SERVICE_NAME]: serviceName,\n\t\t[ATTR_SERVICE_VERSION]: serviceVersion,\n\t\t...resourceAttributes,\n\t});\n\n\t// Build instrumentations list\n\tconst instrumentations = [];\n\n\t// Add Pino instrumentation for log correlation\n\tif (instrumentPino) {\n\t\tinstrumentations.push(\n\t\t\tnew PinoInstrumentation({\n\t\t\t\t// Inject trace context into log records\n\t\t\t\tlogHook: (span, record) => {\n\t\t\t\t\trecord.trace_id = span.spanContext().traceId;\n\t\t\t\t\trecord.span_id = span.spanContext().spanId;\n\t\t\t\t\trecord.trace_flags = span.spanContext().traceFlags;\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Add auto-instrumentations for common libraries\n\tif (autoInstrument) {\n\t\tinstrumentations.push(\n\t\t\tgetNodeAutoInstrumentations({\n\t\t\t\t// Disable file system instrumentation (too noisy)\n\t\t\t\t'@opentelemetry/instrumentation-fs': { enabled: false },\n\t\t\t\t// Configure HTTP instrumentation\n\t\t\t\t'@opentelemetry/instrumentation-http': {\n\t\t\t\t\tignoreIncomingRequestHook: (request) => {\n\t\t\t\t\t\t// Ignore health checks and internal routes\n\t\t\t\t\t\tconst path = request.url || '';\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tpath.includes('/__health') ||\n\t\t\t\t\t\t\tpath.includes('/__telescope') ||\n\t\t\t\t\t\t\tpath.includes('/favicon')\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\t// Create exporters\n\tlet traceExporter: SpanExporter;\n\tif (endpoint) {\n\t\ttraceExporter = new OTLPTraceExporter({\n\t\t\turl: `${endpoint}/traces`,\n\t\t\theaders,\n\t\t});\n\t} else {\n\t\t// Fall back to console exporter for debugging\n\t\ttraceExporter = new ConsoleSpanExporter();\n\t}\n\n\t// Determine span processor strategy\n\tconst strategy = spanProcessorStrategy ?? getRecommendedStrategy(environment);\n\tconst spanProcessor = createSpanProcessor(traceExporter, { strategy });\n\n\t// Register globally for flush operations\n\tsetGlobalSpanProcessor(spanProcessor);\n\n\t// Create and configure SDK\n\tsdk = new NodeSDK({\n\t\tresource,\n\t\ttraceExporter,\n\t\tspanProcessors: [spanProcessor],\n\t\tinstrumentations,\n\t});\n\n\t// Set up log exporter if endpoint is provided\n\tif (endpoint) {\n\t\tconst logExporter = new OTLPLogExporter({\n\t\t\turl: `${endpoint}/logs`,\n\t\t\theaders,\n\t\t});\n\n\t\tconst loggerProvider = new LoggerProvider({ resource });\n\t\tconst logProcessor = new BatchLogRecordProcessor(logExporter);\n\t\tloggerProvider.addLogRecordProcessor(logProcessor);\n\n\t\t// Register for flush operations\n\t\tsetGlobalLogProcessor(logProcessor);\n\t}\n\n\t// Start the SDK\n\tsdk.start();\n\n\t// Graceful shutdown\n\tprocess.on('SIGTERM', () => {\n\t\tsdk\n\t\t\t?.shutdown()\n\t\t\t.then(() => {})\n\t\t\t.catch((_error) => {})\n\t\t\t.finally(() => process.exit(0));\n\t});\n}\n\n/**\n * Shut down telemetry (for testing or graceful shutdown)\n */\nexport async function shutdownTelemetry(): Promise<void> {\n\tif (sdk) {\n\t\tawait sdk.shutdown();\n\t\tsdk = null;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AA4FA,IAAIA,MAAsB;;;;;;;;;;;;;;;;;;;;AAqB1B,SAAgB,eAAeC,SAAiC;AAC/D,KAAI,IACH;CAGD,MAAM,EACL,aACA,iBAAiB,SACjB,UACA,iBAAiB,MACjB,iBAAiB,MACjB,QAAQ,OACR,qBAAqB,CAAE,GACvB,UAAU,CAAE,GACZ,uBACA,cAAc,UACd,GAAG;AAGJ,KAAI,MACH,0BAAK,UAAU,IAAIC,yCAAqBC,iCAAa,MAAM;CAI5D,MAAM,WAAW,IAAIC,mCAAS;GAC5BC,yDAAoB;GACpBC,4DAAuB;EACxB,GAAG;CACH;CAGD,MAAM,mBAAmB,CAAE;AAG3B,KAAI,eACH,kBAAiB,KAChB,IAAIC,yDAAoB,EAEvB,SAAS,CAAC,MAAM,WAAW;AAC1B,SAAO,WAAW,KAAK,aAAa,CAAC;AACrC,SAAO,UAAU,KAAK,aAAa,CAAC;AACpC,SAAO,cAAc,KAAK,aAAa,CAAC;CACxC,EACD,GACD;AAIF,KAAI,eACH,kBAAiB,KAChB,4EAA4B;EAE3B,qCAAqC,EAAE,SAAS,MAAO;EAEvD,uCAAuC,EACtC,2BAA2B,CAAC,YAAY;GAEvC,MAAM,OAAO,QAAQ,OAAO;AAC5B,UACC,KAAK,SAAS,YAAY,IAC1B,KAAK,SAAS,eAAe,IAC7B,KAAK,SAAS,WAAW;EAE1B,EACD;CACD,EAAC,CACF;CAIF,IAAIC;AACJ,KAAI,SACH,iBAAgB,IAAIC,2DAAkB;EACrC,MAAM,EAAE,SAAS;EACjB;CACA;KAGD,iBAAgB,IAAIC;CAIrB,MAAM,WAAW,yBAAyB,oCAAuB,YAAY;CAC7E,MAAM,gBAAgB,iCAAoB,eAAe,EAAE,SAAU,EAAC;AAGtE,qCAAuB,cAAc;AAGrC,OAAM,IAAIC,iCAAQ;EACjB;EACA;EACA,gBAAgB,CAAC,aAAc;EAC/B;CACA;AAGD,KAAI,UAAU;EACb,MAAM,cAAc,IAAIC,wDAAgB;GACvC,MAAM,EAAE,SAAS;GACjB;EACA;EAED,MAAM,iBAAiB,IAAIC,wCAAe,EAAE,SAAU;EACtD,MAAM,eAAe,IAAIC,iDAAwB;AACjD,iBAAe,sBAAsB,aAAa;AAGlD,qCAAsB,aAAa;CACnC;AAGD,KAAI,OAAO;AAGX,SAAQ,GAAG,WAAW,MAAM;AAC3B,OACG,UAAU,CACX,KAAK,MAAM,CAAE,EAAC,CACd,MAAM,CAAC,WAAW,CAAE,EAAC,CACrB,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC;CAChC,EAAC;AACF;;;;AAKD,eAAsB,oBAAmC;AACxD,KAAI,KAAK;AACR,QAAM,IAAI,UAAU;AACpB,QAAM;CACN;AACD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { SpanProcessorStrategy } from "./types-BRzW1NM8.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/instrumentation/setup.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Options for configuring telemetry
|
|
7
|
+
*/
|
|
8
|
+
interface TelemetryOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Service name for resource identification
|
|
11
|
+
*/
|
|
12
|
+
serviceName: string;
|
|
13
|
+
/**
|
|
14
|
+
* Service version
|
|
15
|
+
*/
|
|
16
|
+
serviceVersion?: string;
|
|
17
|
+
/**
|
|
18
|
+
* OTLP endpoint URL (e.g., 'http://localhost:3000/__telescope/v1')
|
|
19
|
+
* If not provided, traces will be logged to console
|
|
20
|
+
*/
|
|
21
|
+
endpoint?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Whether to instrument Pino for log correlation
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
26
|
+
instrumentPino?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to enable auto-instrumentation for common libraries
|
|
29
|
+
* (http, fetch, express, etc.)
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
autoInstrument?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Enable debug logging for OTel SDK
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
debug?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Additional resource attributes
|
|
40
|
+
*/
|
|
41
|
+
resourceAttributes?: Record<string, string>;
|
|
42
|
+
/**
|
|
43
|
+
* Headers to send with OTLP requests
|
|
44
|
+
*/
|
|
45
|
+
headers?: Record<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* Span processor strategy.
|
|
48
|
+
* - 'batch': Efficient batching for long-running servers (default)
|
|
49
|
+
* - 'simple': Immediate export for serverless environments (Lambda, Edge)
|
|
50
|
+
*
|
|
51
|
+
* If not specified, automatically selected based on environment detection.
|
|
52
|
+
*/
|
|
53
|
+
spanProcessorStrategy?: SpanProcessorStrategy;
|
|
54
|
+
/**
|
|
55
|
+
* Environment type for automatic configuration
|
|
56
|
+
* @default 'server'
|
|
57
|
+
*/
|
|
58
|
+
environment?: 'server' | 'lambda' | 'edge' | 'custom';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Set up OpenTelemetry instrumentation.
|
|
62
|
+
* Call this BEFORE importing your application code.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* // instrumentation.ts (create this file)
|
|
67
|
+
* import { setupTelemetry } from '@geekmidas/telescope/instrumentation';
|
|
68
|
+
*
|
|
69
|
+
* setupTelemetry({
|
|
70
|
+
* serviceName: 'my-api',
|
|
71
|
+
* endpoint: 'http://localhost:3000/__telescope/v1',
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* // Then in your entry point:
|
|
75
|
+
* // import './instrumentation';
|
|
76
|
+
* // import { app } from './app';
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare function setupTelemetry(options: TelemetryOptions): void;
|
|
80
|
+
/**
|
|
81
|
+
* Shut down telemetry (for testing or graceful shutdown)
|
|
82
|
+
*/
|
|
83
|
+
declare function shutdownTelemetry(): Promise<void>;
|
|
84
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
85
|
+
//#endregion
|
|
86
|
+
export { TelemetryOptions, setupTelemetry, shutdownTelemetry };
|
|
87
|
+
//# sourceMappingURL=setup-D58N1f9O.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-D58N1f9O.d.cts","names":[],"sources":["../src/instrumentation/setup.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;AAAiC,UAAhB,gBAAA,CAAgB;EAAA;;;EAqDa,WAAA,EAAA,MAAA;EA8B9B;AA+HhB;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA3KsB;;;;YAKX;;;;;;;;0BASc;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BT,cAAA,UAAwB;;;;iBA+HlB,iBAAA,CAAA,GAAqB"}
|
package/dist/storage/kysely.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
//#region src/storage/kysely.ts
|
|
3
3
|
/**
|
|
4
4
|
* Kysely-based storage implementation for Telescope.
|
|
@@ -23,20 +23,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
23
23
|
*/
|
|
24
24
|
var KyselyStorage = class {
|
|
25
25
|
db;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* These were `telescope_requests`, `telescope_exceptions` and
|
|
30
|
-
* `telescope_logs` — a prefix, which is what you reach for when the tables
|
|
31
|
-
* have to share a schema with an application's own. They do not: a telescope
|
|
32
|
-
* derived from a database is a schema tenant, so the names are just the
|
|
33
|
-
* names, and `DROP SCHEMA telescope CASCADE` is the whole cleanup.
|
|
34
|
-
*/
|
|
35
|
-
requestsTable = "requests";
|
|
36
|
-
exceptionsTable = "exceptions";
|
|
37
|
-
logsTable = "logs";
|
|
26
|
+
requestsTable;
|
|
27
|
+
exceptionsTable;
|
|
28
|
+
logsTable;
|
|
38
29
|
constructor(config) {
|
|
39
|
-
this.db = config.
|
|
30
|
+
this.db = config.db;
|
|
31
|
+
const prefix = config.tablePrefix ?? "telescope";
|
|
32
|
+
this.requestsTable = `${prefix}_requests`;
|
|
33
|
+
this.exceptionsTable = `${prefix}_exceptions`;
|
|
34
|
+
this.logsTable = `${prefix}_logs`;
|
|
40
35
|
}
|
|
41
36
|
async saveRequest(entry) {
|
|
42
37
|
const row = this.requestToRow(entry);
|
|
@@ -55,14 +50,16 @@ var KyselyStorage = class {
|
|
|
55
50
|
if (statusFilter.endsWith("xx")) {
|
|
56
51
|
const firstChar = statusFilter[0];
|
|
57
52
|
if (firstChar) {
|
|
58
|
-
const
|
|
53
|
+
const category = parseInt(firstChar, 10);
|
|
54
|
+
const minStatus = category * 100;
|
|
59
55
|
const maxStatus = minStatus + 99;
|
|
60
56
|
query = query.where("status", ">=", minStatus).where("status", "<=", maxStatus);
|
|
61
57
|
}
|
|
62
58
|
} else query = query.where("status", "=", parseInt(statusFilter, 10));
|
|
63
59
|
}
|
|
64
|
-
query = this.applyQueryOptions(query, options
|
|
65
|
-
|
|
60
|
+
query = this.applyQueryOptions(query, options);
|
|
61
|
+
const rows = await query.execute();
|
|
62
|
+
return rows.map((row) => this.rowToRequest(row));
|
|
66
63
|
}
|
|
67
64
|
async getRequest(id) {
|
|
68
65
|
const row = await this.db.selectFrom(this.requestsTable).selectAll().where("id", "=", id).executeTakeFirst();
|
|
@@ -79,8 +76,9 @@ var KyselyStorage = class {
|
|
|
79
76
|
}
|
|
80
77
|
async getExceptions(options) {
|
|
81
78
|
let query = this.db.selectFrom(this.exceptionsTable).selectAll().orderBy("timestamp", "desc");
|
|
82
|
-
query = this.applyQueryOptions(query, options
|
|
83
|
-
|
|
79
|
+
query = this.applyQueryOptions(query, options);
|
|
80
|
+
const rows = await query.execute();
|
|
81
|
+
return rows.map((row) => this.rowToException(row));
|
|
84
82
|
}
|
|
85
83
|
async getException(id) {
|
|
86
84
|
const row = await this.db.selectFrom(this.exceptionsTable).selectAll().where("id", "=", id).executeTakeFirst();
|
|
@@ -98,15 +96,17 @@ var KyselyStorage = class {
|
|
|
98
96
|
async getLogs(options) {
|
|
99
97
|
let query = this.db.selectFrom(this.logsTable).selectAll().orderBy("timestamp", "desc");
|
|
100
98
|
if (options?.level) query = query.where("level", "=", options.level);
|
|
101
|
-
query = this.applyQueryOptions(query, options
|
|
102
|
-
|
|
99
|
+
query = this.applyQueryOptions(query, options);
|
|
100
|
+
const rows = await query.execute();
|
|
101
|
+
return rows.map((row) => this.rowToLog(row));
|
|
103
102
|
}
|
|
104
103
|
async prune(olderThan) {
|
|
105
|
-
|
|
104
|
+
const results = await Promise.all([
|
|
106
105
|
this.db.deleteFrom(this.requestsTable).where("timestamp", "<", olderThan).executeTakeFirst(),
|
|
107
106
|
this.db.deleteFrom(this.exceptionsTable).where("timestamp", "<", olderThan).executeTakeFirst(),
|
|
108
107
|
this.db.deleteFrom(this.logsTable).where("timestamp", "<", olderThan).executeTakeFirst()
|
|
109
|
-
])
|
|
108
|
+
]);
|
|
109
|
+
return results.reduce((sum, result) => sum + Number(result.numDeletedRows ?? 0), 0);
|
|
110
110
|
}
|
|
111
111
|
async getStats() {
|
|
112
112
|
const [requestsResult, exceptionsResult, logsResult] = await Promise.all([
|
|
@@ -143,11 +143,15 @@ var KyselyStorage = class {
|
|
|
143
143
|
newestEntry: newestDate ? new Date(newestDate) : void 0
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
|
-
applyQueryOptions(query, options
|
|
146
|
+
applyQueryOptions(query, options) {
|
|
147
147
|
if (!options) return query.limit(50);
|
|
148
148
|
if (options.after) query = query.where("timestamp", ">=", options.after);
|
|
149
149
|
if (options.before) query = query.where("timestamp", "<=", options.before);
|
|
150
|
-
if (options.search) query = query.where((eb) => eb.or(
|
|
150
|
+
if (options.search) query = query.where((eb) => eb.or([
|
|
151
|
+
eb("message", "ilike", `%${options.search}%`),
|
|
152
|
+
eb("path", "ilike", `%${options.search}%`),
|
|
153
|
+
eb("url", "ilike", `%${options.search}%`)
|
|
154
|
+
]));
|
|
151
155
|
const limit = options.limit ?? 50;
|
|
152
156
|
const offset = options.offset ?? 0;
|
|
153
157
|
return query.limit(limit).offset(offset);
|
|
@@ -158,17 +162,17 @@ var KyselyStorage = class {
|
|
|
158
162
|
method: entry.method,
|
|
159
163
|
path: entry.path,
|
|
160
164
|
url: entry.url,
|
|
161
|
-
headers:
|
|
162
|
-
body:
|
|
163
|
-
query:
|
|
165
|
+
headers: entry.headers,
|
|
166
|
+
body: entry.body ?? null,
|
|
167
|
+
query: entry.query ?? null,
|
|
164
168
|
status: entry.status,
|
|
165
|
-
response_headers:
|
|
166
|
-
response_body:
|
|
169
|
+
response_headers: entry.responseHeaders,
|
|
170
|
+
response_body: entry.responseBody ?? null,
|
|
167
171
|
duration: entry.duration,
|
|
168
172
|
timestamp: entry.timestamp,
|
|
169
173
|
ip: entry.ip ?? null,
|
|
170
174
|
user_id: entry.userId ?? null,
|
|
171
|
-
tags:
|
|
175
|
+
tags: entry.tags ?? null
|
|
172
176
|
};
|
|
173
177
|
}
|
|
174
178
|
rowToRequest(row) {
|
|
@@ -195,12 +199,12 @@ var KyselyStorage = class {
|
|
|
195
199
|
id: entry.id,
|
|
196
200
|
name: entry.name,
|
|
197
201
|
message: entry.message,
|
|
198
|
-
stack:
|
|
199
|
-
source:
|
|
202
|
+
stack: entry.stack,
|
|
203
|
+
source: entry.source ?? null,
|
|
200
204
|
request_id: entry.requestId ?? null,
|
|
201
205
|
timestamp: entry.timestamp,
|
|
202
206
|
handled: entry.handled,
|
|
203
|
-
tags:
|
|
207
|
+
tags: entry.tags ?? null
|
|
204
208
|
};
|
|
205
209
|
}
|
|
206
210
|
rowToException(row) {
|
|
@@ -221,7 +225,7 @@ var KyselyStorage = class {
|
|
|
221
225
|
id: entry.id,
|
|
222
226
|
level: entry.level,
|
|
223
227
|
message: entry.message,
|
|
224
|
-
context:
|
|
228
|
+
context: entry.context ?? null,
|
|
225
229
|
request_id: entry.requestId ?? null,
|
|
226
230
|
timestamp: entry.timestamp
|
|
227
231
|
};
|
|
@@ -250,22 +254,8 @@ var KyselyStorage = class {
|
|
|
250
254
|
}
|
|
251
255
|
};
|
|
252
256
|
/**
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
* Handed an object, node-postgres writes JSON; handed an array it writes a
|
|
256
|
-
* Postgres array literal (`{1,2}`), which a `jsonb` column rejects — so every
|
|
257
|
-
* exception (its stack is an array) failed to save. Serialising here makes
|
|
258
|
-
* the column's type the only thing that decides.
|
|
259
|
-
*/
|
|
260
|
-
function toJson(value) {
|
|
261
|
-
return value === void 0 || value === null ? null : JSON.stringify(value);
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* SQL migration to create telescope's tables.
|
|
265
|
-
*
|
|
266
|
-
* Pass a schema to have them created in one, and to have `down` drop the whole
|
|
267
|
-
* schema rather than three tables. Pass nothing where the connection's
|
|
268
|
-
* `search_path` already places them.
|
|
257
|
+
* SQL migration to create telescope tables.
|
|
258
|
+
* Use this to set up the required tables in your database.
|
|
269
259
|
*
|
|
270
260
|
* @example
|
|
271
261
|
* ```typescript
|
|
@@ -283,13 +273,11 @@ function toJson(value) {
|
|
|
283
273
|
* }
|
|
284
274
|
* ```
|
|
285
275
|
*/
|
|
286
|
-
function getTelescopeMigration(
|
|
287
|
-
const q = (name) => schema ? `${schema}.${name}` : name;
|
|
288
|
-
const idx = (name) => schema ? `${schema}_${name}` : name;
|
|
276
|
+
function getTelescopeMigration(tablePrefix = "telescope") {
|
|
289
277
|
return {
|
|
290
|
-
up:
|
|
291
|
-
-- Telescope requests
|
|
292
|
-
CREATE TABLE IF NOT EXISTS ${
|
|
278
|
+
up: `
|
|
279
|
+
-- Telescope requests table
|
|
280
|
+
CREATE TABLE IF NOT EXISTS ${tablePrefix}_requests (
|
|
293
281
|
id VARCHAR(21) PRIMARY KEY,
|
|
294
282
|
method VARCHAR(10) NOT NULL,
|
|
295
283
|
path TEXT NOT NULL,
|
|
@@ -307,15 +295,15 @@ CREATE TABLE IF NOT EXISTS ${q("requests")} (
|
|
|
307
295
|
tags JSONB
|
|
308
296
|
);
|
|
309
297
|
|
|
310
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
311
|
-
ON ${
|
|
312
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
313
|
-
ON ${
|
|
314
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
315
|
-
ON ${
|
|
298
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_requests_timestamp
|
|
299
|
+
ON ${tablePrefix}_requests (timestamp DESC);
|
|
300
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_requests_path
|
|
301
|
+
ON ${tablePrefix}_requests (path);
|
|
302
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_requests_status
|
|
303
|
+
ON ${tablePrefix}_requests (status);
|
|
316
304
|
|
|
317
|
-
-- Telescope exceptions
|
|
318
|
-
CREATE TABLE IF NOT EXISTS ${
|
|
305
|
+
-- Telescope exceptions table
|
|
306
|
+
CREATE TABLE IF NOT EXISTS ${tablePrefix}_exceptions (
|
|
319
307
|
id VARCHAR(21) PRIMARY KEY,
|
|
320
308
|
name VARCHAR(255) NOT NULL,
|
|
321
309
|
message TEXT NOT NULL,
|
|
@@ -327,13 +315,13 @@ CREATE TABLE IF NOT EXISTS ${q("exceptions")} (
|
|
|
327
315
|
tags JSONB
|
|
328
316
|
);
|
|
329
317
|
|
|
330
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
331
|
-
ON ${
|
|
332
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
333
|
-
ON ${
|
|
318
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_exceptions_timestamp
|
|
319
|
+
ON ${tablePrefix}_exceptions (timestamp DESC);
|
|
320
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_exceptions_request_id
|
|
321
|
+
ON ${tablePrefix}_exceptions (request_id);
|
|
334
322
|
|
|
335
|
-
-- Telescope logs
|
|
336
|
-
CREATE TABLE IF NOT EXISTS ${
|
|
323
|
+
-- Telescope logs table
|
|
324
|
+
CREATE TABLE IF NOT EXISTS ${tablePrefix}_logs (
|
|
337
325
|
id VARCHAR(21) PRIMARY KEY,
|
|
338
326
|
level VARCHAR(10) NOT NULL,
|
|
339
327
|
message TEXT NOT NULL,
|
|
@@ -342,22 +330,22 @@ CREATE TABLE IF NOT EXISTS ${q("logs")} (
|
|
|
342
330
|
timestamp TIMESTAMPTZ NOT NULL
|
|
343
331
|
);
|
|
344
332
|
|
|
345
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
346
|
-
ON ${
|
|
347
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
348
|
-
ON ${
|
|
349
|
-
CREATE INDEX IF NOT EXISTS idx_${
|
|
350
|
-
ON ${
|
|
333
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_logs_timestamp
|
|
334
|
+
ON ${tablePrefix}_logs (timestamp DESC);
|
|
335
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_logs_level
|
|
336
|
+
ON ${tablePrefix}_logs (level);
|
|
337
|
+
CREATE INDEX IF NOT EXISTS idx_${tablePrefix}_logs_request_id
|
|
338
|
+
ON ${tablePrefix}_logs (request_id);
|
|
351
339
|
`,
|
|
352
|
-
down:
|
|
353
|
-
DROP TABLE IF EXISTS
|
|
354
|
-
DROP TABLE IF EXISTS
|
|
355
|
-
DROP TABLE IF EXISTS
|
|
340
|
+
down: `
|
|
341
|
+
DROP TABLE IF EXISTS ${tablePrefix}_logs;
|
|
342
|
+
DROP TABLE IF EXISTS ${tablePrefix}_exceptions;
|
|
343
|
+
DROP TABLE IF EXISTS ${tablePrefix}_requests;
|
|
356
344
|
`
|
|
357
345
|
};
|
|
358
346
|
}
|
|
347
|
+
|
|
359
348
|
//#endregion
|
|
360
349
|
exports.KyselyStorage = KyselyStorage;
|
|
361
350
|
exports.getTelescopeMigration = getTelescopeMigration;
|
|
362
|
-
|
|
363
351
|
//# sourceMappingURL=kysely.cjs.map
|