Monitoring the NGINX Node Metrics and Health¶
The NGINX Node exposes metrics in the Prometheus format, which you can use to monitor its performance, traffic, and detected attacks, along with health endpoints for orchestration. This page gives an overview of the available metrics and health endpoints.
Metric groups¶
The recommended way to read most Node metrics is the single aggregated endpoint served by the wd (Wallarm Daemon) service at http://127.0.0.1:9445/metrics. It combines the following groups of metrics:
-
Traffic and attack metrics — the node's core filtering counters such as
wallarm_requests,wallarm_attacks, andwallarm_blockedthat report processed traffic, detected attacks, blocked requests, and detection health. -
Postanalytics metrics — Postanalytics module (wstore) metrics covering network activity, request processing, queue states, and storage.
-
wcli Controller metrics — data from the service that runs most Wallarm functional components (e.g., brute-force detection or attack export to the Cloud).
-
Wallarm Daemon (wd) metrics — the
wdservice's ownwallarm_wd_*metrics describing process supervision andwdscrape/push housekeeping.
These services also still expose their own endpoints, but reading from the aggregated 9445 endpoint is the recommended approach.
The http://127.0.0.1:9445/metrics endpoint also carries the managed services' runtime metrics (go_*, process_*) and the internal scraper's self-metrics (vm_*, scrape_*). To focus on Wallarm data, filter on the wallarm_.* prefix — for example, with a Prometheus metric_relabel_configs rule.
API Firewall metrics
There are also API Firewall metrics that are handled differently: they are disabled by default and exposed on their own endpoint (port 9010). In the NGINX Ingress Controller they can also be aggregated into the 9445 endpoint; in other deployments they are available only on 9010.
Sidecar
The aggregated 9445 endpoint is not yet available in Sidecar deployments. There, read metrics from each service's own endpoint instead.
Health endpoints¶
In addition to metrics, readiness and liveness endpoints are exposed at http://127.0.0.1:9446:
-
http://127.0.0.1:9446/health— liveness. Returns200while the node is running. -
http://127.0.0.1:9446/ready— readiness. Returns200only after the node finishes initialization, or while it keeps operating on the last known configuration during a Wallarm Cloud outage. Returns503while the node is still starting or is in a degraded or failed state.
Configuring the ports¶
The node uses the following ports to expose its metrics and health endpoints:
| Port | Purpose | Default state | How to change |
|---|---|---|---|
9445 |
Aggregated metrics endpoint served by wd (recommended for scraping) |
Enabled | NGINX Ingress Controller: the config.wallarm.wd.metricsPort Helm value, plus the per-pod Service ports that must be kept in sync (read more) AIO / Docker / cloud images: node.metrics_listen_address in /opt/wallarm/etc/wd.yaml |
9446 |
Health endpoints (/health, /ready) served by wd |
Enabled | NGINX Ingress Controller: the config.wallarm.wd.healthPort Helm value AIO / Docker / cloud images: node.healthcheck_listen_address in /opt/wallarm/etc/wd.yaml |
9001 |
wstore metrics source endpoint | Enabled | NGINX Ingress Controller: postanalytics.metrics.listenAddress sets the port wstore listens on; keep the scrape target config.wallarm.wd.scrape.wstore.endpoint in syncAIO / Docker / cloud images: metrics.listenAddress in /opt/wallarm/wstore/wstore.yaml, or the WALLARM_WSTORE__METRICS__LISTEN_ADDRESS environment variable, which takes precedence |
9003 |
wcli metrics source endpoint | Enabled | NGINX Ingress Controller: fixed at 9003 (the wcli default, not exposed as a Helm value)AIO / Docker / cloud images: the WALLARM_WCLI__METRICS__LISTEN_ADDRESS and WALLARM_WCLI__METRICS__ENDPOINT environment variables, which set the listen address and the metrics path, respectively |
9010 (also aggregated into 9445 in the NGINX Ingress Controller) |
API Firewall metrics endpoint | Disabled | Enable and configure per deployment |
Keep the wd scrape targets in sync
Ports 9001, 9003, and 9010 are scraped by wd at fixed endpoints. If you change a service's metrics port, you also need to update the endpoint wd scrapes it from — otherwise wd stops collecting that service's metrics and it disappears from the aggregated 9445 endpoint:
- NGINX Ingress Controller — update the matching
config.wallarm.wd.scrape.<component>.endpointHelm value. - All-in-one installer, Docker image, and cloud images — update the matching
metrics_endpointunderprocessesin/opt/wallarm/etc/wd.yaml.