feat: add OpenTelemetry distributed tracing across all DECNET services

Gated by DECNET_DEVELOPER_TRACING env var (default off, zero overhead).
When enabled, traces flow through FastAPI routes, background workers
(collector, ingester, profiler, sniffer, prober), engine/mutator
operations, and all DB calls via TracedRepository proxy.

Includes Jaeger docker-compose for local dev and 18 unit tests.
This commit is contained in:
2026-04-15 23:23:13 -04:00
parent b437bc8eec
commit 65ddb0b359
14 changed files with 687 additions and 4 deletions

View File

@@ -0,0 +1,20 @@
# DECNET OpenTelemetry development stack.
#
# Start: docker compose -f development/docker-compose.otel.yml up -d
# UI: http://localhost:16686 (Jaeger)
# Stop: docker compose -f development/docker-compose.otel.yml down
#
# Then run DECNET with tracing enabled:
# DECNET_DEVELOPER_TRACING=true decnet web
services:
jaeger:
image: jaegertracing/all-in-one:latest
container_name: decnet-jaeger
restart: unless-stopped
ports:
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP HTTP receiver
- "16686:16686" # Jaeger UI
environment:
COLLECTOR_OTLP_ENABLED: "true"