diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-12-29 19:11:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-29 17:11:16 +0000 |
| commit | 5537fe85ed65444359bfd066707760d6395fc7a4 (patch) | |
| tree | 03024b1312f04d9cd4ff09b327eae7cea3f258a9 /apps | |
| parent | f7920bdc94d97a6a94477f49e145432607b94951 (diff) | |
| download | karakeep-5537fe85ed65444359bfd066707760d6395fc7a4.tar.zst | |
feat: Add open telemetry (#2318)
* feat: add OpenTelemetry tracing infrastructure
Introduce distributed tracing capabilities using OpenTelemetry:
- Add @opentelemetry packages to shared-server for tracing
- Create tracing utility module with span helpers (withSpan, addSpanEvent, etc.)
- Add tRPC middleware for automatic span creation on API calls
- Initialize tracing in API and workers entry points
- Add demo instrumentation to bookmark creation and crawler worker
- Add configuration options (OTEL_TRACING_ENABLED, OTEL_EXPORTER_OTLP_ENDPOINT, etc.)
- Document tracing configuration in environment variables docs
When enabled, traces are collected for tRPC calls, bookmark creation flow,
and crawler operations, with support for any OTLP-compatible backend (Jaeger, Tempo, etc.)
* refactor: remove tracing from workers for now
Keep tracing infrastructure but remove worker instrumentation:
- Remove tracing initialization from workers entry point
- Remove tracing instrumentation from crawler worker
- Fix formatting in tracing files
The tracing infrastructure remains available for future use.
* add hono and next tracing
* remove extra span logging
* more fixes
* update config
* some fixes
* upgrade packages
* remove unneeded packages
---------
Co-authored-by: Claude <noreply@anthropic.com>
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/web/instrumentation.node.ts | 3 | ||||
| -rw-r--r-- | apps/web/instrumentation.ts | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/apps/web/instrumentation.node.ts b/apps/web/instrumentation.node.ts new file mode 100644 index 00000000..2f4c1d58 --- /dev/null +++ b/apps/web/instrumentation.node.ts @@ -0,0 +1,3 @@ +import { initTracing } from "@karakeep/shared-server"; + +initTracing("web"); diff --git a/apps/web/instrumentation.ts b/apps/web/instrumentation.ts new file mode 100644 index 00000000..41630756 --- /dev/null +++ b/apps/web/instrumentation.ts @@ -0,0 +1,5 @@ +export async function register() { + if (process.env.NEXT_RUNTIME === "nodejs") { + await import("./instrumentation.node"); + } +} |
