Integrating Sakuli with Prometheus for End-to-End Monitoring
Overview
Sakuli provides native support for forwarding test results into Prometheus. This integration allows teams to track performance, availability, and reliability of business-critical workflows by using Prometheus metrics and visualizing them in dashboards such as Grafana.
Benefits
Real-time visibility of Sakuli test executions.
Standard Prometheus metrics for monitoring and alerting.
Easy integration with existing DevOps pipelines.
Combine functional tests with infrastructure monitoring.
Configuration
Run Sakuli in a container with Prometheus exporter enabled:
- docker run -d
-p 8080:8080 -e PROMETHEUS_FORWARDER=true sakuli/sakuli
Add Prometheus scrape configuration in
prometheus.yml:- scrape_configs:
job_name: “sakuli” static_configs:
targets: [“localhost:8080”]
Verify Prometheus metrics by opening:
Example Metrics
Sakuli forwards test case metrics in Prometheus format. Example output:
# HELP sakuli_testcase_duration_seconds Duration of Sakuli test case in seconds
# TYPE sakuli_testcase_duration_seconds gauge
sakuli_testcase_duration_seconds{testCase="Login Workflow"} 12.8
# HELP sakuli_testcase_status Status of Sakuli test case (0=OK,1=WARNING,2=CRITICAL,3=UNKNOWN)
# TYPE sakuli_testcase_status gauge
sakuli_testcase_status{testCase="Login Workflow"} 2
Alerting Workflow
Once Sakuli metrics are exposed, Prometheus alerting rules can detect failures.
Example alert.rules.yml:
groups:
- name: sakuli-alerts
rules:
- alert: SakuliTestFailure
expr: sakuli_testcase_status > 0
for: 1m
labels:
severity: critical
annotations:
summary: "Sakuli Test Case Failed"
description: "Test case {{ $labels.testCase }} failed with status {{ $value }}"
Visualizing in Grafana
Import Prometheus as a data source in Grafana.
Create dashboards for test case status, execution time, and error trends.
Combine application-level monitoring with Sakuli E2E test results.
References
Sakuli Documentation: https://sakuli.io/docs
Prometheus Documentation: https://prometheus.io/docs/
Grafana Documentation: https://grafana.com/docs/