NGINX Metrics Reference

This is the complete reference of NGINX metrics collected by the Amplify Agent. Each metric is a time series you can chart on a dashboard, add to an alert rule, or query through the API. The names below are exactly what you will see in the graph picker and alert editor, so you can use this page to look up what any series means and how to read it.

How NGINX metrics are collected

The agent gathers connection and request counters from NGINX's built-in stub_status endpoint and derives response, timing, and upstream series by parsing your access logs. Counters are sampled once per minute and stored as rates or running totals, so a value like nginx.http.request.current reflects the per-second throughput averaged over the sampling window rather than a single instant. See Configuring NGINX for the exact stub_status and log-format setup the agent expects.

Connection Metrics

Connection metrics come straight from stub_status and describe how many TCP connections NGINX is handling right now and how it has handled them over time. They are the first place to look when you want to understand load: a growing gap between accepted and handled connections, or a climbing waiting count, tells you how keep-alive and worker capacity are holding up under traffic.

Metric Description
nginx.http.conn.active Current active connections
nginx.http.conn.reading Connections reading request
nginx.http.conn.writing Connections writing response
nginx.http.conn.waiting Keep-alive connections waiting
nginx.http.conn.accepted Total accepted connections
nginx.http.conn.dropped Dropped connections

Request Metrics

Request metrics track throughput and the volume of data NGINX serves. Watch nginx.http.request.current to see how request rate tracks your traffic patterns across the day, and pair nginx.http.request.body_bytes_sent with your bandwidth graphs to catch large-payload endpoints or unexpected transfer spikes. These are the series most teams put front and centre on a monitoring dashboard.

Metric Description
nginx.http.request.count Total requests processed
nginx.http.request.current Requests per second
nginx.http.request.body_bytes_sent Response body bytes sent

Response Code Metrics

Response code metrics count how many responses NGINX served in each HTTP status class, derived from your access logs. Read them as ratios rather than raw numbers: a healthy site is dominated by the 2xx series, and it is the shape of the curve that matters. A sudden shift in the mix — 5xx climbing after a deploy, 404s spiking from a bad link or a crawler, a jump in 3xx after a redirect change — is what you build alerts and dashboards around. The counters below are grouped both by class (2xx, 3xx, 4xx, 5xx) and by the individual codes that are most useful to watch, plus a matching set for responses coming back from your upstream servers.

Metric What it counts
nginx.http.status.2xx Responses served in the 2xx (success) class — normally the bulk of your traffic.
nginx.http.status.3xx Responses served in the 3xx (redirect) class, such as cache revalidation and URL redirects.
nginx.http.status.4xx Responses served in the 4xx class, covering client-side conditions like bad or unauthorized requests.
nginx.http.status.5xx Responses served in the 5xx class — the key reliability signal to alert on.
nginx.http.status.403 Responses served with HTTP 403. Track it to see access-control rejections and blocked clients.
nginx.http.status.404 Responses served with HTTP 404. A rising rate usually points to broken links or bots probing for paths.
nginx.http.status.500 Responses served with HTTP 500. Watch for spikes right after a release — typically an application-level fault.
nginx.http.status.502 Responses served with HTTP 502, when NGINX received an invalid reply from an upstream.
nginx.http.status.503 Responses served with HTTP 503, often during upstream maintenance or when a backend is at capacity.
nginx.http.status.504 Responses served with HTTP 504, when an upstream did not reply within NGINX's configured timeout.
nginx.upstream.status.2xx 2xx responses returned to NGINX by your upstream servers.
nginx.upstream.status.4xx 4xx responses returned to NGINX by your upstream servers.
nginx.upstream.status.5xx 5xx responses returned to NGINX by your upstream servers — compare against the front-end 5xx series to tell whether faults originate at the edge or the backend.

Putting these metrics to work

Every metric on this page can be charted and alerted on. Add the series that matter to a custom board on the Dashboards page, then set thresholds on the Alerts page so you hear about a change in the response mix or a connection pile-up before your users do. For a walkthrough of reading the built-in graphs, see the Graphs guide, and check System Metrics for the host-level CPU, memory, disk, and network series that sit alongside these NGINX counters.