Connect bounded RED metrics and SLOs to one question
Observability answers incident questions; it is not a contest to store the most data. Collect Rate, Errors, and Duration by route template, then connect logs and asynchronous work with request context.
Connect bounded RED metrics and SLOs to one question
Observability answers incident questions; it is not a contest to store the most data. Collect Rate, Errors, and Duration by route template, then connect logs and asynchronous work with request context.
Never use the raw 404 path as a metric label: bots can create unbounded time series. Python backend folds unmatched routes into /_not_found. User IDs, filenames, and search terms must not become labels either.
Collection path and cost
Java services expose Actuator Prometheus endpoints and Python services expose standard /metrics. Compose Prometheus scrapes them only in the optional profile. Grafana and a Next.js-specific exporter remain optional until runtimes and deployment platforms share an operations contract; Next.js can use logs, Sentry, and Web Vitals.
When to promise an SLO
Define an SLO from a user path and baseline. If there is no measurement, do not promise an arbitrary 99.9%; agree on error-budget, deployment-pause, and rollback actions after collecting the baseline.
Related course: RED, correlation, and SLOs
Terms in this content
More in infra
All in this category →Related posts
Minimal observability — logs, metrics, traces
The word "observability" tends to suggest rolling out a full stack, but introducing a full stack from a small system makes operational cost outpace value pretty quickly.
Compose readiness and partial rollback boundaries
A running container may still lack a database connection, required tables, or an internal dependency. Liveness says the process is alive; readiness says it can receive user traffic.