Operations: system health
This course covers how to tell whether a single-process Rails application is working before someone reports a problem. It compares logs, metrics, traces and error tracking, and takes stock of what this application can already see through request-tagged logs, Thruster and Cloudflare. It defines latency, traffic, errors and saturation. It explains why an external check pointed at a real page comes first, shows how to subscribe to events Rails already publishes, and sets an order for adding tools. It ends with a challenge that computes the four signals.
What you'll learn
- ✓What logs, metrics, traces and error tracking each answer
- ✓What request-tagged logs, Thruster and Cloudflare show about this application
- ✓The four signals: latency, traffic, errors and saturation
- ✓Why an external uptime check should point at a real page instead of /up
- ✓How to subscribe to Rails notification events without a vendor
- ✓An order for adding uptime checks, error tracking and metrics
The three kinds of telemetry
Logs, metrics and traces answer different questions, and teams end up with all three because none of them substitutes for the others.
Read the full lesson free →Curriculum
7 lessonsThe three kinds of telemetry
Compares logs, metrics, traces and error tracking, and explains why metrics and logs work as a pair.
What this application can see
Takes stock of request-tagged logs, Thruster and Cloudflare, and explains why a dead machine writes no logs.
The four signals
Defines latency, traffic, errors and saturation, and explains why latency should be read as percentiles.
The cheapest thing that helps
Argues for an external uptime check pointed at a real page, since /up returns 200 for a broken container.
Instrumenting without a vendor
Shows a subscriber to Rails notification events that writes one structured log line per request.
What to add, and in what order
Orders the additions as uptime check, error tracking and metrics, with alerting placed before dashboards.
Putting it together
Reviews the course and sets a challenge to compute the four signals from a window of requests.