Skip to main content

Grafana Dashboards

Use the Prometheus setup and the persistent Docker deployment. Configure Grafana’s Prometheus data source as http://prometheus:9090 when both services share the Compose network. Use a password you choose and a persistent Grafana volume. The example published port is http://localhost:3001; data source provisioning and authentication depend on your Grafana deployment.

Dashboard Panels

Processing duration P95 by task type:
Average handler execution time:
Terminal success percentage:
Terminal failure percentage:
Ratios can be undefined while idle. Choose time windows long enough for your traffic, and keep timeout failures distinct when diagnosing handlers.

Interpret the Panels

Counters reset on daemon restart. They are process totals, not lifetime counts in the database. A redriven task or recovered interrupted task can execute more than once. queue_size is a one-second Pending sample. It excludes already claimed tasks and includes retries awaiting backoff; zero Pending does not mean every task is complete. /health gives a fresh Pending count but does not validate each handler’s readiness. Use completed smoke tasks for that check. Pool occupancy is more useful than worker_active and worker_idle: the current worker path does not update those two registered gauges. Read the metric definitions before choosing alerts.

Alerts

Configure Grafana alert rules using the actual queries above. Start with queue depth and scrape availability, then add application-specific completion, failure, and latency thresholds. A fixed threshold such as 30 seconds is only useful if it matches your handler timeout and normal runtime.