Monitoring
Riffle exposes HTTP metrics and can push labeled metrics to a Prometheus Pushgateway.
Metrics configuration
[metrics]
http_port = 19998
push_gateway_endpoint = "http://pushgateway.example.com:9091"
push_interval_sec = 10
labels = { env = "production", service = "riffle" }
Use stable labels such as environment, cluster, and service. Avoid per-application or other high-cardinality label values at the server level.
Grafana dashboard
The repository’s grafana directory contains dashboard assets. Configure Prometheus collection first, then import the dashboard JSON into Grafana.
The Docker integration environment preconfigures:
- Prometheus at
http://localhost:9090 - Pushgateway at
http://localhost:9091 - Grafana at
http://localhost:3000 - Riffle metrics on ports
19998and19999
What to watch
Build an operational view around:
- server health and coordinator heartbeat continuity;
- memory tier occupancy and spill activity;
- local disk availability, throughput, and latency;
- HDFS request latency and failures when enabled;
- read/write request rates and error counts;
- runtime pool saturation and queueing.
Pair service metrics with host-level CPU, memory, network, and per-device disk metrics. Shuffle bottlenecks often move between those resources as workload shape changes.
First-response sequence
- Confirm coordinator and server processes are healthy.
- Check whether the issue affects one server, one rack, or the full cluster.
- Compare memory pressure, spill rate, and disk latency.
- Check request errors and transport saturation.
- Capture profiling data only after establishing the affected process and time window.
Continue with Profiling or Disk performance for deeper inspection.