summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErnesto Puerta <37327689+epuertat@users.noreply.github.com>2021-06-25 20:45:28 +0200
committerGitHub <noreply@github.com>2021-06-25 20:45:28 +0200
commit62e3a5c41c246479c41e1360358cc2f88b99d33e (patch)
treefe876657b960d326354d4be0c7b819f582be4383
parentMerge pull request #41721 from aaryanporwal/telemetry-ident-fix (diff)
parentmonitoring: remove instance label from ceph-cluster.json completely (diff)
downloadceph-62e3a5c41c246479c41e1360358cc2f88b99d33e.tar.xz
ceph-62e3a5c41c246479c41e1360358cc2f88b99d33e.zip
Merge pull request #41838 from p-se/grafana-clean-up
monitoring: Clean up Grafana dashboards Reviewed-by: Alfonso Martínez <almartin@redhat.com> Reviewed-by: Avan Thakkar <athakkar@redhat.com> Reviewed-by: Ernesto Puerta <epuertat@redhat.com> Reviewed-by: jan--f <NOT@FOUND> Reviewed-by: p-se <NOT@FOUND> Reviewed-by: Paul Cuzner <pcuzner@redhat.com>
-rw-r--r--monitoring/grafana/dashboards/ceph-cluster.json68
-rw-r--r--monitoring/grafana/dashboards/host-details.json2
-rw-r--r--monitoring/grafana/dashboards/pool-detail.json2
-rw-r--r--monitoring/grafana/dashboards/pool-overview.json2
-rw-r--r--monitoring/grafana/dashboards/rbd-details.json818
-rw-r--r--src/pybind/mgr/dashboard/ci/check_grafana_dashboards.py (renamed from src/pybind/mgr/dashboard/ci/check_grafana_uids.py)4
-rw-r--r--src/pybind/mgr/dashboard/tox.ini2
7 files changed, 440 insertions, 458 deletions
diff --git a/monitoring/grafana/dashboards/ceph-cluster.json b/monitoring/grafana/dashboards/ceph-cluster.json
index 447dbb29322..61a425d09f2 100644
--- a/monitoring/grafana/dashboards/ceph-cluster.json
+++ b/monitoring/grafana/dashboards/ceph-cluster.json
@@ -107,8 +107,9 @@
"tableColumn": "",
"targets": [
{
- "expr": "ceph_health_status{instance=~'$instance'}",
+ "expr": "ceph_health_status",
"format": "time_series",
+ "instant": true,
"interval": "$interval",
"intervalFactor": 1,
"refId": "A",
@@ -174,7 +175,7 @@
"displayAliasType": "Always",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "count(ceph_osd_metadata{instance=~\"$instance\"})",
+ "expr": "count(ceph_osd_metadata)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "All",
@@ -189,7 +190,7 @@
"displayAliasType": "Always",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "sum(ceph_osds_in{instance=~\"$instance\"})",
+ "expr": "sum(ceph_osds_in)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "In",
@@ -204,7 +205,7 @@
"displayAliasType": "Warning / Critical",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "sum(ceph_osd_in{instance=~\"$instance\"} == bool 0)",
+ "expr": "sum(ceph_osd_in == bool 0)",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -221,7 +222,7 @@
"displayAliasType": "Always",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "sum(ceph_osd_up{instance=~\"$instance\"})",
+ "expr": "sum(ceph_osd_up)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Up",
@@ -237,7 +238,7 @@
"displayAliasType": "Warning / Critical",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "sum(ceph_osd_up{instance=~\"$instance\"} == bool 0)",
+ "expr": "sum(ceph_osd_up == bool 0)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Down",
@@ -312,7 +313,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "sum(ceph_osd_stat_bytes_used{instance=~\"$instance\"})/sum(ceph_osd_stat_bytes{instance=~\"$instance\"})",
+ "expr": "sum(ceph_osd_stat_bytes_used)/sum(ceph_osd_stat_bytes)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Used",
@@ -530,28 +531,28 @@
"steppedLine": false,
"targets": [
{
- "expr": "quantile(0.95, ceph_osd_apply_latency_ms{instance=~\"$instance\"})",
+ "expr": "quantile(0.95, ceph_osd_apply_latency_ms)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Apply Latency P_95",
"refId": "A"
},
{
- "expr": "quantile(0.95, ceph_osd_commit_latency_ms{instance=~\"$instance\"})",
+ "expr": "quantile(0.95, ceph_osd_commit_latency_ms)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Commit Latency P_95",
"refId": "B"
},
{
- "expr": "avg(ceph_osd_apply_latency_ms{instance=~\"$instance\"})",
+ "expr": "avg(ceph_osd_apply_latency_ms)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Avg Apply Latency",
"refId": "C"
},
{
- "expr": "avg(ceph_osd_commit_latency_ms{instance=~\"$instance\"})",
+ "expr": "avg(ceph_osd_commit_latency_ms)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Avg Commit Latency",
@@ -629,7 +630,7 @@
"displayAliasType": "Always",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "sum(ceph_mon_quorum_status{instance=~\"$instance\"})",
+ "expr": "sum(ceph_mon_quorum_status)",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -646,7 +647,7 @@
"displayAliasType": "Always",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "count(ceph_mon_quorum_status{instance=~\"$instance\"})",
+ "expr": "count(ceph_mon_quorum_status)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Total",
@@ -663,7 +664,7 @@
"displayAliasType": "Warning / Critical",
"displayType": "Annotation",
"displayValueWithAlias": "Never",
- "expr": "count(ceph_mon_quorum_status{instance=~\"$instance\"}) / sum(ceph_mon_quorum_status{instance=~\"$instance\"})",
+ "expr": "count(ceph_mon_quorum_status) / sum(ceph_mon_quorum_status)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "MONs out of Quorum",
@@ -710,7 +711,7 @@
"displayAliasType": "Always",
"displayType": "Regular",
"displayValueWithAlias": "When Alias Displayed",
- "expr": "ceph_mds_server_handle_client_session{instance=~\"$instance\"}",
+ "expr": "ceph_mds_server_handle_client_session",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Clients",
@@ -764,14 +765,14 @@
"steppedLine": false,
"targets": [
{
- "expr": "sum(irate(ceph_osd_op_w_in_bytes{instance=~\"$instance\"}[1m]))",
+ "expr": "sum(irate(ceph_osd_op_w_in_bytes[1m]))",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Writes",
"refId": "A"
},
{
- "expr": "sum(irate(ceph_osd_op_r_out_bytes{instance=~\"$instance\"}[1m]))",
+ "expr": "sum(irate(ceph_osd_op_r_out_bytes[1m]))",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "Reads",
@@ -851,7 +852,7 @@
"steppedLine": false,
"targets": [
{
- "expr": "sum(deriv(ceph_pool_stored{instance=~\"$instance\"}[1m]))",
+ "expr": "sum(deriv(ceph_pool_stored[1m]))",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
@@ -924,7 +925,7 @@
"span": 12,
"targets": [
{
- "expr": "ceph_osd_stat_bytes_used{instance=~'$instance'} / ceph_osd_stat_bytes{instance=~'$instance'}",
+ "expr": "ceph_osd_stat_bytes_used / ceph_osd_stat_bytes",
"format": "time_series",
"interval": "1m",
"intervalFactor": 1,
@@ -946,7 +947,7 @@
"xBucketNumber": null,
"xBucketSize": "",
"yAxis": {
- "decimals": null,
+ "decimals": 2,
"format": "percentunit",
"logBase": 1,
"max": null,
@@ -986,7 +987,7 @@
"links": [],
"targets": [
{
- "expr": "ceph_osd_numpg{instance=~\"$instance\"}",
+ "expr": "ceph_osd_numpg",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "#PGs",
@@ -1190,29 +1191,6 @@
"query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
"refresh": 2,
"type": "interval"
- },
- {
- "allFormat": "glob",
- "allValue": null,
- "current": {},
- "datasource": "$datasource",
- "hide": 0,
- "hideLabel": false,
- "includeAll": true,
- "label": "Exporter Instance",
- "multi": false,
- "multiFormat": "glob",
- "name": "instance",
- "options": [],
- "query": "label_values(ceph_health_status, instance)",
- "refresh": 1,
- "regex": "",
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
}
]
},
@@ -1245,7 +1223,7 @@
"30d"
]
},
- "timezone": "browser",
+ "timezone": "",
"title": "Ceph - Cluster",
"version": 13
}
diff --git a/monitoring/grafana/dashboards/host-details.json b/monitoring/grafana/dashboards/host-details.json
index 88185a95a15..b002ad2f09d 100644
--- a/monitoring/grafana/dashboards/host-details.json
+++ b/monitoring/grafana/dashboards/host-details.json
@@ -1208,7 +1208,7 @@
"30d"
]
},
- "timezone": "browser",
+ "timezone": "",
"title": "Host Details",
"uid": "rtOg0AiWz",
"version": 4
diff --git a/monitoring/grafana/dashboards/pool-detail.json b/monitoring/grafana/dashboards/pool-detail.json
index 41554ed3068..dd6bc3927fa 100644
--- a/monitoring/grafana/dashboards/pool-detail.json
+++ b/monitoring/grafana/dashboards/pool-detail.json
@@ -658,7 +658,7 @@
"30d"
]
},
- "timezone": "browser",
+ "timezone": "",
"title": "Ceph Pool Details",
"uid": "-xyV8KCiz",
"version": 1
diff --git a/monitoring/grafana/dashboards/pool-overview.json b/monitoring/grafana/dashboards/pool-overview.json
index cd699348b07..c405f6075e1 100644
--- a/monitoring/grafana/dashboards/pool-overview.json
+++ b/monitoring/grafana/dashboards/pool-overview.json
@@ -1554,7 +1554,7 @@
"30d"
]
},
- "timezone": "browser",
+ "timezone": "",
"title": "Ceph Pools Overview",
"uid": "z99hzWtmk",
"variables": {
diff --git a/monitoring/grafana/dashboards/rbd-details.json b/monitoring/grafana/dashboards/rbd-details.json
index 68fffad1ed0..59932a5ee05 100644
--- a/monitoring/grafana/dashboards/rbd-details.json
+++ b/monitoring/grafana/dashboards/rbd-details.json
@@ -1,409 +1,409 @@
-{
- "__inputs": [],
- "__requires": [
- {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "5.3.3"
- },
- {
- "type": "panel",
- "id": "graph",
- "name": "Graph",
- "version": "5.0.0"
- }
- ],
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": "-- Grafana --",
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "type": "dashboard"
- }
- ]
- },
- "description": "Detailed Performance of RBD Images (IOPS/Throughput/Latency)",
- "editable": false,
- "gnetId": null,
- "graphTooltip": 0,
- "id": null,
- "iteration": 1584428820779,
- "links": [],
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$Datasource",
- "fill": 1,
- "gridPos": {
- "h": 9,
- "w": 8,
- "x": 0,
- "y": 0
- },
- "id": 6,
- "legend": {
- "avg": false,
- "current": false,
- "hideEmpty": false,
- "hideZero": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null as zero",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "irate(ceph_rbd_write_ops{pool=\"$Pool\", image=\"$Image\"}[30s])",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "Write",
- "refId": "A"
- },
- {
- "expr": "irate(ceph_rbd_read_ops{pool=\"$Pool\", image=\"$Image\"}[30s])",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "Read",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "IOPS",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "iops",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "iops",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": true,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$Datasource",
- "fill": 1,
- "gridPos": {
- "h": 9,
- "w": 8,
- "x": 8,
- "y": 0
- },
- "id": 4,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null as zero",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "irate(ceph_rbd_write_bytes{pool=\"$Pool\", image=\"$Image\"}[30s])",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "Write",
- "refId": "A"
- },
- {
- "expr": "irate(ceph_rbd_read_bytes{pool=\"$Pool\", image=\"$Image\"}[30s])",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "Read",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Throughput",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "Bps",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "Bps",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": true,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "$Datasource",
- "fill": 1,
- "gridPos": {
- "h": 9,
- "w": 8,
- "x": 16,
- "y": 0
- },
- "id": 2,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null as zero",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "irate(ceph_rbd_write_latency_sum{pool=\"$Pool\", image=\"$Image\"}[30s]) / irate(ceph_rbd_write_latency_count{pool=\"$Pool\", image=\"$Image\"}[30s])",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "Write",
- "refId": "A"
- },
- {
- "expr": "irate(ceph_rbd_read_latency_sum{pool=\"$Pool\", image=\"$Image\"}[30s]) / irate(ceph_rbd_read_latency_count{pool=\"$Pool\", image=\"$Image\"}[30s])",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "Read",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Average Latency",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "ns",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "ns",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": true,
- "alignLevel": null
- }
- }
- ],
- "refresh": false,
- "schemaVersion": 16,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "current": {},
- "hide": 0,
- "label": null,
- "name": "Datasource",
- "options": [],
- "query": "prometheus",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "type": "datasource"
- },
- {
- "allValue": null,
- "current": {},
- "datasource": "$Datasource",
- "hide": 0,
- "includeAll": false,
- "label": null,
- "multi": false,
- "name": "Pool",
- "options": [],
- "query": "label_values(pool)",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- },
- {
- "allValue": null,
- "current": {},
- "datasource": "$Datasource",
- "hide": 0,
- "includeAll": false,
- "label": null,
- "multi": false,
- "name": "Image",
- "options": [],
- "query": "label_values(image)",
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- }
- ]
- },
- "time": {
- "from": "now-1h",
- "to": "now"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "timezone": "",
- "title": "RBD Details",
- "uid": "YhCYGcuZz",
- "version": 7
-} \ No newline at end of file
+{
+ "__inputs": [],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "5.3.3"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": "5.0.0"
+ }
+ ],
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "description": "Detailed Performance of RBD Images (IOPS/Throughput/Latency)",
+ "editable": false,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "id": null,
+ "iteration": 1584428820779,
+ "links": [],
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$Datasource",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 8,
+ "x": 0,
+ "y": 0
+ },
+ "id": 6,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "hideEmpty": false,
+ "hideZero": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null as zero",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "irate(ceph_rbd_write_ops{pool=\"$Pool\", image=\"$Image\"}[30s])",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Write",
+ "refId": "A"
+ },
+ {
+ "expr": "irate(ceph_rbd_read_ops{pool=\"$Pool\", image=\"$Image\"}[30s])",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Read",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "IOPS",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "iops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "iops",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": true,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$Datasource",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 8,
+ "x": 8,
+ "y": 0
+ },
+ "id": 4,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null as zero",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "irate(ceph_rbd_write_bytes{pool=\"$Pool\", image=\"$Image\"}[30s])",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Write",
+ "refId": "A"
+ },
+ {
+ "expr": "irate(ceph_rbd_read_bytes{pool=\"$Pool\", image=\"$Image\"}[30s])",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Read",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Throughput",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "Bps",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "Bps",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": true,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$Datasource",
+ "fill": 1,
+ "gridPos": {
+ "h": 9,
+ "w": 8,
+ "x": 16,
+ "y": 0
+ },
+ "id": 2,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null as zero",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "irate(ceph_rbd_write_latency_sum{pool=\"$Pool\", image=\"$Image\"}[30s]) / irate(ceph_rbd_write_latency_count{pool=\"$Pool\", image=\"$Image\"}[30s])",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Write",
+ "refId": "A"
+ },
+ {
+ "expr": "irate(ceph_rbd_read_latency_sum{pool=\"$Pool\", image=\"$Image\"}[30s]) / irate(ceph_rbd_read_latency_count{pool=\"$Pool\", image=\"$Image\"}[30s])",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "Read",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Average Latency",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "ns",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": true,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "current": {},
+ "hide": 0,
+ "label": null,
+ "name": "Datasource",
+ "options": [],
+ "query": "prometheus",
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "type": "datasource"
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "$Datasource",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "Pool",
+ "options": [],
+ "query": "label_values(pool)",
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "$Datasource",
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": false,
+ "name": "Image",
+ "options": [],
+ "query": "label_values(image)",
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-1h",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "RBD Details",
+ "uid": "YhCYGcuZz",
+ "version": 7
+}
diff --git a/src/pybind/mgr/dashboard/ci/check_grafana_uids.py b/src/pybind/mgr/dashboard/ci/check_grafana_dashboards.py
index 250fb8bad48..47e553c84e5 100644
--- a/src/pybind/mgr/dashboard/ci/check_grafana_uids.py
+++ b/src/pybind/mgr/dashboard/ci/check_grafana_dashboards.py
@@ -79,6 +79,10 @@ def get_grafana_dashboards(base_dir):
assert dashboard_config['id'] is None, \
"'id' not null: '{}'".format(dashboard_config['id'])
+ assert 'timezone' not in dashboard_config or dashboard_config['timezone'] == '', \
+ ("'timezone' field must not be set to anything but an empty string or be "
+ "omitted completely")
+
# Grafana dashboard checks
title = dashboard_config['title']
assert len(title) > 0, \
diff --git a/src/pybind/mgr/dashboard/tox.ini b/src/pybind/mgr/dashboard/tox.ini
index 1cda4c45acd..50224bb8f65 100644
--- a/src/pybind/mgr/dashboard/tox.ini
+++ b/src/pybind/mgr/dashboard/tox.ini
@@ -154,7 +154,7 @@ commands =
[testenv:check]
commands =
- python ci/check_grafana_uids.py frontend/src/app ../../../../monitoring/grafana/dashboards
+ python ci/check_grafana_dashboards.py frontend/src/app ../../../../monitoring/grafana/dashboards
[testenv:openapi-{check,fix}]
basepython = python3