Rework nova service state metrics
Dashboard changes after adding new metrics in telegraf:
- openstack_nova_state (up/down)
- openstack_nova_status (enabled/disabled)
To replace redundant _service/_services metrics.
PROD-18202
Change-Id: I6b6583e0b94408e8aa9eed5e5bf7035963506ce8
diff --git a/nova/files/grafana_dashboards/nova_prometheus.json b/nova/files/grafana_dashboards/nova_prometheus.json
index 76e45d6..e866b9f 100644
--- a/nova/files/grafana_dashboards/nova_prometheus.json
+++ b/nova/files/grafana_dashboards/nova_prometheus.json
@@ -591,7 +591,7 @@
},
{
"collapse": false,
- "height": "250px",
+ "height": 220,
"panels": [
{
"content": "<br />\n<h3 align=\"center\"> Compute nodes </h3>",
@@ -623,6 +623,83 @@
"thresholdLabels": false,
"thresholdMarkers": true
},
+ "id": 52,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "En/Up",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
"id": 9,
"interval": null,
"links": [],
@@ -656,11 +733,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -669,7 +747,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -732,11 +810,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -745,7 +824,7 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -808,11 +887,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -821,7 +901,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -861,17 +941,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -940,6 +1044,83 @@
"thresholdLabels": false,
"thresholdMarkers": true
},
+ "id": 53,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "En/Up",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
"id": 14,
"interval": null,
"links": [],
@@ -973,11 +1154,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -986,7 +1168,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1049,11 +1231,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1062,7 +1245,7 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1125,11 +1308,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1138,7 +1322,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1178,17 +1362,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -1290,11 +1498,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1303,7 +1512,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1366,11 +1575,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1379,7 +1589,84 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "En/Down",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 54,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1442,11 +1729,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1455,7 +1743,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1495,17 +1783,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -1607,11 +1919,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1620,7 +1933,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1683,11 +1996,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1696,7 +2010,84 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "En/Down",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 55,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1759,11 +2150,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1772,7 +2164,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1812,17 +2204,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -1924,11 +2340,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1937,7 +2354,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -2000,11 +2417,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -2013,7 +2431,84 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "En/Down",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 56,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -2076,11 +2571,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -2089,7 +2585,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -2129,17 +2625,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
diff --git a/nova/files/grafana_dashboards/nova_prometheus_fluentd.json b/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
index ce5257b..6f9dea0 100644
--- a/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
+++ b/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
@@ -591,7 +591,7 @@
},
{
"collapse": false,
- "height": "250px",
+ "height": 220,
"panels": [
{
"content": "<br />\n<h3 align=\"center\"> Compute nodes </h3>",
@@ -623,6 +623,83 @@
"thresholdLabels": false,
"thresholdMarkers": true
},
+ "id": 52,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "En/Up",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
"id": 9,
"interval": null,
"links": [],
@@ -656,11 +733,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -669,7 +747,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -732,11 +810,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -745,7 +824,7 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -808,11 +887,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -821,7 +901,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -861,17 +941,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.compute\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 1 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.compute\"} == 0 and openstack_nova_service_state{service=~\"nova.compute\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -940,6 +1044,83 @@
"thresholdLabels": false,
"thresholdMarkers": true
},
+ "id": 53,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "En/Up",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
"id": 14,
"interval": null,
"links": [],
@@ -973,11 +1154,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -986,7 +1168,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1049,11 +1231,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1062,7 +1245,7 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1125,11 +1308,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1138,7 +1322,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1178,17 +1362,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.scheduler\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 1 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.scheduler\"} == 0 and openstack_nova_service_state{service=~\"nova.scheduler\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -1290,11 +1498,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1303,7 +1512,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1366,11 +1575,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1379,7 +1589,84 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "En/Down",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 54,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1442,11 +1729,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1455,7 +1743,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1495,17 +1783,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.conductor\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 1 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.conductor\"} == 0 and openstack_nova_service_state{service=~\"nova.conductor\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -1607,11 +1919,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1620,7 +1933,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1683,11 +1996,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1696,7 +2010,84 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "En/Down",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 55,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1759,11 +2150,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1772,7 +2164,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -1812,17 +2204,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.cert\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 1 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.cert\"} == 0 and openstack_nova_service_state{service=~\"nova.cert\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -1924,11 +2340,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\", state=\"disabled\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -1937,7 +2354,7 @@
}
],
"thresholds": "",
- "title": "Disabled",
+ "title": "En/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -2000,11 +2417,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\", state=\"up\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -2013,7 +2431,84 @@
}
],
"thresholds": "",
- "title": "Up",
+ "title": "En/Down",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(71, 212, 59, 0.4)",
+ "rgba(245, 150, 40, 0.73)",
+ "rgba(225, 40, 40, 0.59)"
+ ],
+ "datasource": "prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "id": 56,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 1,
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 60
+ }
+ ],
+ "thresholds": "",
+ "title": "Dis/Up",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -2076,11 +2571,12 @@
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false
},
+ "tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\", state=\"down\"})",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -2089,7 +2585,7 @@
}
],
"thresholds": "",
- "title": "Down",
+ "title": "Dis/Down",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
@@ -2129,17 +2625,41 @@
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
- "span": 7,
+ "span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
- "expr": "max(openstack_nova_services{service=~\"nova.consoleauth\"}) by (state)",
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
"format": "time_series",
"intervalFactor": 2,
- "legendFormat": "{{ state }}",
+ "legendFormat": "en/up",
"refId": "A",
- "step": 4
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 1 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "en/down",
+ "refId": "B",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 1) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/up",
+ "refId": "C",
+ "step": 10
+ },
+ {
+ "expr": "count(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) or absent(openstack_nova_service_status{service=~\"nova.consoleauth\"} == 0 and openstack_nova_service_state{service=~\"nova.consoleauth\"} == 0) - 1",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "dis/down",
+ "refId": "D",
+ "step": 10
}
],
"thresholds": [],
@@ -3068,7 +3588,7 @@
"intervalFactor": 2,
"legendFormat": "{{ aggregate }}",
"refId": "A",
- "step": 4
+ "step": 10
}
],
"thresholds": [],
@@ -3145,7 +3665,7 @@
"intervalFactor": 2,
"legendFormat": "{{ aggregate }}",
"refId": "A",
- "step": 4
+ "step": 10
}
],
"thresholds": [],
@@ -3222,7 +3742,7 @@
"intervalFactor": 2,
"legendFormat": "{{ aggregate }}",
"refId": "A",
- "step": 4
+ "step": 10
}
],
"thresholds": [],
@@ -3299,7 +3819,7 @@
"intervalFactor": 2,
"legendFormat": "{{ aggregate }}",
"refId": "A",
- "step": 4
+ "step": 10
}
],
"thresholds": [],
@@ -3376,7 +3896,7 @@
"intervalFactor": 2,
"legendFormat": "{{ aggregate }}",
"refId": "A",
- "step": 4
+ "step": 10
}
],
"thresholds": [],
@@ -3453,7 +3973,7 @@
"intervalFactor": 2,
"legendFormat": "{{ aggregate }}",
"refId": "A",
- "step": 4
+ "step": 10
}
],
"thresholds": [],
@@ -3563,6 +4083,6 @@
},
"timezone": "browser",
"title": "Nova",
- "version": 3
+ "version": 4
}
{% endraw %}