[ GLOSSARY ]

The four golden signals

QUICK ANSWER

What are the four golden signals and how do they apply to Laravel?

Latency, traffic, errors, and saturation — Google SRE's minimum monitoring set for user-facing services. For Laravel: latency = p95 per route, traffic = requests per minute, errors = 5xx rate and exception count, saturation = worker pool utilization, queue depth, DB connection usage. Every user-facing endpoint should expose all four. NightOwl surfaces latency and traffic on the requests dashboard, errors on exceptions, and saturation via queue and worker health views.

Updated · 2026-06-04

Monitoring has a way of turning into a wall of graphs nobody reads. The four golden signals are the antidote: a short, opinionated list of what's actually worth watching for any service users hit directly. They come from Google's SRE practice, and the reason they've stuck is that they're complete enough to catch most real problems and short enough that a team will actually keep them up.

Where they come from

Google's Site Reliability Engineering book (2016, freely available online) introduced the four golden signals as the minimum set of service-level signals worth monitoring. They're the prioritization answer to "if you can only monitor four things, monitor these."

Signal 1 — Latency

How long requests take. Measured in percentiles, not averages. Track p50, p95, p99 per route. Alert on sustained p95 elevation against a rolling baseline.

Laravel: the Nightwatch package records per-request duration. NightOwl groups by route pattern and computes percentiles automatically.

Signal 2 — Traffic

How much demand your service is receiving. Usually requests per second or per minute. Useful two ways: spot unusual load (attack, viral moment, Monday morning traffic) and sanity-check other signals (a latency spike during 10x traffic is different from one at normal load).

Laravel: requests per minute per route. Include 2xx, 3xx, and 4xx — every request counts as traffic.

Signal 3 — Errors

Rate of failed requests. Usually expressed as a percentage of total traffic. Also includes errors that return 200 but failed business logic (a checkout that returned 200 with an "inventory unavailable" message).

Laravel: 5xx response rate per route, unhandled exceptions per minute, grouped by fingerprint. Pair with report() for expected-exception tracking.

Signal 4 — Saturation

How full any bounded resource is. The leading indicator — saturation climbs before latency spikes or errors jump. Most important and hardest to measure.

Laravel-specific saturation surfaces:

  • PHP-FPM pool — what % of pm.max_children are busy. Query via pm.status_path.
  • Queue depth — pending jobs per queue. Rising depth = consumer lag.
  • Queue latency — dispatch-to-start time. See our queue latency guide.
  • DB connection poolmax_connections usage in Postgres's pg_stat_activity.
  • Redis memoryused_memory as a % of maxmemory.
  • Disk — log volumes, session storage, uploaded file storage.

Putting them together

Signal Laravel metric Alert style
Latencyp95 per routeSustained threshold breach
Trafficreq/min per routeAnomaly detection both ways
Errors5xx rate, new exceptionsImmediate on new groups
SaturationPool %, queue depth, DB connsHeadroom threshold (e.g. 90%)

How they fail together

The signals are most useful read as a set, because a real incident moves several at once and the pattern tells you what kind of incident it is.

A deploy ships a slow query: saturation climbs first as workers stay busy longer and the queue backs up, then latency follows as p95 rises, and if it gets bad enough errors appear when requests start timing out. Traffic stays flat the whole time — that flatness is the tell. Demand didn't change, something you shipped did.

Compare a traffic spike: traffic jumps first, saturation follows as workers fill up, and latency and errors only move if you ran out of headroom. Same downstream symptoms, opposite root cause, and you can tell them apart in seconds — but only because you were watching traffic too. Latency alone would have left you guessing.

Frequently asked questions

What are the four golden signals?

Latency, traffic, errors, and saturation — four metrics Google's SRE book (2016) recommends monitoring for every user-facing service. If you only get to monitor four things, monitor these. Latency: how long requests take. Traffic: how many requests per second. Errors: rate of failed requests. Saturation: how full the system is.

How do I apply the four golden signals to Laravel?

Per-route: latency (p95 response time), traffic (requests per minute), errors (5xx rate), saturation (queue depth, worker utilization, DB connection pool usage). A Laravel-aware APM computes all four automatically. NightOwl surfaces latency and traffic on the requests dashboard, errors on the exceptions dashboard, and saturation via queue lag and worker health.

What does 'saturation' mean for a Laravel app?

How full any bounded resource is. For Laravel: PHP-FPM worker pool utilization (what % of pm.max_children are busy), queue depth and lag, DB connection pool usage, Redis memory, disk space on log volumes. Saturation is the leading indicator — it climbs before latency spikes or errors jump.

How are golden signals different from the USE method?

Google's golden signals target services from the outside (what users experience). Brendan Gregg's USE method (Utilization, Saturation, Errors) targets resources from the inside (what servers are doing). Both complement each other — golden signals for service-level SLOs, USE for infrastructure root cause.

Should I alert on all four golden signals?

Yes, but with different strategies. Alert on errors immediately (5xx rate spike). Alert on latency with sustain (p95 elevated for 5+ minutes). Alert on traffic anomalies both ways (drops suggest outage upstream; spikes suggest attack or viral moment). Alert on saturation with headroom (worker pool at 90%, DB connections at 95%) before things break.

Are the four golden signals enough?

For user-facing web services, yes — at service level. You'll layer additional signals for specific business needs (payment success rate, search relevance). For infrastructure (DB, cache, queues) layer USE-method signals. Golden signals are the minimum viable set for each service, not the complete monitoring portfolio.

PRICING

Flat pricing. No event caps. No per-seat fees.

14-day free trial, no credit card. Your PostgreSQL, your data.

HOBBY

$5 /month

1 app · 14 days lookback · all Laravel events

TEAM

$15 /month

Up to 3 connected apps · unlimited environments · all Laravel events

AGENCY

$69 /month

Unlimited apps · unlimited agent instances · same flat rate at any traffic