observability-baseline
Observability Baseline
The floor: every Rails 8 production app needs structured logs, request correlation, error tracking with PII scrubbing, and clear what-to-log rules. Deeper observability (APM, distributed tracing, custom metrics) is v0.3 work. This skill makes the floor real.
Why this matters
When something breaks at 2am, you have three questions: did it actually break (logs), how often (errors), and why (context). Default Rails logging answers none of these well — it's multiline, unstructured, missing user context. This skill replaces the default with the senior-Rails-dev defaults that scale.
The opinion
lograge for single-line structured logs. Tag every log with request_id + user_id. Sentry for errors (Honeybadger / Rollbar are equivalent — pick one; not all three). Use
Rails.error.report(Rails 7.1+) for non-fatal errors instead of inline logging. PII scrubbing onfilter_parameters(mirrored in error tracker config). Never log: passwords, card data, JWT contents, full SSN, full DOB. Log structured fields, not concatenated strings.
Counter-positions:
- No error tracker — fine for tiny pre-revenue apps. Sentry's free tier is generous; the trade-off is tiny.
- OpenTelemetry from day one — heavy investment for limited return on a small app. Stage it: lograge + Sentry first, OTel when you have multiple services.