Health first
Health JSON gives a fast answer on reachability, DB mode, and tracing state.
Operations
This page is for the live system. Start with health, move to metrics, correlate logs, and only then drill into Tempo traces. The template already ships with the wiring, so the operator workflow stays simple.
Health JSON gives a fast answer on reachability, DB mode, and tracing state.
Prometheus metrics expose the request surface and database activity without extra glue code.
Tempo keeps route, service, repository, and DB spans in one request tree.
Request IDs and trace IDs stay in logs so incidents can be reconstructed quickly.
Runbook
Call /api/health first. It confirms the app is reachable, shows the database mode, and tells you whether tracing is enabled.
Runbook
Open /metrics or your Prometheus target and look for route counters, latency, and DB-related measurements before digging deeper.
Runbook
Use request IDs or trace IDs in logs to identify the exact request window that matters.
Runbook
Open Tempo and follow the request from route span to service span to repository span so slow points are visible in one tree.
Route counters and durations are exposed through prom-client at /metrics.
Pino logs include request IDs and active trace IDs for correlation during incidents.
Route, service, repository, and DB spans are exported through OTLP into Tempo.
The sample subscriber feature proves DB spans sit under the same parent request trace.
OTEL_TRACE_IGNORE_PATHS
/metrics,_next/static,_next/image,favicon.icoKeep `/metrics`, static assets, and image optimizer requests out of the tracing pipeline unless you explicitly need them for a debugging session.
pnpm e2eMigrate the local database, build the app, and run Playwright.pnpm observability:upBoot Grafana and Tempo locally with ready-to-use provisioning.pnpm observability:testStart the stack, run the app, and verify spans reach Tempo.1. Check health
Call /api/health first. It confirms the app is reachable, shows the database mode, and tells you whether tracing is enabled.
2. Check metrics
Open /metrics or your Prometheus target and look for route counters, latency, and DB-related measurements before digging deeper.
3. Correlate logs
Use request IDs or trace IDs in logs to identify the exact request window that matters.
4. Inspect traces
Open Tempo and follow the request from route span to service span to repository span so slow points are visible in one tree.