Add handling multiple Jenkins instances
In dashboard added dropdown for selecting
instance - fixes multiple series error.
Relabeled instance to host.
Change-Id: Ia2fe08b35a75222fc9211522d55be6b26ad2708e
Related-bug: PROD-26023 (PROD:26023)
diff --git a/jenkins/files/grafana_dashboards/jenkins_prometheus.json b/jenkins/files/grafana_dashboards/jenkins_prometheus.json
index e285236..61c489b 100644
--- a/jenkins/files/grafana_dashboards/jenkins_prometheus.json
+++ b/jenkins/files/grafana_dashboards/jenkins_prometheus.json
@@ -97,7 +97,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "jenkins_health_check_score",
+ "expr": "jenkins_health_check_score{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -187,14 +187,14 @@
"tableColumn": "",
"targets": [
{
- "expr": "jenkins_node_online_value",
+ "expr": "jenkins_node_online_value{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "B"
}
],
"thresholds": "0,1",
- "title": "Jenkins nodes online",
+ "title": "Jenkins nodes online{host=~\"$host\"}",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [],
@@ -264,7 +264,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "jenkins_node_count_value",
+ "expr": "jenkins_node_count_value{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"refId": "B"
@@ -341,7 +341,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "jenkins_plugins_failed",
+ "expr": "jenkins_plugins_failed{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -420,7 +420,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "jenkins_queue_size_value",
+ "expr": "jenkins_queue_size_value{host=~\"$host\"}",
"step": 120,
"textEditor": false
}
@@ -502,7 +502,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "(vm_memory_total_max{job=\"jenkins\"} - vm_memory_total_used{job=\"jenkins\"}) / vm_memory_total_max{job=\"jenkins\"} * 100.0",
+ "expr": "(vm_memory_total_max{job=\"jenkins\",host=~\"$host\"} - vm_memory_total_used{job=\"jenkins\",host=~\"$host\"}) / vm_memory_total_max{job=\"jenkins\",host=~\"$host\"} * 100.0",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -587,7 +587,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "vm_uptime_milliseconds{job=\"jenkins\"}",
+ "expr": "vm_uptime_milliseconds{job=\"jenkins\",host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -685,7 +685,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "jenkins_executor_free_value",
+ "expr": "jenkins_executor_free_value{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -769,7 +769,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "jenkins_executor_in_use_value",
+ "expr": "jenkins_executor_in_use_value{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -833,7 +833,7 @@
"steppedLine": false,
"targets": [
{
- "expr": "jenkins_job_buildable_duration_count",
+ "expr": "jenkins_job_buildable_duration_count{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "buildable",
@@ -841,28 +841,28 @@
"step": 10
},
{
- "expr": "jenkins_job_building_duration_count",
+ "expr": "jenkins_job_building_duration_count{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "building",
"refId": "B"
},
{
- "expr": "jenkins_job_scheduled_total",
+ "expr": "jenkins_job_scheduled_total{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "scheduled",
"refId": "C"
},
{
- "expr": "jenkins_job_waiting_duration_count",
+ "expr": "jenkins_job_waiting_duration_count{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "waiting",
"refId": "D"
},
{
- "expr": "jenkins_job_blocked_duration_count",
+ "expr": "jenkins_job_blocked_duration_count{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "blocked",
@@ -987,7 +987,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "rate(jenkins_job_building_duration_count[1m])",
+ "expr": "rate(jenkins_job_building_duration_count{host=~\"$host\"}[1m])",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -1070,7 +1070,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "rate(jenkins_job_queuing_duration_count[1m])",
+ "expr": "rate(jenkins_job_queuing_duration_count{host=~\"$host\"}[1m])",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
@@ -1132,7 +1132,7 @@
"steppedLine": false,
"targets": [
{
- "expr": "jenkins_job_queuing_duration",
+ "expr": "jenkins_job_queuing_duration{host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "{{ quantile }}",
@@ -1236,10 +1236,10 @@
"steppedLine": false,
"targets": [
{
- "expr": "vm_cpu_load{job=\"jenkins\"}",
+ "expr": "vm_cpu_load{job=\"jenkins\",host=~\"$host\"}",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ instance }}",
+ "legendFormat": "{{ host }}",
"refId": "A",
"step": 5
}
@@ -1291,7 +1291,28 @@
"style": "dark",
"tags": [],
"templating": {
- "list": []
+ "list": [
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": null,
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "host",
+ "options": [],
+ "query": "label_values(jenkins_health_check_score,host)",
+ "refresh": 1,
+ "regex": "",
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
},
"time": {
"from": "now-1h",
@@ -1325,6 +1346,6 @@
"timezone": "browser",
"title": "Jenkins",
"uid": null,
- "version": 1
+ "version": 2
}
{%- endraw %}
diff --git a/jenkins/meta/prometheus.yml b/jenkins/meta/prometheus.yml
index b2ba5c5..b8a350b 100644
--- a/jenkins/meta/prometheus.yml
+++ b/jenkins/meta/prometheus.yml
@@ -8,4 +8,10 @@
endpoint:
- address: {{ client.master.host }}
port: {{ client.master.port }}
+ relabel_configs:
+ - regex: {{ client.master.host }}:{{ client.master.port }}
+ replacement: {{ grains['host'] }}
+ source_labels: "__address__"
+ target_label: "host"
+
{%- endif %}