LiminalQA uses Prometheus for metrics collection and Grafana for visualization.
cd deploy
docker-compose -f docker-compose.monitoring.yml up -d-
Grafana: http://localhost:3000
- Username:
admin - Password:
admin(change on first login!)
- Username:
-
Prometheus: http://localhost:9090
docker-compose -f docker-compose.monitoring.yml down┌──────────────┐
│ LiminalQA │──┐
│ Runner │ │
└──────────────┘ │
│ /metrics
┌──────────────┐ │ endpoint
│ LiminalQA │──┤
│ Ingest │ │
└──────────────┘ │
│
▼
┌──────────────┐
│ Prometheus │
│ (collector) │
└──────┬───────┘
│
▼
┌──────────────┐
│ Grafana │
│ (dashboard) │
└──────────────┘
See metrics.md for detailed metric descriptions.
liminalqa_tests_total- Total tests executedliminalqa_tests_passed_total- Successful testsliminalqa_test_failures_total- Failed testsliminalqa_test_duration_seconds- Test execution timeliminalqa_active_tests- Currently running testsliminalqa_findings_total- QA issues found
See alerts.md for alert descriptions.
- ServiceDown: Service is unreachable
- HighErrorRate: >10% test failure rate
- SlowTestExecution: p95 latency >30s
The main LiminalQA dashboard shows:
- Test Execution Rate - Tests/second over time
- Success Rate - Percentage of passing tests
- Duration Percentiles - p50, p95, p99 latencies
- Active Tests - Current concurrent tests
- Daily Statistics - Total tests and failures
- Resource Usage - Memory and CPU
To create custom dashboards:
- Login to Grafana (http://localhost:3000)
- Click "+" → "Dashboard"
- Add panels with PromQL queries
- Save dashboard
Test success rate:
sum(rate(liminalqa_tests_passed_total[5m]))
/
sum(rate(liminalqa_tests_total[5m]))
Average test duration:
rate(liminalqa_test_duration_seconds_sum[5m])
/
rate(liminalqa_test_duration_seconds_count[5m])
Tests by type:
sum by (test_type) (rate(liminalqa_tests_total[5m]))
- Check service is running:
docker ps - Verify
/metricsendpoint:curl http://localhost:8080/metrics - Check Prometheus targets: http://localhost:9090/targets
- Verify Grafana datasource configuration
- Check Prometheus connectivity
- Review Grafana logs:
docker logs liminalqa-grafana
Prometheus stores metrics in memory. If using too much:
- Reduce retention time in
prometheus.yml - Decrease scrape interval
- Add resource limits in docker-compose
For production:
- Change default passwords
- Enable authentication on Prometheus
- Set up persistent storage for metrics
- Configure alerting (Alertmanager)
- Use HTTPS with reverse proxy
- Set retention policy based on needs