Skip to content
Copy
View as Markdown Suggest changes
Add Docs MCP
Setup guide

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, and wallarm_blocked that 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 wd service's own wallarm_wd_* metrics describing process supervision and wd scrape/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. Returns 200 while the node is running.

  • http://127.0.0.1:9446/ready — readiness. Returns 200 only after the node finishes initialization, or while it keeps operating on the last known configuration during a Wallarm Cloud outage. Returns 503 while 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 sync

AIO / 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: