Add OpenTelemetry tracing and log export via OTLP

Shared telemetry init module in compliance-core (behind `telemetry` feature)
sets up OTLP/gRPC export for traces and logs when OTEL_EXPORTER_OTLP_ENDPOINT
is set. Falls back to console-only output when unset.

Both agent and dashboard now use the shared init. Docker Compose includes
an OTel Collector service with a config template for SigNoz, Grafana
Tempo/Loki, Jaeger, etc.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-03-08 00:21:06 +01:00
committed by Sharang Parnerkar
parent 0cb06d3d6d
commit c61497420a
10 changed files with 452 additions and 17 deletions

View File

@@ -17,6 +17,9 @@ services:
- "3001:3001"
- "3002:3002"
env_file: .env
environment:
OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4317
OTEL_SERVICE_NAME: compliance-agent
depends_on:
- mongo
volumes:
@@ -29,6 +32,9 @@ services:
ports:
- "8080:8080"
env_file: .env
environment:
OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4317
OTEL_SERVICE_NAME: compliance-dashboard
depends_on:
- mongo
- agent
@@ -43,6 +49,15 @@ services:
PREBOOT_CHROME: "true"
restart: unless-stopped
otel-collector:
image: otel/opentelemetry-collector-contrib:latest
ports:
- "4317:4317"
- "4318:4318"
volumes:
- ./otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml
restart: unless-stopped
volumes:
mongo_data:
repos_data: