jaeger
Installation
SKILL.md
Jaeger — Local Trace Inspection
Gram runs a local OpenTelemetry Collector that receives all OTLP signals from gram-server and gram-worker, routing traces to Jaeger and metrics to Prometheus. Everything starts automatically with mise run infra:start.
Architecture
App → OTLP :$OTLP_GRPC_PORT → OTel Collector → traces → Jaeger
→ metrics → Prometheus (scrapes collector)
→ spanmetrics connector → Prometheus (RED metrics from traces)
- OTel Collector receives all OTLP (traces + metrics) on
$OTLP_GRPC_PORT - Jaeger receives traces from the collector (not directly from the app)
- Prometheus scrapes the collector's metrics exporter and stores both app metrics and span-derived RED metrics
Discovering Ports
Jaeger ports are configured via environment variables in mise.toml. Always resolve ports from env vars — never hardcode them, as they may differ across worktrees or local overrides.