Prometheus
Prometheus and Grafana
What it does
When metrics.enabled is true, the Manager exposes Prometheus text at metrics.path (default /metrics) on the API listener. Access is admin JWT + RoleAuth("admin"). Agent optional metrics bind 127.0.0.1:9090 by default.
In-tree Grafana dashboards (operator-hosted Grafana):
grafana/dashboards/security-overview.jsongrafana/dashboards/agent-status.jsongrafana/dashboards/attack-patterns.jsongrafana/dashboards/system-performance.jsongrafana/dashboards/authentication.json- Enterprise tree also has
cluster-ha.json(cluster is not a public HA product)
Provisioning samples: grafana/provisioning/datasources.yml, dashboards.yml.
Edition
SHARED scrape. Cluster dashboard is Enterprise-tree only and still not a certified HA product.
Prerequisites
- Prometheus that can present admin credentials (bearer JWT) to the Manager
- Grafana with a Prometheus datasource
metrics.enabled: trueon Manager- Optional Agent
metrics.enabled: truefor localhost scrape via node exporter pattern / local Prometheus
Required permissions / credentials
- Admin JWT (same privilege as console)
- TLS trust to the Manager
- Do not scrape with anonymous access
Configuration
Manager:
metrics:
enabled: true
path: /metricsAgent:
metrics:
enabled: false
bind_address: "127.0.0.1"
port: 9090
metrics_path: /metrics
health_path: /health
allowed_cidrs: [] # empty = localhost onlySetup
- Enable Manager metrics; restart.
zwallctl loginand scrape:
curl -sS https://manager.example.com:8443/metrics \
-H "Authorization: Bearer TOKEN"- Configure Prometheus
bearer_token(file, not argv). - Import JSON dashboards from the same edition tree into operator-hosted Grafana.
- Optional: scrape Agent
127.0.0.1:9090/metricsfrom a local Prometheus on that host only.
Verification
- HTTP 200 Prometheus text
- Disabled: route skipped (
metrics.enabledfalse) - 401 without admin JWT
Expected signals / results
Counters for log ingest, license denials, login, Agent health — names are code-owned. Grafana panels show series when the datasource matches. Traffic rates in dashboards are not a published PPS product number.
Failure modes
Scroll sideways to see the full table. Use the arrow keys when focused.
| Symptom | Meaning |
|---|---|
| 404 / connection | metrics disabled or wrong path |
| 401/403 | not admin |
| empty Grafana | wrong Prometheus job / TLS |
Troubleshooting
- Path override
metrics.path - Split-mode: scrape the API port, not an unrelated web port
- Agent bind remains loopback unless you knowingly set
allowed_cidrs
Security considerations
Scrape credentials are admin-equivalent. Prefer a dedicated admin with monitoring scope only if you introduce one; today RoleAuth is admin. Do not expose Agent metrics on a public interface.
Limitations
- Not a SaaS
- Cluster dashboard ≠ certified HA
- No published cardinality/retention SLA