Files
RustProxy/grafana/README.md
T
Claude d40c30d0e8 v0.35.1: performance, AGPL licensing and documentation overhaul
- Web Server reads static files inline; proxy middleware chain flattened
- About window with license summary and project links; AGPL-3.0-or-later
- Rewritten documentation: feature list, screenshots, performance guide
- Fix false spikes in per-Vhost request-rate charts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMsgSXoK4Bph2vU6fSBkAH
2026-11-05 18:29:56 +01:00

52 lines
2.9 KiB
Markdown

# Grafana dashboard
`rustproxy-overview.json` is a provisioning/import dashboard for the dedicated
RustProxy Prometheus exporter. It covers global traffic, status classes, vhost
latency, backend health/latency, upstream-client generation/retry/rotation diagnostics,
a dedicated Docker-vhost section, hot/cold/transient cache memory, Linux process and cgroup diagnostics, HTTP/2/HTTP/3/TLS/WebSocket
counters, Layer-4 streams, structured-log sink health, configuration inventory and bounded Traffic analytics.
The **Docker vhosts** row uses only the dedicated `rust_proxy_docker_*` metric
families and includes configured/enabled counts, request/error rates, p95 exchange
latency, backend health/EWMA latency/active work, traffic, probe age and upstream-client lifecycle/retry panels. Dashboard
variables **Docker agent** and **Docker service** filter only this section, which keeps
multi-agent installations readable without changing the ordinary vhost panels.
The **Web Server** row adds header-ready request rates, status-class and
static/PHP/other donut breakdowns, error percentage, response-header latency,
payload byte rates, and downstream compression by codec. **PHP-FPM / FastCGI**
adds request activity, RustProxy PHP permit capacity, and errors grouped by
finite reason. **Per Web Service** shows top service rates, HTTP methods and
selected status codes, while **WWW / PHP correlation** compares PHP load and
Web Server errors with cache activity. Use the **Web service** variable to
filter the new panels by configured Web Service ID. All new panels are
added to the existing dashboard without changing the legacy rows.
The **Traffic analytics and Web Server** row uses the `rust_proxy_traffic_*` families.
The **Traffic vhost** variable filters that row and exposes Web Server request rate,
serving-source rate, top countries, fixed User-Agent families, HTTP methods, status
classes, cache outcomes, capture-state gauges and configured-route traffic. Raw IP addresses, request paths and full User-Agent strings
are intentionally absent from Prometheus labels.
Import the JSON in Grafana and select a Prometheus datasource when prompted. The
dashboard expects a RustProxy version that exports the Web Server metric names
(and also retains the older panels); a scrape interval around 15s is suitable.
Collectors can be disabled in RustProxy settings; panels for disabled collectors
will simply show no series.
Recommended scrape job:
```yaml
scrape_configs:
- job_name: rustproxy
scrape_interval: 15s
metrics_path: /metrics
static_configs:
- targets: ['rustproxy-host:9191']
```
When the exporter is protected with a bearer token, configure Prometheus
`authorization.credentials_file`. For a private monitoring VLAN, RustProxy can
instead explicitly allow actual peers from configured trusted CIDRs to scrape
without a token. Forwarded client-IP headers never satisfy that trust check.