Setup Prometheus Exporter in Jenkins
Note This post is part of the DevOps Journey
To monitor Jenkins with Prometheus, we need to expose Jenkins metrics. Jenkins has a built-in Prometheus metrics endpoint that we can enable.
Install Prometheus Metrics Plugin
- Go to Jenkins Dashboard → Manage Jenkins → Manage Plugins
- Search for “Prometheus metrics” plugin
- Install and restart Jenkins
Configure Prometheus Metrics
After installation, Jenkins will automatically expose metrics at:
http://your-jenkins-url/prometheus/
Access Metrics Endpoint
You can verify the metrics are being exposed by visiting:
curl http://localhost:8080/prometheus/
You should see output like:
# HELP jenkins_builds_duration_milliseconds_summary Build times in milliseconds
# TYPE jenkins_builds_duration_milliseconds_summary summary
jenkins_builds_duration_milliseconds_summary{quantile="0.5",} 1234.0
jenkins_builds_duration_milliseconds_summary{quantile="0.95",} 5678.0
Configure Prometheus to Scrape Jenkins
Add Jenkins as a target in your prometheus.yml
:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'jenkins'
static_configs:
- targets: ['localhost:8080']
metrics_path: '/prometheus'
scrape_interval: 5s
Key Jenkins Metrics
The plugin exposes various useful metrics:
- Build Metrics:
jenkins_builds_duration_milliseconds_summary
- Job Metrics:
jenkins_job_count_total
- Queue Metrics:
jenkins_queue_size_value
- Node Metrics:
jenkins_node_count_value
- Executor Metrics:
jenkins_executor_count_value
Restart Prometheus
After updating the configuration:
docker restart prometheus
Verify in Prometheus UI
- Open Prometheus UI at http://localhost:9090
- Go to Status → Targets
- Verify Jenkins target is “UP”
- Query some metrics like
jenkins_builds_duration_milliseconds_summary
Grafana Dashboard
Import Jenkins dashboard ID 9964
from Grafana’s dashboard repository for pre-built Jenkins visualizations.
Leave a comment