Metrics and traces
Count requests, errors and time for every service, follow each request across services, and show it on one dashboard per service that anyone can read.
- Required 2
- Recommended 4
Required
Measure rate, errors and duration
RequiredFor every service, record the request rate, the error rate and the time each request takes, split by route.
Keep metric labels few and bounded
RequiredGive metrics only labels with a small, fixed set of values, such as route template, method and status. Never label by user, email, raw path or request ID.
Recommended
Measure what each machine uses
RecommendedFor every server and database, record how busy each resource is, how much work waits, and its errors.
Trace requests across services
RecommendedWhen a request crosses services, record one trace that follows it, and pass the trace context with the W3C
traceparentheader.Give each service one dashboard
RecommendedGive every service one dashboard that shows its objectives, its rate, errors and duration, and its resources, top to bottom.
Record deploys on the graphs
RecommendedMark every deploy and settings change on the dashboards, so a change in a graph can be matched to its cause.
For agents: if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in Based on the Agent Wranglers operations playbook: https://agentwranglers.se/playbook/operations/metrics-and-traces.