Fixing System Dashboards for Charmed OSM 61/10461/3
authorsousaedu <eduardo.sousa@canonical.com>
Mon, 8 Mar 2021 00:15:41 +0000 (01:15 +0100)
committersousaedu <eduardo.sousa@canonical.com>
Mon, 8 Mar 2021 08:44:29 +0000 (09:44 +0100)
Change-Id: I53f8acf12a284f2479d79f614fb1ee9afcfde618
Signed-off-by: sousaedu <eduardo.sousa@canonical.com>
13 files changed:
installers/charm/grafana/files/kafka_exporter_dashboard.json [new file with mode: 0644]
installers/charm/grafana/files/kafka_exporter_dashboard.yaml [deleted file]
installers/charm/grafana/files/mongodb_exporter_dashboard.json [new file with mode: 0644]
installers/charm/grafana/files/mongodb_exporter_dashboard.yaml [deleted file]
installers/charm/grafana/files/mysql_exporter_dashboard.json [new file with mode: 0644]
installers/charm/grafana/files/mysql_exporter_dashboard.yaml [deleted file]
installers/charm/grafana/files/nodes_exporter_dashboard.json [new file with mode: 0644]
installers/charm/grafana/files/nodes_exporter_dashboard.yaml [deleted file]
installers/charm/grafana/files/summary_dashboard.json [new file with mode: 0644]
installers/charm/grafana/files/summary_dashboard.yaml [deleted file]
installers/charm/grafana/src/charm.py
installers/charm/grafana/src/pod_spec.py
installers/charm/mongodb-exporter/files/mongodb_exporter_dashboard.json

diff --git a/installers/charm/grafana/files/kafka_exporter_dashboard.json b/installers/charm/grafana/files/kafka_exporter_dashboard.json
new file mode 100644 (file)
index 0000000..5b7552a
--- /dev/null
@@ -0,0 +1,609 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "Kafka resource usage and throughput",
+  "editable": true,
+  "gnetId": 7589,
+  "graphTooltip": 0,
+  "id": 10,
+  "iteration": 1578848023483,
+  "links": [],
+  "panels": [
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 10,
+        "w": 10,
+        "x": 0,
+        "y": 0
+      },
+      "id": 14,
+      "legend": {
+        "alignAsTable": true,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": 480,
+        "sort": "max",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "connected",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(kafka_topic_partition_current_offset - kafka_topic_partition_oldest_offset{instance=\"$instance\", topic=~\"$topic\"}) by (topic)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{topic}}",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Messages stored per topic",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 10,
+        "w": 10,
+        "x": 10,
+        "y": 0
+      },
+      "id": 12,
+      "legend": {
+        "alignAsTable": true,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": 480,
+        "sort": "max",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "connected",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(kafka_consumergroup_lag{instance=\"$instance\",topic=~\"$topic\"}) by (consumergroup, topic) ",
+          "format": "time_series",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": " {{topic}} ({{consumergroup}})",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Lag by  Consumer Group",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 10,
+        "w": 10,
+        "x": 0,
+        "y": 10
+      },
+      "id": 16,
+      "legend": {
+        "alignAsTable": true,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": 480,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "connected",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(delta(kafka_topic_partition_current_offset{instance=~'$instance', topic=~\"$topic\"}[5m])/5) by (topic)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{topic}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Messages produced per minute",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 10,
+        "w": 10,
+        "x": 10,
+        "y": 10
+      },
+      "id": 18,
+      "legend": {
+        "alignAsTable": true,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": 480,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "connected",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(delta(kafka_consumergroup_current_offset{instance=~'$instance',topic=~\"$topic\"}[5m])/5) by (consumergroup, topic)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": " {{topic}} ({{consumergroup}})",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Messages consumed per minute",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": true,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 20,
+        "x": 0,
+        "y": 20
+      },
+      "id": 8,
+      "legend": {
+        "alignAsTable": true,
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": false,
+        "rightSide": true,
+        "show": true,
+        "sideWidth": 420,
+        "total": false,
+        "values": true
+      },
+      "lines": false,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum by(topic) (kafka_topic_partitions{instance=\"$instance\",topic=~\"$topic\"})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{topic}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Partitions per Topic",
+      "tooltip": {
+        "shared": false,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "series",
+        "name": null,
+        "show": false,
+        "values": [
+          "current"
+        ]
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    }
+  ],
+  "refresh": "5s",
+  "schemaVersion": 19,
+  "style": "dark",
+  "tags": [],
+  "templating": {
+    "list": [
+      {
+        "allValue": null,
+        "current": {
+          "text": "osm-kafka-exporter-service",
+          "value": "osm-kafka-exporter-service"
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "",
+        "hide": 0,
+        "includeAll": false,
+        "label": "Job",
+        "multi": false,
+        "name": "job",
+        "options": [],
+        "query": "label_values(kafka_consumergroup_current_offset, job)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "datasource": "prometheus - Juju generated source",
+        "definition": "",
+        "hide": 0,
+        "includeAll": false,
+        "label": "Instance",
+        "multi": false,
+        "name": "instance",
+        "options": [],
+        "query": "label_values(kafka_consumergroup_current_offset{job=~\"$job\"}, instance)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "current": {
+          "tags": [],
+          "text": "All",
+          "value": [
+            "$__all"
+          ]
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "",
+        "hide": 0,
+        "includeAll": true,
+        "label": "Topic",
+        "multi": true,
+        "name": "topic",
+        "options": [],
+        "query": "label_values(kafka_topic_partition_current_offset{instance='$instance',topic!='__consumer_offsets',topic!='--kafka'}, topic)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "topic",
+        "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": "browser",
+  "title": "Kafka",
+  "uid": "jwPKIsniz",
+  "version": 2
+}
diff --git a/installers/charm/grafana/files/kafka_exporter_dashboard.yaml b/installers/charm/grafana/files/kafka_exporter_dashboard.yaml
deleted file mode 100644 (file)
index afcb7e3..0000000
+++ /dev/null
@@ -1,543 +0,0 @@
-# Copyright 2021 Canonical Ltd.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: legal@canonical.com
-#
-# To get in touch with the maintainers, please contact:
-# osm-charmers@lists.launchpad.net
-##
-
----
-annotations:
-  list:
-    - builtIn: 1
-      datasource: '-- Grafana --'
-      enable: true
-      hide: true
-      iconColor: 'rgba(0, 211, 255, 1)'
-      name: Annotations & Alerts
-      type: dashboard
-description: Kafka resource usage and throughput
-editable: true
-gnetId: 7589
-graphTooltip: 0
-id: 10
-iteration: 1578848023483
-links: []
-panels:
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 0
-    fillGradient: 0
-    gridPos:
-      h: 10
-      w: 10
-      x: 0
-      'y': 0
-    id: 14
-    legend:
-      alignAsTable: true
-      avg: false
-      current: true
-      max: true
-      min: false
-      rightSide: false
-      show: true
-      sideWidth: 480
-      sort: max
-      sortDesc: true
-      total: false
-      values: true
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: connected
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum(kafka_topic_partition_current_offset -
-          kafka_topic_partition_oldest_offset{instance="$instance",
-          topic=~"$topic"}) by (topic)
-        format: time_series
-        intervalFactor: 1
-        legendFormat: '{{topic}}'
-        refId: B
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Messages stored per topic
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: '0'
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 0
-    fillGradient: 0
-    gridPos:
-      h: 10
-      w: 10
-      x: 10
-      'y': 0
-    id: 12
-    legend:
-      alignAsTable: true
-      avg: false
-      current: true
-      max: true
-      min: false
-      rightSide: false
-      show: true
-      sideWidth: 480
-      sort: max
-      sortDesc: true
-      total: false
-      values: true
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: connected
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum(kafka_consumergroup_lag{instance="$instance",topic=~"$topic"}) by
-          (consumergroup, topic)
-        format: time_series
-        instant: false
-        interval: ''
-        intervalFactor: 1
-        legendFormat: ' {{topic}} ({{consumergroup}})'
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Lag by  Consumer Group
-    tooltip:
-      shared: true
-      sort: 2
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: ''
-        logBase: 1
-        max: null
-        min: '0'
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 0
-    fillGradient: 0
-    gridPos:
-      h: 10
-      w: 10
-      x: 0
-      'y': 10
-    id: 16
-    legend:
-      alignAsTable: true
-      avg: false
-      current: true
-      max: true
-      min: false
-      rightSide: false
-      show: true
-      sideWidth: 480
-      total: false
-      values: true
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: connected
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum(delta(kafka_topic_partition_current_offset{instance=~'$instance',
-          topic=~"$topic"}[5m])/5) by (topic)
-        format: time_series
-        intervalFactor: 1
-        legendFormat: '{{topic}}'
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Messages produced per minute
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 0
-    fillGradient: 0
-    gridPos:
-      h: 10
-      w: 10
-      x: 10
-      'y': 10
-    id: 18
-    legend:
-      alignAsTable: true
-      avg: false
-      current: true
-      max: true
-      min: false
-      rightSide: false
-      show: true
-      sideWidth: 480
-      sort: current
-      sortDesc: true
-      total: false
-      values: true
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: connected
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum(delta(kafka_consumergroup_current_offset{instance=~'$instance',topic=~"$topic"}[5m])/5)
-          by (consumergroup, topic)
-        format: time_series
-        intervalFactor: 1
-        legendFormat: ' {{topic}} ({{consumergroup}})'
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Messages consumed per minute
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: true
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 7
-      w: 20
-      x: 0
-      'y': 20
-    id: 8
-    legend:
-      alignAsTable: true
-      avg: false
-      current: true
-      max: false
-      min: false
-      rightSide: true
-      show: true
-      sideWidth: 420
-      total: false
-      values: true
-    lines: false
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum by(topic)
-          (kafka_topic_partitions{instance="$instance",topic=~"$topic"})
-        format: time_series
-        intervalFactor: 1
-        legendFormat: '{{topic}}'
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Partitions per Topic
-    tooltip:
-      shared: false
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: series
-      name: null
-      show: false
-      values:
-        - current
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-refresh: 5s
-schemaVersion: 19
-style: dark
-tags: []
-templating:
-  list:
-    - allValue: null
-      current:
-        text: osm-kafka-exporter-service
-        value: osm-kafka-exporter-service
-      datasource: Prometheus
-      definition: ''
-      hide: 0
-      includeAll: false
-      label: Job
-      multi: false
-      name: job
-      options: []
-      query: 'label_values(kafka_consumergroup_current_offset, job)'
-      refresh: 1
-      regex: ''
-      skipUrlSync: false
-      sort: 0
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-    - allValue: null
-      datasource: Prometheus
-      definition: ''
-      hide: 0
-      includeAll: false
-      label: Instance
-      multi: false
-      name: instance
-      options: []
-      query: >-
-        'label_values(kafka_consumergroup_current_offset{job=~"$job"},'
-        'instance)'
-      refresh: 1
-      regex: ''
-      skipUrlSync: false
-      sort: 0
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-    - allValue: null
-      current:
-        tags: []
-        text: All
-        value:
-          - $__all
-      datasource: Prometheus
-      definition: ''
-      hide: 0
-      includeAll: true
-      label: Topic
-      multi: true
-      name: topic
-      options: []
-      query: >-
-        label_values(kafka_topic_partition_current_offset{instance='$instance',topic!='__consumer_offsets',topic!='--kafka'},
-        topic)
-      refresh: 1
-      regex: ''
-      skipUrlSync: false
-      sort: 1
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: topic
-      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: browser
-title: Kafka
-uid: jwPKIsniz
-version: 2
diff --git a/installers/charm/grafana/files/mongodb_exporter_dashboard.json b/installers/charm/grafana/files/mongodb_exporter_dashboard.json
new file mode 100644 (file)
index 0000000..c6c64c2
--- /dev/null
@@ -0,0 +1,938 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "MongoDB Prometheus Exporter Dashboard.",
+  "editable": true,
+  "gnetId": 2583,
+  "graphTooltip": 1,
+  "id": 1,
+  "iteration": 1615141074039,
+  "links": [],
+  "panels": [
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 22,
+      "panels": [],
+      "repeat": "env",
+      "title": "Health",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "s",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 12,
+        "x": 0,
+        "y": 1
+      },
+      "id": 10,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "mongodb_ss_uptime{}",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 1800
+        }
+      ],
+      "thresholds": "0,360",
+      "title": "Uptime",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 12,
+        "x": 12,
+        "y": 1
+      },
+      "id": 1,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "mongodb_ss_connections{conn_type=\"current\"}",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "metric": "mongodb_connections",
+          "refId": "A",
+          "step": 1800
+        }
+      ],
+      "thresholds": "",
+      "title": "Open Connections",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 5
+      },
+      "id": 20,
+      "panels": [],
+      "repeat": "env",
+      "title": "Operations",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 6,
+        "w": 10,
+        "x": 0,
+        "y": 6
+      },
+      "hiddenSeries": false,
+      "id": 7,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.4.3",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(mongodb_ss_opcounters[$interval])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "{{legacy_op_type}}",
+          "refId": "A",
+          "step": 240
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Query Operations",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "$$hashKey": "object:670",
+          "format": "ops",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "$$hashKey": "object:671",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 6,
+        "w": 8,
+        "x": 10,
+        "y": 6
+      },
+      "hiddenSeries": false,
+      "id": 9,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.4.3",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "returned",
+          "yaxis": 1
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(mongodb_ss_metrics_document[$interval])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "{{doc_op_type}}",
+          "refId": "A",
+          "step": 240
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Document Operations",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "$$hashKey": "object:699",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "$$hashKey": "object:700",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 6,
+        "w": 6,
+        "x": 18,
+        "y": 6
+      },
+      "hiddenSeries": false,
+      "id": 8,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.4.3",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(mongodb_ss_opcounters[$interval])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "{{legacy_op_type}}",
+          "refId": "A",
+          "step": 600
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Document Query Executor",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "$$hashKey": "object:728",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "$$hashKey": "object:729",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 12
+      },
+      "id": 23,
+      "panels": [],
+      "repeat": null,
+      "title": "Resources",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 6,
+        "w": 12,
+        "x": 0,
+        "y": 13
+      },
+      "hiddenSeries": false,
+      "id": 4,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "hideEmpty": false,
+        "hideZero": false,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.4.3",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "mongodb_ss_mem_resident",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "Resident",
+          "refId": "A",
+          "step": 240
+        },
+        {
+          "expr": "mongodb_ss_mem_virtual",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Virtual",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Memory",
+      "tooltip": {
+        "shared": false,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": [
+          "total"
+        ]
+      },
+      "yaxes": [
+        {
+          "$$hashKey": "object:523",
+          "format": "decmbytes",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "$$hashKey": "object:524",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 6,
+        "w": 12,
+        "x": 12,
+        "y": 13
+      },
+      "hiddenSeries": false,
+      "id": 5,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.4.3",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(mongodb_ss_network_bytesOut[$interval])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "Out",
+          "metric": "mongodb_metrics_operation_total",
+          "refId": "A",
+          "step": 240
+        },
+        {
+          "expr": "rate(mongodb_ss_network_bytesIn[$interval])",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "In",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Network I/O",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "$$hashKey": "object:579",
+          "format": "decbytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "$$hashKey": "object:580",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    }
+  ],
+  "refresh": "5s",
+  "schemaVersion": 27,
+  "style": "dark",
+  "tags": [],
+  "templating": {
+    "list": [
+      {
+        "allValue": null,
+        "current": {
+          "selected": true,
+          "text": [
+            "All"
+          ],
+          "value": [
+            "$__all"
+          ]
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "",
+        "description": null,
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "instance",
+        "multi": true,
+        "name": "instance",
+        "options": [],
+        "query": {
+          "query": "label_values(mongodb_connections, instance)",
+          "refId": "prometheus - Juju generated source-instance-Variable-Query"
+        },
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "/.*-(.*?)-.*/",
+        "tags": [],
+        "tagsQuery": "label_values(mongodb_connections, instance)",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "auto": true,
+        "auto_count": 30,
+        "auto_min": "10s",
+        "current": {
+          "selected": false,
+          "text": "auto",
+          "value": "$__auto_interval_interval"
+        },
+        "description": null,
+        "error": null,
+        "hide": 0,
+        "label": null,
+        "name": "interval",
+        "options": [
+          {
+            "selected": true,
+            "text": "auto",
+            "value": "$__auto_interval_interval"
+          },
+          {
+            "selected": false,
+            "text": "1m",
+            "value": "1m"
+          },
+          {
+            "selected": false,
+            "text": "10m",
+            "value": "10m"
+          },
+          {
+            "selected": false,
+            "text": "30m",
+            "value": "30m"
+          },
+          {
+            "selected": false,
+            "text": "1h",
+            "value": "1h"
+          },
+          {
+            "selected": false,
+            "text": "6h",
+            "value": "6h"
+          },
+          {
+            "selected": false,
+            "text": "12h",
+            "value": "12h"
+          },
+          {
+            "selected": false,
+            "text": "1d",
+            "value": "1d"
+          },
+          {
+            "selected": false,
+            "text": "7d",
+            "value": "7d"
+          },
+          {
+            "selected": false,
+            "text": "14d",
+            "value": "14d"
+          },
+          {
+            "selected": false,
+            "text": "30d",
+            "value": "30d"
+          }
+        ],
+        "query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
+        "refresh": 2,
+        "skipUrlSync": false,
+        "type": "interval"
+      }
+    ]
+  },
+  "time": {
+    "from": "now/d",
+    "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": "browser",
+  "title": "MongoDB",
+  "uid": "HEK4NbtZk",
+  "version": 17
+}
\ No newline at end of file
diff --git a/installers/charm/grafana/files/mongodb_exporter_dashboard.yaml b/installers/charm/grafana/files/mongodb_exporter_dashboard.yaml
deleted file mode 100644 (file)
index b2489f4..0000000
+++ /dev/null
@@ -1,691 +0,0 @@
-# Copyright 2021 Canonical Ltd.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: legal@canonical.com
-#
-# To get in touch with the maintainers, please contact:
-# osm-charmers@lists.launchpad.net
-##
-
----
-annotations:
-  list:
-    - builtIn: 1
-      datasource: '-- Grafana --'
-      enable: true
-      hide: true
-      iconColor: 'rgba(0, 211, 255, 1)'
-      name: Annotations & Alerts
-      type: dashboard
-description: MongoDB Prometheus Exporter Dashboard.
-editable: true
-gnetId: 2583
-graphTooltip: 1
-id: 9
-iteration: 1577555358996
-links: []
-panels:
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 0
-    id: 22
-    panels: []
-    repeat: env
-    title: Health
-    type: row
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: true
-    colors:
-      - 'rgba(245, 54, 54, 0.9)'
-      - 'rgba(237, 129, 40, 0.89)'
-      - 'rgba(50, 172, 45, 0.97)'
-    datasource: Prometheus
-    decimals: null
-    format: s
-    gauge:
-      maxValue: 100
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 4
-      w: 12
-      x: 0
-      'y': 1
-    id: 10
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-    tableColumn: ''
-    targets:
-      - expr: 'mongodb_instance_uptime_seconds{instance=~"$instance"}'
-        format: time_series
-        intervalFactor: 2
-        legendFormat: ''
-        refId: A
-        step: 1800
-    thresholds: '0,360'
-    title: Uptime
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - 'rgba(245, 54, 54, 0.9)'
-      - 'rgba(237, 129, 40, 0.89)'
-      - 'rgba(50, 172, 45, 0.97)'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 100
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 4
-      w: 12
-      x: 12
-      'y': 1
-    id: 1
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: true
-      lineColor: 'rgb(31, 120, 193)'
-      show: true
-    tableColumn: ''
-    targets:
-      - expr: 'mongodb_connections{instance=~"$instance",state="current"}'
-        format: time_series
-        intervalFactor: 2
-        legendFormat: ''
-        metric: mongodb_connections
-        refId: A
-        step: 1800
-    thresholds: ''
-    title: Open Connections
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: avg
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 5
-    id: 20
-    panels: []
-    repeat: env
-    title: Operations
-    type: row
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 6
-      w: 10
-      x: 0
-      'y': 6
-    id: 7
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          'rate(mongodb_op_counters_total{instance=~"$instance"}[$interval])'
-        format: time_series
-        interval: ''
-        intervalFactor: 2
-        legendFormat: '{{type}}'
-        refId: A
-        step: 240
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Query Operations
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: ops
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 6
-      w: 8
-      x: 10
-      'y': 6
-    id: 9
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides:
-      - alias: returned
-        yaxis: 1
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          rate(mongodb_mongod_metrics_document_total{instance=~"$instance"}[$interval])
-        format: time_series
-        interval: ''
-        intervalFactor: 2
-        legendFormat: '{{state}}'
-        refId: A
-        step: 240
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Document Operations
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 6
-      w: 6
-      x: 18
-      'y': 6
-    id: 8
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          rate(mongodb_mongod_metrics_query_executor_total{instance=~"$instance"}[$interval])
-        format: time_series
-        interval: ''
-        intervalFactor: 2
-        legendFormat: '{{state}}'
-        refId: A
-        step: 600
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Document Query Executor
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 12
-    id: 23
-    panels: []
-    repeat: null
-    title: Resources
-    type: row
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 6
-      w: 12
-      x: 0
-      'y': 13
-    id: 4
-    legend:
-      alignAsTable: false
-      avg: false
-      current: true
-      hideEmpty: false
-      hideZero: false
-      max: false
-      min: false
-      rightSide: false
-      show: true
-      total: false
-      values: true
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: 'mongodb_memory{instance=~"$instance",type=~"resident|virtual"}'
-        format: time_series
-        interval: ''
-        intervalFactor: 2
-        legendFormat: '{{type}}'
-        refId: A
-        step: 240
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Memory
-    tooltip:
-      shared: false
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values:
-        - total
-    yaxes:
-      - format: decmbytes
-        label: MB
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 6
-      w: 12
-      x: 12
-      'y': 13
-    id: 5
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          'rate(mongodb_network_bytes_total{instance=~"$instance"}[$interval])'
-        format: time_series
-        interval: ''
-        intervalFactor: 2
-        legendFormat: '{{state}}'
-        metric: mongodb_metrics_operation_total
-        refId: A
-        step: 240
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Network I/O
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: decbytes
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-refresh: 5s
-schemaVersion: 19
-style: dark
-tags: []
-templating:
-  list:
-    - allValue: null
-      current:
-        text: All
-        value: $__all
-      datasource: Prometheus
-      definition: ''
-      hide: 0
-      includeAll: true
-      label: instance
-      multi: true
-      name: instance
-      options: []
-      query: 'label_values(mongodb_connections, instance)'
-      refresh: 1
-      regex: ''
-      skipUrlSync: false
-      sort: 1
-      tagValuesQuery: /.*-(.*?)-.*/
-      tags: []
-      tagsQuery: 'label_values(mongodb_connections, instance)'
-      type: query
-      useTags: false
-    - auto: true
-      auto_count: 30
-      auto_min: 10s
-      current:
-        text: auto
-        value: $__auto_interval_interval
-      hide: 0
-      label: null
-      name: interval
-      options:
-        - selected: true
-          text: auto
-          value: $__auto_interval_interval
-        - selected: false
-          text: 1m
-          value: 1m
-        - selected: false
-          text: 10m
-          value: 10m
-        - selected: false
-          text: 30m
-          value: 30m
-        - selected: false
-          text: 1h
-          value: 1h
-        - selected: false
-          text: 6h
-          value: 6h
-        - selected: false
-          text: 12h
-          value: 12h
-        - selected: false
-          text: 1d
-          value: 1d
-        - selected: false
-          text: 7d
-          value: 7d
-        - selected: false
-          text: 14d
-          value: 14d
-        - selected: false
-          text: 30d
-          value: 30d
-      query: '1m,10m,30m,1h,6h,12h,1d,7d,14d,30d'
-      refresh: 2
-      skipUrlSync: false
-      type: interval
-time:
-  from: now/d
-  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: browser
-title: MongoDB
-uid: HEK4NbtZk
-version: 2
diff --git a/installers/charm/grafana/files/mysql_exporter_dashboard.json b/installers/charm/grafana/files/mysql_exporter_dashboard.json
new file mode 100644 (file)
index 0000000..9f9acac
--- /dev/null
@@ -0,0 +1,1145 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "Mysql dashboard",
+  "editable": true,
+  "gnetId": 6239,
+  "graphTooltip": 0,
+  "id": 34,
+  "iteration": 1569307668513,
+  "links": [],
+  "panels": [
+    {
+      "collapsed": false,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 17,
+      "panels": [],
+      "title": "Global status",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": true,
+      "colorValue": false,
+      "colors": [
+        "#bf1b00",
+        "#508642",
+        "#ef843c"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 0,
+        "y": 1
+      },
+      "id": 11,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "options": {},
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "mysql_up{release=\"$release\"}",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "1,2",
+      "title": "Instance Up",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": true,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#508642"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "format": "s",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 6,
+        "y": 1
+      },
+      "id": 15,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "options": {},
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "mysql_global_status_uptime{release=\"$release\"}",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "25200,32400",
+      "title": "Uptime",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 1
+      },
+      "id": 29,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "mysql_global_status_max_used_connections{release=\"$release\"}",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "current",
+          "refId": "A"
+        },
+        {
+          "expr": "mysql_global_variables_max_connections{release=\"$release\"}",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "Max",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Mysql Connections",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 8
+      },
+      "id": 19,
+      "panels": [],
+      "title": "I/O",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 0,
+        "y": 9
+      },
+      "id": 5,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "write",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "irate(mysql_global_status_innodb_data_reads{release=\"$release\"}[10m])",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "reads",
+          "refId": "A"
+        },
+        {
+          "expr": "irate(mysql_global_status_innodb_data_writes{release=\"$release\"}[10m])",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "write",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "mysql  disk reads vs writes",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 12,
+        "y": 9
+      },
+      "id": 9,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/sent/",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "irate(mysql_global_status_bytes_received{release=\"$release\"}[5m])",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "received",
+          "refId": "A"
+        },
+        {
+          "expr": "irate(mysql_global_status_bytes_sent{release=\"$release\"}[5m])",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "sent",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "mysql network received vs sent",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 18
+      },
+      "id": 2,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "irate(mysql_global_status_commands_total{release=\"$release\"}[5m]) > 0",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{ command }} - {{ release }}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Query rates",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 18
+      },
+      "id": 25,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "mysql_global_status_threads_running{release=\"$release\"} ",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Running Threads",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": "15",
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 25
+      },
+      "id": 21,
+      "panels": [],
+      "title": "Errors",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "description": "The number of connections that were aborted because the client died without closing the connection properly.",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 0,
+        "y": 26
+      },
+      "id": 13,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "mysql_global_status_aborted_clients{release=\"$release\"}",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Aborted clients",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "description": "The number of failed attempts to connect to the MySQL server.",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 12,
+        "y": 26
+      },
+      "id": 4,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "mysql_global_status_aborted_connects{release=\"$release\"}",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "mysql aborted Connects",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 35
+      },
+      "id": 23,
+      "panels": [],
+      "title": "Disk usage",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 0,
+        "y": 36
+      },
+      "id": 27,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(mysql_info_schema_table_size{component=\"data_length\",release=\"$release\"})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "Tables",
+          "refId": "A"
+        },
+        {
+          "expr": "sum(mysql_info_schema_table_size{component=\"index_length\",release=\"$release\"})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "Indexes",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Disk usage tables / indexes",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "decbytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 12,
+        "y": 36
+      },
+      "id": 7,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "dataLinks": []
+      },
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(mysql_info_schema_table_rows{release=\"$release\"})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Sum of all rows",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    }
+  ],
+  "schemaVersion": 19,
+  "style": "dark",
+  "tags": [
+  ],
+  "templating": {
+    "list": [
+      {
+        "allValue": null,
+        "current": {
+          "isNone": true,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "",
+        "hide": 0,
+        "includeAll": false,
+        "label": null,
+        "multi": false,
+        "name": "release",
+        "options": [],
+        "query": "label_values(mysql_up,release)",
+        "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": "Mysql",
+  "uid": "6-kPlS7ik",
+  "version": 1
+}
diff --git a/installers/charm/grafana/files/mysql_exporter_dashboard.yaml b/installers/charm/grafana/files/mysql_exporter_dashboard.yaml
deleted file mode 100644 (file)
index a1e3ded..0000000
+++ /dev/null
@@ -1,949 +0,0 @@
-# Copyright 2021 Canonical Ltd.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: legal@canonical.com
-#
-# To get in touch with the maintainers, please contact:
-# osm-charmers@lists.launchpad.net
-##
-
----
-annotations:
-  list:
-    - builtIn: 1
-      datasource: '-- Grafana --'
-      enable: true
-      hide: true
-      iconColor: 'rgba(0, 211, 255, 1)'
-      name: Annotations & Alerts
-      type: dashboard
-description: Mysql dashboard
-editable: true
-gnetId: 6239
-graphTooltip: 0
-id: 34
-iteration: 1569307668513
-links: []
-panels:
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 0
-    id: 17
-    panels: []
-    title: Global status
-    type: row
-  - cacheTimeout: null
-    colorBackground: true
-    colorValue: false
-    colors:
-      - '#bf1b00'
-      - '#508642'
-      - '#ef843c'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 7
-      w: 6
-      x: 0
-      'y': 1
-    id: 11
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: true
-      lineColor: 'rgb(31, 120, 193)'
-      show: true
-    tableColumn: ''
-    targets:
-      - expr: 'mysql_up{release="$release"}'
-        format: time_series
-        intervalFactor: 1
-        refId: A
-    thresholds: '1,2'
-    title: Instance Up
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: true
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#508642'
-    datasource: Prometheus
-    format: s
-    gauge:
-      maxValue: 100
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 7
-      w: 6
-      x: 6
-      'y': 1
-    id: 15
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: true
-    tableColumn: ''
-    targets:
-      - expr: 'mysql_global_status_uptime{release="$release"}'
-        format: time_series
-        intervalFactor: 1
-        refId: A
-    thresholds: '25200,32400'
-    title: Uptime
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 7
-      w: 12
-      x: 12
-      'y': 1
-    id: 29
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: false
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: 'mysql_global_status_max_used_connections{release="$release"}'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: current
-        refId: A
-      - expr: 'mysql_global_variables_max_connections{release="$release"}'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: Max
-        refId: B
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Mysql Connections
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 8
-    id: 19
-    panels: []
-    title: I/O
-    type: row
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 12
-      x: 0
-      'y': 9
-    id: 5
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides:
-      - alias: write
-        transform: negative-Y
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          'irate(mysql_global_status_innodb_data_reads{release="$release"}[10m])'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: reads
-        refId: A
-      - expr: >-
-          'irate(mysql_global_status_innodb_data_writes{release="$release"}[10m])'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: write
-        refId: B
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: mysql  disk reads vs writes
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 12
-      x: 12
-      'y': 9
-    id: 9
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: false
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides:
-      - alias: /sent/
-        transform: negative-Y
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          'irate(mysql_global_status_bytes_received{release="$release"}[5m])'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: received
-        refId: A
-      - expr: 'irate(mysql_global_status_bytes_sent{release="$release"}[5m])'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: sent
-        refId: B
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: mysql network received vs sent
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 7
-      w: 12
-      x: 0
-      'y': 18
-    id: 2
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: false
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          'irate(mysql_global_status_commands_total{release="$release"}[5m]) >'
-          '0'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: '{{ command }} - {{ release }}'
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Query rates
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 7
-      w: 12
-      x: 12
-      'y': 18
-    id: 25
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: false
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: 'mysql_global_status_threads_running{release="$release"} '
-        format: time_series
-        intervalFactor: 1
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Running Threads
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - decimals: null
-        format: short
-        label: null
-        logBase: 1
-        max: '15'
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 25
-    id: 21
-    panels: []
-    title: Errors
-    type: row
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    description: >-
-      The number of connections that were aborted because the client died
-      without closing the connection properly.
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 12
-      x: 0
-      'y': 26
-    id: 13
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: false
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: 'mysql_global_status_aborted_clients{release="$release"}'
-        format: time_series
-        intervalFactor: 1
-        refId: B
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Aborted clients
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    description: The number of failed attempts to connect to the MySQL server.
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 12
-      x: 12
-      'y': 26
-    id: 4
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: false
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: 'mysql_global_status_aborted_connects{release="$release"}'
-        format: time_series
-        intervalFactor: 1
-        legendFormat: ''
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: mysql aborted Connects
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 35
-    id: 23
-    panels: []
-    title: Disk usage
-    type: row
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 12
-      x: 0
-      'y': 36
-    id: 27
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum(mysql_info_schema_table_size{component="data_length",release="$release"})
-        format: time_series
-        intervalFactor: 1
-        legendFormat: Tables
-        refId: A
-      - expr: >-
-          sum(mysql_info_schema_table_size{component="index_length",release="$release"})
-        format: time_series
-        intervalFactor: 1
-        legendFormat: Indexes
-        refId: B
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Disk usage tables / indexes
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: decbytes
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    datasource: Prometheus
-    fill: 1
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 12
-      x: 12
-      'y': 36
-    id: 7
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: false
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    links: []
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 5
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: false
-    steppedLine: false
-    targets:
-      - expr: 'sum(mysql_info_schema_table_rows{release="$release"})'
-        format: time_series
-        intervalFactor: 1
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Sum of all rows
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - decimals: null
-        format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-schemaVersion: 19
-style: dark
-tags: []
-templating:
-  list:
-    - allValue: null
-      current:
-        isNone: true
-        text: None
-        value: ''
-      datasource: Prometheus
-      definition: ''
-      hide: 0
-      includeAll: false
-      label: null
-      multi: false
-      name: release
-      options: []
-      query: 'label_values(mysql_up,release)'
-      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: Mysql
-uid: 6-kPlS7ik
-version: 1
diff --git a/installers/charm/grafana/files/nodes_exporter_dashboard.json b/installers/charm/grafana/files/nodes_exporter_dashboard.json
new file mode 100644 (file)
index 0000000..c67f203
--- /dev/null
@@ -0,0 +1,1965 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "Physical nodes dashboard",
+  "editable": true,
+  "gnetId": 11074,
+  "graphTooltip": 0,
+  "id": 4,
+  "iteration": 1615160452938,
+  "links": [],
+  "panels": [
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 179,
+      "panels": [],
+      "title": "Summary",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPostfix": false,
+      "colorPrefix": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "decimals": 1,
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "s",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 2,
+        "x": 0,
+        "y": 1
+      },
+      "hideTimeOverride": true,
+      "id": 15,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "null",
+      "nullText": null,
+      "pluginVersion": "6.4.2",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(system_uptime)",
+          "format": "time_series",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 40
+        }
+      ],
+      "thresholds": "1,2",
+      "title": "System Uptime",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPostfix": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "short",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 2,
+        "x": 2,
+        "y": 1
+      },
+      "id": 14,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 6,
+      "nullPointMode": "null",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(system_n_cpus)",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": "1,2",
+      "title": "CPU Cores",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "decimals": 2,
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "bytes",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 2,
+        "x": 4,
+        "y": 1
+      },
+      "id": 75,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 6,
+      "nullPointMode": "null",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "70%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(mem_total)",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": "2,3",
+      "title": "Total RAM",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "thresholds"
+          },
+          "custom": {},
+          "displayName": "",
+          "mappings": [
+            {
+              "from": "",
+              "id": 1,
+              "operator": "",
+              "text": "-",
+              "to": "",
+              "type": 1,
+              "value": "NaN"
+            }
+          ],
+          "max": 100,
+          "min": 0,
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              },
+              {
+                "color": "#EAB839",
+                "value": 60
+              },
+              {
+                "color": "red",
+                "value": 80
+              }
+            ]
+          },
+          "unit": "percent"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 18,
+        "x": 6,
+        "y": 1
+      },
+      "id": 177,
+      "options": {
+        "displayMode": "lcd",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "last"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "showUnfilled": true,
+        "text": {}
+      },
+      "pluginVersion": "7.4.3",
+      "targets": [
+        {
+          "expr": "avg(irate(cpu_usage_system[$__rate_interval]) + irate(cpu_usage_user[$__rate_interval])) * 100",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "CPU Busy",
+          "refId": "A"
+        },
+        {
+          "expr": "avg(irate(cpu_usage_iowait[$__rate_interval])) * 100",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "Busy Iowait",
+          "refId": "C"
+        },
+        {
+          "expr": "avg(mem_used_percent)",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "Used RAM Memory",
+          "refId": "B"
+        },
+        {
+          "expr": "avg(disk_used_percent{fstype=\"ext4\"})",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "Used Max Mount($maxmount)",
+          "refId": "D"
+        },
+        {
+          "expr": "avg(swap_used_percent)",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "Used SWAP",
+          "refId": "E"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "",
+      "type": "bargauge"
+    },
+    {
+      "collapsed": true,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 7
+      },
+      "id": 181,
+      "panels": [
+        {
+          "aliasColors": {
+            "15分钟": "#6ED0E0",
+            "1分钟": "#BF1B00",
+            "5分钟": "#CCA300"
+          },
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "prometheus - Juju generated source",
+          "editable": true,
+          "error": false,
+          "fieldConfig": {
+            "defaults": {
+              "custom": {},
+              "links": []
+            },
+            "overrides": []
+          },
+          "fill": 1,
+          "fillGradient": 1,
+          "grid": {},
+          "gridPos": {
+            "h": 10,
+            "w": 12,
+            "x": 0,
+            "y": 2
+          },
+          "height": "300",
+          "hiddenSeries": false,
+          "id": 13,
+          "legend": {
+            "alignAsTable": true,
+            "avg": true,
+            "current": true,
+            "max": true,
+            "min": false,
+            "rightSide": false,
+            "show": true,
+            "total": false,
+            "values": true
+          },
+          "lines": true,
+          "linewidth": 2,
+          "links": [],
+          "maxPerRow": 6,
+          "nullPointMode": "null as zero",
+          "options": {
+            "alertThreshold": true
+          },
+          "percentage": false,
+          "pluginVersion": "7.4.3",
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "repeat": null,
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "system_load1",
+              "format": "time_series",
+              "instant": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_1m",
+              "metric": "",
+              "refId": "A",
+              "step": 20,
+              "target": ""
+            },
+            {
+              "expr": "system_load5",
+              "format": "time_series",
+              "instant": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_5m",
+              "refId": "B",
+              "step": 20
+            },
+            {
+              "expr": "system_load15",
+              "format": "time_series",
+              "instant": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_15m",
+              "refId": "C",
+              "step": 20
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeRegions": [],
+          "timeShift": null,
+          "title": "System Load",
+          "tooltip": {
+            "msResolution": false,
+            "shared": true,
+            "sort": 2,
+            "value_type": "cumulative"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "format": "short",
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {
+            "192.168.200.241:9100_Total": "dark-red",
+            "Idle - Waiting for something to happen": "#052B51",
+            "guest": "#9AC48A",
+            "idle": "#052B51",
+            "iowait": "#EAB839",
+            "irq": "#BF1B00",
+            "nice": "#C15C17",
+            "softirq": "#E24D42",
+            "steal": "#FCE2DE",
+            "system": "#508642",
+            "user": "#5195CE"
+          },
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "prometheus - Juju generated source",
+          "decimals": 2,
+          "description": "",
+          "fieldConfig": {
+            "defaults": {
+              "custom": {},
+              "links": []
+            },
+            "overrides": []
+          },
+          "fill": 1,
+          "fillGradient": 0,
+          "gridPos": {
+            "h": 10,
+            "w": 12,
+            "x": 12,
+            "y": 2
+          },
+          "hiddenSeries": false,
+          "id": 7,
+          "legend": {
+            "alignAsTable": true,
+            "avg": true,
+            "current": true,
+            "hideEmpty": true,
+            "hideZero": true,
+            "max": true,
+            "min": false,
+            "rightSide": false,
+            "show": true,
+            "sideWidth": null,
+            "sort": "current",
+            "sortDesc": true,
+            "total": false,
+            "values": true
+          },
+          "lines": true,
+          "linewidth": 2,
+          "links": [],
+          "maxPerRow": 6,
+          "nullPointMode": "null",
+          "options": {
+            "alertThreshold": true
+          },
+          "percentage": false,
+          "pluginVersion": "7.4.3",
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "repeat": null,
+          "seriesOverrides": [
+            {
+              "alias": "/.*_Total/",
+              "color": "#C4162A",
+              "fill": 0
+            }
+          ],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "avg(irate(cpu_usage_system[30m])) by (juju_unit)",
+              "format": "time_series",
+              "hide": false,
+              "instant": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_System",
+              "refId": "A",
+              "step": 20
+            },
+            {
+              "expr": "avg(irate(cpu_usage_user[30m])) by (juju_unit)",
+              "format": "time_series",
+              "hide": false,
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_User",
+              "refId": "B",
+              "step": 240
+            },
+            {
+              "expr": "avg(irate(cpu_usage_iowait[30m])) by (juju_unit)",
+              "format": "time_series",
+              "hide": false,
+              "instant": false,
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_Iowait",
+              "refId": "D",
+              "step": 240
+            },
+            {
+              "expr": "1 - avg(irate(cpu_usage_idle[30m])) by (juju_unit)",
+              "format": "time_series",
+              "hide": false,
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_Total",
+              "refId": "F",
+              "step": 240
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeRegions": [],
+          "timeShift": null,
+          "title": "CPU",
+          "tooltip": {
+            "shared": true,
+            "sort": 2,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "decimals": 2,
+              "format": "percentunit",
+              "label": "",
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": false
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        }
+      ],
+      "title": "CPU",
+      "type": "row"
+    },
+    {
+      "collapsed": true,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 8
+      },
+      "id": 183,
+      "panels": [
+        {
+          "datasource": "prometheus - Juju generated source",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "thresholds"
+              },
+              "custom": {
+                "align": null,
+                "filterable": false
+              },
+              "decimals": 2,
+              "displayName": "",
+              "mappings": [],
+              "thresholds": {
+                "mode": "percentage",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  },
+                  {
+                    "color": "red",
+                    "value": 80
+                  }
+                ]
+              },
+              "unit": "short"
+            },
+            "overrides": [
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "juju_unit"
+                },
+                "properties": [
+                  {
+                    "id": "displayName",
+                    "value": "Unit"
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "device (lastNotNull)"
+                },
+                "properties": [
+                  {
+                    "id": "displayName",
+                    "value": "Device"
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "fstype (lastNotNull)"
+                },
+                "properties": [
+                  {
+                    "id": "displayName",
+                    "value": "Filesystem"
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "path (lastNotNull)"
+                },
+                "properties": [
+                  {
+                    "id": "displayName",
+                    "value": "Mounted on"
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Value #A (lastNotNull)"
+                },
+                "properties": [
+                  {
+                    "id": "displayName",
+                    "value": "Avail"
+                  },
+                  {
+                    "id": "unit",
+                    "value": "decbytes"
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Value #B (lastNotNull)"
+                },
+                "properties": [
+                  {
+                    "id": "displayName",
+                    "value": "Used"
+                  },
+                  {
+                    "id": "unit",
+                    "value": "percent"
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Value #C (lastNotNull)"
+                },
+                "properties": [
+                  {
+                    "id": "displayName",
+                    "value": "Size"
+                  },
+                  {
+                    "id": "unit",
+                    "value": "decbytes"
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Device"
+                },
+                "properties": [
+                  {
+                    "id": "custom.width",
+                    "value": 101
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Filesystem"
+                },
+                "properties": [
+                  {
+                    "id": "custom.width",
+                    "value": 86
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Unit"
+                },
+                "properties": [
+                  {
+                    "id": "custom.width",
+                    "value": 151
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Mounted on"
+                },
+                "properties": [
+                  {
+                    "id": "custom.width",
+                    "value": 94
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Avail"
+                },
+                "properties": [
+                  {
+                    "id": "custom.width",
+                    "value": 74
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Used"
+                },
+                "properties": [
+                  {
+                    "id": "custom.width",
+                    "value": 64
+                  }
+                ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Size"
+                },
+                "properties": [
+                  {
+                    "id": "custom.width",
+                    "value": 86
+                  }
+                ]
+              }
+            ]
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 8,
+            "x": 0,
+            "y": 3
+          },
+          "id": 164,
+          "links": [],
+          "options": {
+            "showHeader": true,
+            "sortBy": []
+          },
+          "pluginVersion": "7.4.3",
+          "targets": [
+            {
+              "expr": "disk_free{fstype=\"ext4\"}",
+              "format": "table",
+              "hide": false,
+              "instant": true,
+              "interval": "10s",
+              "intervalFactor": 1,
+              "legendFormat": "",
+              "refId": "A"
+            },
+            {
+              "expr": "disk_used_percent{fstype=\"ext4\"}",
+              "format": "table",
+              "hide": false,
+              "instant": true,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "",
+              "refId": "B"
+            },
+            {
+              "expr": "disk_total{fstype=\"ext4\"}",
+              "format": "table",
+              "hide": false,
+              "instant": true,
+              "intervalFactor": 1,
+              "legendFormat": "",
+              "refId": "C"
+            }
+          ],
+          "title": "Disk Space Used  (EXT4/XFS)",
+          "transformations": [
+            {
+              "id": "merge",
+              "options": {}
+            },
+            {
+              "id": "groupBy",
+              "options": {
+                "fields": {
+                  "Value #A": {
+                    "aggregations": [
+                      "lastNotNull"
+                    ],
+                    "operation": "aggregate"
+                  },
+                  "Value #B": {
+                    "aggregations": [
+                      "lastNotNull"
+                    ],
+                    "operation": "aggregate"
+                  },
+                  "Value #C": {
+                    "aggregations": [
+                      "lastNotNull"
+                    ],
+                    "operation": "aggregate"
+                  },
+                  "device": {
+                    "aggregations": [
+                      "lastNotNull"
+                    ],
+                    "operation": "aggregate"
+                  },
+                  "fstype": {
+                    "aggregations": [
+                      "lastNotNull"
+                    ],
+                    "operation": "aggregate"
+                  },
+                  "juju_unit": {
+                    "aggregations": [],
+                    "operation": "groupby"
+                  },
+                  "path": {
+                    "aggregations": [
+                      "lastNotNull"
+                    ],
+                    "operation": "aggregate"
+                  }
+                }
+              }
+            }
+          ],
+          "type": "table"
+        },
+        {
+          "datasource": "prometheus - Juju generated source",
+          "description": "Per second read / write bytes ",
+          "fieldConfig": {
+            "defaults": {
+              "color": {
+                "mode": "palette-classic"
+              },
+              "custom": {
+                "axisLabel": "Bytes read (-) / write (+)",
+                "axisPlacement": "auto",
+                "barAlignment": 0,
+                "drawStyle": "line",
+                "fillOpacity": 10,
+                "gradientMode": "opacity",
+                "hideFrom": {
+                  "graph": false,
+                  "legend": false,
+                  "tooltip": false
+                },
+                "lineInterpolation": "linear",
+                "lineWidth": 2,
+                "pointSize": 5,
+                "scaleDistribution": {
+                  "type": "linear"
+                },
+                "showPoints": "never",
+                "spanNulls": true
+              },
+              "mappings": [],
+              "thresholds": {
+                "mode": "absolute",
+                "steps": [
+                  {
+                    "color": "green",
+                    "value": null
+                  }
+                ]
+              },
+              "unit": "Bps"
+            },
+            "overrides": []
+          },
+          "gridPos": {
+            "h": 8,
+            "w": 8,
+            "x": 8,
+            "y": 3
+          },
+          "id": 168,
+          "links": [],
+          "options": {
+            "graph": {},
+            "legend": {
+              "calcs": [
+                "mean",
+                "max",
+                "min",
+                "sum"
+              ],
+              "displayMode": "table",
+              "placement": "bottom"
+            },
+            "tooltipOptions": {
+              "mode": "single"
+            }
+          },
+          "pluginVersion": "7.4.3",
+          "targets": [
+            {
+              "expr": "rate(diskio_read_bytes{name!~\"loop.*\"}[$__rate_interval])",
+              "format": "time_series",
+              "hide": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_{{name}}_Read bytes",
+              "refId": "A",
+              "step": 10
+            },
+            {
+              "expr": "irate(diskio_write_bytes{name!~\"loop.*\"}[$__rate_interval])",
+              "format": "time_series",
+              "hide": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_{{name}}_Written bytes",
+              "refId": "B",
+              "step": 10
+            }
+          ],
+          "timeFrom": null,
+          "timeShift": null,
+          "title": "Disk R/W Data",
+          "type": "timeseries"
+        },
+        {
+          "aliasColors": {
+            "Idle - Waiting for something to happen": "#052B51",
+            "guest": "#9AC48A",
+            "idle": "#052B51",
+            "iowait": "#EAB839",
+            "irq": "#BF1B00",
+            "nice": "#C15C17",
+            "sdb_每秒I/O操作%": "#d683ce",
+            "softirq": "#E24D42",
+            "steal": "#FCE2DE",
+            "system": "#508642",
+            "user": "#5195CE",
+            "磁盘花费在I/O操作占比": "#ba43a9"
+          },
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "prometheus - Juju generated source",
+          "decimals": null,
+          "description": "The time spent on I/O in the natural time of each second.(wall-clock time)",
+          "fieldConfig": {
+            "defaults": {
+              "custom": {},
+              "links": []
+            },
+            "overrides": []
+          },
+          "fill": 1,
+          "fillGradient": 5,
+          "gridPos": {
+            "h": 8,
+            "w": 8,
+            "x": 16,
+            "y": 3
+          },
+          "hiddenSeries": false,
+          "id": 175,
+          "legend": {
+            "alignAsTable": true,
+            "avg": true,
+            "current": true,
+            "hideEmpty": true,
+            "hideZero": true,
+            "max": true,
+            "min": false,
+            "rightSide": false,
+            "show": true,
+            "sideWidth": null,
+            "sort": null,
+            "sortDesc": null,
+            "total": false,
+            "values": true
+          },
+          "lines": true,
+          "linewidth": 2,
+          "links": [],
+          "maxPerRow": 6,
+          "nullPointMode": "null",
+          "options": {
+            "alertThreshold": true
+          },
+          "percentage": false,
+          "pluginVersion": "7.4.3",
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "irate(diskio_io_time{name!~\"loop.*\"}[$__rate_interval])",
+              "format": "time_series",
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_{{name}}_ IO time",
+              "refId": "C"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeRegions": [],
+          "timeShift": null,
+          "title": "Time Spent Doing I/Os",
+          "tooltip": {
+            "shared": true,
+            "sort": 2,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "decimals": null,
+              "format": "s",
+              "label": "",
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": false
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        }
+      ],
+      "title": "Disk",
+      "type": "row"
+    },
+    {
+      "collapsed": true,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 9
+      },
+      "id": 185,
+      "panels": [
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "prometheus - Juju generated source",
+          "decimals": 2,
+          "fieldConfig": {
+            "defaults": {
+              "custom": {},
+              "links": []
+            },
+            "overrides": []
+          },
+          "fill": 1,
+          "fillGradient": 0,
+          "gridPos": {
+            "h": 8,
+            "w": 24,
+            "x": 0,
+            "y": 12
+          },
+          "height": "300",
+          "hiddenSeries": false,
+          "id": 156,
+          "legend": {
+            "alignAsTable": true,
+            "avg": false,
+            "current": true,
+            "max": false,
+            "min": false,
+            "rightSide": false,
+            "show": true,
+            "sort": "current",
+            "sortDesc": true,
+            "total": false,
+            "values": true
+          },
+          "lines": true,
+          "linewidth": 2,
+          "links": [],
+          "nullPointMode": "null",
+          "options": {
+            "alertThreshold": true
+          },
+          "percentage": false,
+          "pluginVersion": "7.4.3",
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [
+            {
+              "$$hashKey": "object:2450",
+              "alias": "/.*_Total/",
+              "color": "#C4162A",
+              "fill": 0
+            }
+          ],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "mem_total",
+              "format": "time_series",
+              "hide": false,
+              "instant": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_Total",
+              "refId": "A",
+              "step": 4
+            },
+            {
+              "expr": "mem_used",
+              "format": "time_series",
+              "hide": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_Used",
+              "refId": "B",
+              "step": 4
+            },
+            {
+              "expr": "mem_available",
+              "format": "time_series",
+              "hide": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_Avaliable",
+              "refId": "F",
+              "step": 4
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeRegions": [],
+          "timeShift": null,
+          "title": "Memory",
+          "tooltip": {
+            "shared": true,
+            "sort": 2,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "$$hashKey": "object:2459",
+              "format": "bytes",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": "0",
+              "show": true
+            },
+            {
+              "$$hashKey": "object:2460",
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        }
+      ],
+      "title": "Memory",
+      "type": "row"
+    },
+    {
+      "collapsed": true,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 10
+      },
+      "id": 187,
+      "panels": [
+        {
+          "aliasColors": {},
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "prometheus - Juju generated source",
+          "fieldConfig": {
+            "defaults": {
+              "custom": {},
+              "links": []
+            },
+            "overrides": []
+          },
+          "fill": 1,
+          "fillGradient": 3,
+          "gridPos": {
+            "h": 12,
+            "w": 12,
+            "x": 0,
+            "y": 13
+          },
+          "height": "300",
+          "hiddenSeries": false,
+          "id": 157,
+          "legend": {
+            "alignAsTable": true,
+            "avg": false,
+            "current": true,
+            "hideEmpty": true,
+            "hideZero": true,
+            "max": true,
+            "min": false,
+            "rightSide": false,
+            "show": true,
+            "sort": "current",
+            "sortDesc": true,
+            "total": false,
+            "values": true
+          },
+          "lines": true,
+          "linewidth": 2,
+          "links": [],
+          "nullPointMode": "null",
+          "options": {
+            "alertThreshold": true
+          },
+          "percentage": false,
+          "pluginVersion": "7.4.3",
+          "pointradius": 2,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [
+            {
+              "$$hashKey": "object:2498",
+              "alias": "/.*_transmit$/",
+              "transform": "negative-Y"
+            }
+          ],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "irate(net_bytes_recv{interface!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[$__rate_interval])*8",
+              "format": "time_series",
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_{{interface}}_receive",
+              "refId": "A",
+              "step": 4
+            },
+            {
+              "expr": "irate(net_bytes_sent{interface!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[$__rate_interval])*8",
+              "format": "time_series",
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{instance}}_{{device}}_transmit",
+              "refId": "B",
+              "step": 4
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeRegions": [],
+          "timeShift": null,
+          "title": "Network Traffic",
+          "tooltip": {
+            "shared": true,
+            "sort": 2,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "$$hashKey": "object:2505",
+              "format": "bps",
+              "label": "transmit(-)/receive(+)",
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "$$hashKey": "object:2506",
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": false
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        },
+        {
+          "aliasColors": {
+            "TCP": "#6ED0E0"
+          },
+          "bars": false,
+          "dashLength": 10,
+          "dashes": false,
+          "datasource": "prometheus - Juju generated source",
+          "description": "TCP_alloc - Allocated sockets\n\nCurrEstab - TCP connections for which the current state is either ESTABLISHED or CLOSE- WAIT\n\nTCP_tw - Sockets wating close\n\nUDP_inuse - Udp sockets currently in use\n\nSockets_used - Sockets currently in use",
+          "fieldConfig": {
+            "defaults": {
+              "custom": {},
+              "links": []
+            },
+            "overrides": []
+          },
+          "fill": 1,
+          "fillGradient": 0,
+          "gridPos": {
+            "h": 12,
+            "w": 12,
+            "x": 12,
+            "y": 13
+          },
+          "height": "300",
+          "hiddenSeries": false,
+          "id": 158,
+          "interval": "",
+          "legend": {
+            "alignAsTable": true,
+            "avg": true,
+            "current": true,
+            "hideEmpty": true,
+            "hideZero": true,
+            "max": true,
+            "min": false,
+            "rightSide": false,
+            "show": true,
+            "sort": "current",
+            "sortDesc": true,
+            "total": false,
+            "values": true
+          },
+          "lines": true,
+          "linewidth": 2,
+          "links": [],
+          "nullPointMode": "null",
+          "options": {
+            "alertThreshold": true
+          },
+          "percentage": false,
+          "pluginVersion": "7.4.3",
+          "pointradius": 5,
+          "points": false,
+          "renderer": "flot",
+          "seriesOverrides": [
+            {
+              "$$hashKey": "object:2576",
+              "alias": "/.*_Sockets_used/",
+              "color": "#C4162A",
+              "fill": 0
+            }
+          ],
+          "spaceLength": 10,
+          "stack": false,
+          "steppedLine": false,
+          "targets": [
+            {
+              "expr": "netstat_tcp_established",
+              "format": "time_series",
+              "hide": false,
+              "instant": false,
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_CurrEstab",
+              "refId": "A",
+              "step": 20
+            },
+            {
+              "expr": "sockstat_TCP_tw",
+              "format": "time_series",
+              "interval": "",
+              "intervalFactor": 1,
+              "legendFormat": "{{juju_unit}}_TCP_tw",
+              "refId": "D"
+            },
+            {
+              "expr": "sockstat_sockets_used",
+              "interval": "",
+              "legendFormat": "{{juju_unit}}_Sockets_used",
+              "refId": "B"
+            },
+            {
+              "expr": "sockstat_UDP_inuse",
+              "interval": "",
+              "legendFormat": "{{juju_unit}}_UDP_inuse",
+              "refId": "C"
+            },
+            {
+              "expr": "sockstat_TCP_alloc",
+              "interval": "",
+              "legendFormat": "{{juju_unit}}_TCP_alloc",
+              "refId": "E"
+            }
+          ],
+          "thresholds": [],
+          "timeFrom": null,
+          "timeRegions": [],
+          "timeShift": null,
+          "title": "Network Sockstat",
+          "tooltip": {
+            "shared": true,
+            "sort": 2,
+            "value_type": "individual"
+          },
+          "type": "graph",
+          "xaxis": {
+            "buckets": null,
+            "mode": "time",
+            "name": null,
+            "show": true,
+            "values": []
+          },
+          "yaxes": [
+            {
+              "$$hashKey": "object:2585",
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            },
+            {
+              "$$hashKey": "object:2586",
+              "format": "short",
+              "label": null,
+              "logBase": 1,
+              "max": null,
+              "min": null,
+              "show": true
+            }
+          ],
+          "yaxis": {
+            "align": false,
+            "alignLevel": null
+          }
+        }
+      ],
+      "title": "Network",
+      "type": "row"
+    }
+  ],
+  "refresh": false,
+  "schemaVersion": 27,
+  "style": "dark",
+  "tags": [],
+  "templating": {
+    "list": [
+      {
+        "allValue": null,
+        "current": {
+          "isNone": true,
+          "selected": false,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "label_values(node_uname_info, job)",
+        "description": null,
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "JOB",
+        "multi": false,
+        "name": "job",
+        "options": [],
+        "query": {
+          "query": "label_values(node_uname_info, job)",
+          "refId": "prometheus - Juju generated source-job-Variable-Query"
+        },
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "label_values(node_uname_info{job=~\"$job\"}, nodename)",
+        "description": null,
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "Host",
+        "multi": true,
+        "name": "hostname",
+        "options": [],
+        "query": {
+          "query": "label_values(node_uname_info{job=~\"$job\"}, nodename)",
+          "refId": "prometheus - Juju generated source-hostname-Variable-Query"
+        },
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "label_values(node_uname_info{nodename=~\"$hostname\"},instance)",
+        "description": null,
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "IP",
+        "multi": false,
+        "multiFormat": "regex values",
+        "name": "node",
+        "options": [],
+        "query": {
+          "query": "label_values(node_uname_info{nodename=~\"$hostname\"},instance)",
+          "refId": "prometheus - Juju generated source-node-Variable-Query"
+        },
+        "refresh": 2,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "current": {
+          "isNone": true,
+          "selected": false,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "",
+        "description": null,
+        "error": null,
+        "hide": 2,
+        "includeAll": false,
+        "label": "",
+        "multi": false,
+        "name": "maxmount",
+        "options": [],
+        "query": {
+          "query": "query_result(topk(1,sort_desc (max(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"}) by (mountpoint))))",
+          "refId": "prometheus - Juju generated source-maxmount-Variable-Query"
+        },
+        "refresh": 2,
+        "regex": "/.*\\\"(.*)\\\".*/",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "isNone": true,
+          "selected": false,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "",
+        "description": null,
+        "error": null,
+        "hide": 2,
+        "includeAll": false,
+        "label": null,
+        "multi": false,
+        "multiFormat": "regex values",
+        "name": "env",
+        "options": [],
+        "query": {
+          "query": "label_values(node_exporter_build_info,env)",
+          "refId": "prometheus - Juju generated source-env-Variable-Query"
+        },
+        "refresh": 2,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": "",
+        "current": {
+          "isNone": true,
+          "selected": false,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "prometheus - Juju generated source",
+        "definition": "label_values(node_exporter_build_info{env=~'$env'},name)",
+        "description": null,
+        "error": null,
+        "hide": 2,
+        "includeAll": false,
+        "label": "名称",
+        "multi": true,
+        "multiFormat": "regex values",
+        "name": "name",
+        "options": [],
+        "query": {
+          "query": "label_values(node_exporter_build_info{env=~'$env'},name)",
+          "refId": "prometheus - Juju generated source-name-Variable-Query"
+        },
+        "refresh": 2,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "/.*/",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      }
+    ]
+  },
+  "time": {
+    "from": "now-2d",
+    "to": "now"
+  },
+  "timepicker": {
+    "now": true,
+    "refresh_intervals": [
+      "5s",
+      "10s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m",
+      "1h",
+      "2h",
+      "1d"
+    ],
+    "time_options": [
+      "5m",
+      "15m",
+      "1h",
+      "6h",
+      "12h",
+      "24h",
+      "2d",
+      "7d",
+      "30d"
+    ]
+  },
+  "timezone": "browser",
+  "title": "Hosts",
+  "uid": "ha7fSE0Zz",
+  "version": 16
+}
\ No newline at end of file
diff --git a/installers/charm/grafana/files/nodes_exporter_dashboard.yaml b/installers/charm/grafana/files/nodes_exporter_dashboard.yaml
deleted file mode 100644 (file)
index 51fcff5..0000000
+++ /dev/null
@@ -1,1425 +0,0 @@
-# Copyright 2021 Canonical Ltd.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: legal@canonical.com
-#
-# To get in touch with the maintainers, please contact:
-# osm-charmers@lists.launchpad.net
-##
-
----
-annotations:
-  list:
-    - builtIn: 1
-      datasource: '-- Grafana --'
-      enable: true
-      hide: true
-      iconColor: 'rgba(0, 211, 255, 1)'
-      name: Annotations & Alerts
-      type: dashboard
-description: Physical nodes dashboard
-editable: true
-gnetId: 11074
-graphTooltip: 0
-id: 12
-iteration: 1577553366915
-links: []
-panels:
-  - collapsed: true
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 0
-    id: 179
-    panels:
-      - cacheTimeout: null
-        colorBackground: false
-        colorPostfix: false
-        colorPrefix: false
-        colorValue: true
-        colors:
-          - 'rgba(245, 54, 54, 0.9)'
-          - 'rgba(237, 129, 40, 0.89)'
-          - 'rgba(50, 172, 45, 0.97)'
-        datasource: Prometheus
-        decimals: 1
-        description: ''
-        format: s
-        gauge:
-          maxValue: 100
-          minValue: 0
-          show: false
-          thresholdLabels: false
-          thresholdMarkers: true
-        gridPos:
-          h: 6
-          w: 2
-          x: 0
-          'y': 1
-        hideTimeOverride: true
-        id: 15
-        interval: null
-        links: []
-        mappingType: 1
-        mappingTypes:
-          - name: value to text
-            value: 1
-          - name: range to text
-            value: 2
-        maxDataPoints: 100
-        nullPointMode: 'null'
-        nullText: null
-        options: {}
-        pluginVersion: 6.4.2
-        postfix: ''
-        postfixFontSize: 50%
-        prefix: ''
-        prefixFontSize: 50%
-        rangeMaps:
-          - from: 'null'
-            text: N/A
-            to: 'null'
-        sparkline:
-          fillColor: 'rgba(31, 118, 189, 0.18)'
-          full: false
-          lineColor: 'rgb(31, 120, 193)'
-          show: false
-        tableColumn: ''
-        targets:
-          - expr: 'sum(time() - node_boot_time_seconds{instance=~"$node"})'
-            format: time_series
-            hide: false
-            instant: true
-            intervalFactor: 1
-            refId: A
-            step: 40
-        thresholds: '1,2'
-        title: System Uptime
-        type: singlestat
-        valueFontSize: 70%
-        valueMaps:
-          - op: '='
-            text: N/A
-            value: 'null'
-        valueName: current
-      - cacheTimeout: null
-        colorBackground: false
-        colorPostfix: false
-        colorValue: true
-        colors:
-          - 'rgba(245, 54, 54, 0.9)'
-          - 'rgba(237, 129, 40, 0.89)'
-          - 'rgba(50, 172, 45, 0.97)'
-        datasource: Prometheus
-        description: ''
-        format: short
-        gauge:
-          maxValue: 100
-          minValue: 0
-          show: false
-          thresholdLabels: false
-          thresholdMarkers: true
-        gridPos:
-          h: 6
-          w: 2
-          x: 2
-          'y': 1
-        id: 14
-        interval: null
-        links: []
-        mappingType: 1
-        mappingTypes:
-          - name: value to text
-            value: 1
-          - name: range to text
-            value: 2
-        maxDataPoints: 100
-        maxPerRow: 6
-        nullPointMode: 'null'
-        nullText: null
-        options: {}
-        postfix: ''
-        postfixFontSize: 50%
-        prefix: ''
-        prefixFontSize: 50%
-        rangeMaps:
-          - from: 'null'
-            text: N/A
-            to: 'null'
-        sparkline:
-          fillColor: 'rgba(31, 118, 189, 0.18)'
-          full: false
-          lineColor: 'rgb(31, 120, 193)'
-          show: false
-        tableColumn: ''
-        targets:
-          - expr: >-
-              sum(count(node_cpu_seconds_total{instance=~"$node",
-              mode='system'}) by (cpu))
-            format: time_series
-            instant: true
-            intervalFactor: 1
-            legendFormat: ''
-            refId: A
-            step: 20
-        thresholds: '1,2'
-        title: CPU Cores
-        type: singlestat
-        valueFontSize: 70%
-        valueMaps:
-          - op: '='
-            text: N/A
-            value: 'null'
-        valueName: current
-      - cacheTimeout: null
-        colorBackground: false
-        colorValue: true
-        colors:
-          - 'rgba(245, 54, 54, 0.9)'
-          - 'rgba(237, 129, 40, 0.89)'
-          - 'rgba(50, 172, 45, 0.97)'
-        datasource: Prometheus
-        decimals: 2
-        description: ''
-        format: bytes
-        gauge:
-          maxValue: 100
-          minValue: 0
-          show: false
-          thresholdLabels: false
-          thresholdMarkers: true
-        gridPos:
-          h: 6
-          w: 2
-          x: 4
-          'y': 1
-        id: 75
-        interval: null
-        links: []
-        mappingType: 1
-        mappingTypes:
-          - name: value to text
-            value: 1
-          - name: range to text
-            value: 2
-        maxDataPoints: 100
-        maxPerRow: 6
-        nullPointMode: 'null'
-        nullText: null
-        options: {}
-        postfix: ''
-        postfixFontSize: 70%
-        prefix: ''
-        prefixFontSize: 50%
-        rangeMaps:
-          - from: 'null'
-            text: N/A
-            to: 'null'
-        sparkline:
-          fillColor: 'rgba(31, 118, 189, 0.18)'
-          full: false
-          lineColor: 'rgb(31, 120, 193)'
-          show: false
-        tableColumn: ''
-        targets:
-          - expr: 'sum(node_memory_MemTotal_bytes{instance=~"$node"})'
-            format: time_series
-            instant: true
-            intervalFactor: 1
-            legendFormat: '{{instance}}'
-            refId: A
-            step: 20
-        thresholds: '2,3'
-        title: Total RAM
-        type: singlestat
-        valueFontSize: 70%
-        valueMaps:
-          - op: '='
-            text: N/A
-            value: 'null'
-        valueName: current
-      - datasource: Prometheus
-        gridPos:
-          h: 6
-          w: 18
-          x: 6
-          'y': 1
-        id: 177
-        options:
-          displayMode: lcd
-          fieldOptions:
-            calcs:
-              - last
-            defaults:
-              mappings:
-                - from: ''
-                  id: 1
-                  operator: ''
-                  text: '-'
-                  to: ''
-                  type: 1
-                  value: NaN
-              max: 100
-              min: 0
-              thresholds:
-                - color: green
-                  value: null
-                - color: '#EAB839'
-                  value: 60
-                - color: red
-                  value: 80
-              title: ''
-              unit: percent
-            override: {}
-            values: false
-          orientation: horizontal
-        pluginVersion: 6.3.5
-        targets:
-          - expr: >-
-              100 -
-              (avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[30m]))
-              * 100)
-            instant: true
-            legendFormat: CPU Busy
-            refId: A
-          - expr: >-
-              avg(irate(node_cpu_seconds_total{instance=~"$node",mode="iowait"}[30m]))
-              * 100
-            hide: true
-            instant: true
-            legendFormat: Busy Iowait
-            refId: C
-          - expr: >-
-              (1 - (node_memory_MemAvailable_bytes{instance=~"$node"} /
-              (node_memory_MemTotal_bytes{instance=~"$node"})))* 100
-            instant: true
-            legendFormat: Used RAM Memory
-            refId: B
-          - expr: >-
-              100 -
-              ((node_filesystem_avail_bytes{instance=~"$node",mountpoint="$maxmount",fstype=~"ext4|xfs"}
-              * 100) / node_filesystem_size_bytes
-              {instance=~"$node",mountpoint="$maxmount",fstype=~"ext4|xfs"})
-            hide: false
-            instant: true
-            legendFormat: Used Max Mount($maxmount)
-            refId: D
-          - expr: >-
-              (1 - (node_memory_SwapFree_bytes{instance=~"$node"} /
-              node_memory_SwapTotal_bytes{instance=~"$node"})) * 100
-            instant: true
-            legendFormat: Used SWAP
-            refId: E
-        timeFrom: null
-        timeShift: null
-        title: ''
-        type: bargauge
-    title: Summary
-    type: row
-  - collapsed: true
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 1
-    id: 181
-    panels:
-      - aliasColors:
-          15分钟: '#6ED0E0'
-          1分钟: '#BF1B00'
-          5分钟: '#CCA300'
-        bars: false
-        dashLength: 10
-        dashes: false
-        datasource: Prometheus
-        editable: true
-        error: false
-        fill: 1
-        fillGradient: 1
-        grid: {}
-        gridPos:
-          h: 10
-          w: 12
-          x: 0
-          'y': 8
-        height: '300'
-        id: 13
-        legend:
-          alignAsTable: true
-          avg: true
-          current: true
-          max: true
-          min: false
-          rightSide: false
-          show: true
-          total: false
-          values: true
-        lines: true
-        linewidth: 2
-        links: []
-        maxPerRow: 6
-        nullPointMode: null as zero
-        options:
-          dataLinks: []
-        percentage: false
-        pointradius: 5
-        points: false
-        renderer: flot
-        repeat: null
-        seriesOverrides: []
-        spaceLength: 10
-        stack: false
-        steppedLine: false
-        targets:
-          - expr: 'node_load1{instance=~"$node"}'
-            format: time_series
-            instant: false
-            interval: ''
-            intervalFactor: 1
-            legendFormat: '{{instance}}_1m'
-            metric: ''
-            refId: A
-            step: 20
-            target: ''
-          - expr: 'node_load5{instance=~"$node"}'
-            format: time_series
-            instant: false
-            interval: ''
-            intervalFactor: 1
-            legendFormat: '{{instance}}_5m'
-            refId: B
-            step: 20
-          - expr: 'node_load15{instance=~"$node"}'
-            format: time_series
-            instant: false
-            interval: ''
-            intervalFactor: 1
-            legendFormat: '{{instance}}_15m'
-            refId: C
-            step: 20
-        thresholds: []
-        timeFrom: null
-        timeRegions: []
-        timeShift: null
-        title: System Load
-        tooltip:
-          msResolution: false
-          shared: true
-          sort: 2
-          value_type: cumulative
-        type: graph
-        xaxis:
-          buckets: null
-          mode: time
-          name: null
-          show: true
-          values: []
-        yaxes:
-          - format: short
-            logBase: 1
-            max: null
-            min: null
-            show: true
-          - format: short
-            logBase: 1
-            max: null
-            min: null
-            show: true
-        yaxis:
-          align: false
-          alignLevel: null
-      - aliasColors:
-          '192.168.200.241:9100_Total': dark-red
-          Idle - Waiting for something to happen: '#052B51'
-          guest: '#9AC48A'
-          idle: '#052B51'
-          iowait: '#EAB839'
-          irq: '#BF1B00'
-          nice: '#C15C17'
-          softirq: '#E24D42'
-          steal: '#FCE2DE'
-          system: '#508642'
-          user: '#5195CE'
-        bars: false
-        dashLength: 10
-        dashes: false
-        datasource: Prometheus
-        decimals: 2
-        description: ''
-        fill: 1
-        fillGradient: 0
-        gridPos:
-          h: 10
-          w: 12
-          x: 12
-          'y': 8
-        id: 7
-        legend:
-          alignAsTable: true
-          avg: true
-          current: true
-          hideEmpty: true
-          hideZero: true
-          max: true
-          min: false
-          rightSide: false
-          show: true
-          sideWidth: null
-          sort: current
-          sortDesc: true
-          total: false
-          values: true
-        lines: true
-        linewidth: 2
-        links: []
-        maxPerRow: 6
-        nullPointMode: 'null'
-        options:
-          dataLinks: []
-        percentage: false
-        pointradius: 5
-        points: false
-        renderer: flot
-        repeat: null
-        seriesOverrides:
-          - alias: /.*_Total/
-            color: '#C4162A'
-            fill: 0
-        spaceLength: 10
-        stack: false
-        steppedLine: false
-        targets:
-          - expr: >-
-              avg(irate(node_cpu_seconds_total{instance=~"$node",mode="system"}[30m]))
-              by (instance)
-            format: time_series
-            hide: false
-            instant: false
-            interval: ''
-            intervalFactor: 1
-            legendFormat: '{{instance}}_System'
-            refId: A
-            step: 20
-          - expr: >-
-              avg(irate(node_cpu_seconds_total{instance=~"$node",mode="user"}[30m]))
-              by (instance)
-            format: time_series
-            hide: false
-            intervalFactor: 1
-            legendFormat: '{{instance}}_User'
-            refId: B
-            step: 240
-          - expr: >-
-              avg(irate(node_cpu_seconds_total{instance=~"$node",mode="iowait"}[30m]))
-              by (instance)
-            format: time_series
-            hide: false
-            instant: false
-            intervalFactor: 1
-            legendFormat: '{{instance}}_Iowait'
-            refId: D
-            step: 240
-          - expr: >-
-              1 -
-              avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[30m]))
-              by (instance)
-            format: time_series
-            hide: false
-            intervalFactor: 1
-            legendFormat: '{{instance}}_Total'
-            refId: F
-            step: 240
-        thresholds: []
-        timeFrom: null
-        timeRegions: []
-        timeShift: null
-        title: CPU
-        tooltip:
-          shared: true
-          sort: 2
-          value_type: individual
-        type: graph
-        xaxis:
-          buckets: null
-          mode: time
-          name: null
-          show: true
-          values: []
-        yaxes:
-          - decimals: 2
-            format: percentunit
-            label: ''
-            logBase: 1
-            max: null
-            min: null
-            show: true
-          - format: short
-            label: null
-            logBase: 1
-            max: null
-            min: null
-            show: false
-        yaxis:
-          align: false
-          alignLevel: null
-    title: CPU
-    type: row
-  - collapsed: true
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 2
-    id: 183
-    panels:
-      - columns: []
-        datasource: Prometheus
-        fontSize: 110%
-        gridPos:
-          h: 8
-          w: 8
-          x: 0
-          'y': 3
-        id: 164
-        links: []
-        options: {}
-        pageSize: null
-        scroll: true
-        showHeader: true
-        sort:
-          col: 11
-          desc: true
-        styles:
-          - alias: Mounted on
-            colorMode: null
-            colors:
-              - 'rgba(50, 172, 45, 0.97)'
-              - 'rgba(237, 129, 40, 0.89)'
-              - 'rgba(245, 54, 54, 0.9)'
-            dateFormat: 'YYYY-MM-DD HH:mm:ss'
-            decimals: 2
-            mappingType: 1
-            pattern: mountpoint
-            thresholds:
-              - ''
-            type: string
-            unit: bytes
-          - alias: Avail
-            colorMode: value
-            colors:
-              - 'rgba(245, 54, 54, 0.9)'
-              - 'rgba(237, 129, 40, 0.89)'
-              - 'rgba(50, 172, 45, 0.97)'
-            dateFormat: 'YYYY-MM-DD HH:mm:ss'
-            decimals: 2
-            mappingType: 1
-            pattern: 'Value #A'
-            thresholds:
-              - '10000000000'
-              - '20000000000'
-            type: number
-            unit: bytes
-          - alias: Used
-            colorMode: cell
-            colors:
-              - 'rgba(50, 172, 45, 0.97)'
-              - 'rgba(237, 129, 40, 0.89)'
-              - 'rgba(245, 54, 54, 0.9)'
-            dateFormat: 'YYYY-MM-DD HH:mm:ss'
-            decimals: 2
-            mappingType: 1
-            pattern: 'Value #B'
-            thresholds:
-              - '0.6'
-              - '0.8'
-            type: number
-            unit: percentunit
-          - alias: Size
-            colorMode: null
-            colors:
-              - 'rgba(245, 54, 54, 0.9)'
-              - 'rgba(237, 129, 40, 0.89)'
-              - 'rgba(50, 172, 45, 0.97)'
-            dateFormat: 'YYYY-MM-DD HH:mm:ss'
-            decimals: 1
-            link: false
-            mappingType: 1
-            pattern: 'Value #C'
-            thresholds: []
-            type: number
-            unit: bytes
-          - alias: Filesystem
-            colorMode: null
-            colors:
-              - 'rgba(245, 54, 54, 0.9)'
-              - 'rgba(237, 129, 40, 0.89)'
-              - 'rgba(50, 172, 45, 0.97)'
-            dateFormat: 'YYYY-MM-DD HH:mm:ss'
-            decimals: 2
-            link: false
-            mappingType: 1
-            pattern: fstype
-            thresholds: []
-            type: string
-            unit: short
-          - alias: ''
-            colorMode: null
-            colors:
-              - 'rgba(245, 54, 54, 0.9)'
-              - 'rgba(237, 129, 40, 0.89)'
-              - 'rgba(50, 172, 45, 0.97)'
-            decimals: 2
-            pattern: /.*/
-            preserveFormat: true
-            sanitize: false
-            thresholds: []
-            type: hidden
-            unit: short
-        targets:
-          - expr: >-
-              node_filesystem_avail_bytes
-              {instance=~'$node',fstype=~"ext4|xfs"}-0
-            format: table
-            hide: false
-            instant: true
-            interval: 10s
-            intervalFactor: 1
-            legendFormat: ''
-            refId: A
-          - expr: >-
-              1-(node_filesystem_free_bytes{instance=~'$node',fstype=~"ext4|xfs"}
-              /
-              node_filesystem_size_bytes{instance=~'$node',fstype=~"ext4|xfs"})
-            format: table
-            hide: false
-            instant: true
-            intervalFactor: 1
-            legendFormat: ''
-            refId: B
-          - expr: >-
-              'node_filesystem_size_bytes{instance=~''$node'',fstype=~"ext4|xfs"}-0'
-            format: table
-            hide: false
-            instant: true
-            intervalFactor: 1
-            legendFormat: ''
-            refId: C
-        title: Disk Space Used  (EXT4/XFS)
-        transform: table
-        type: table
-      - aliasColors:
-          vda_write: '#6ED0E0'
-        bars: false
-        dashLength: 10
-        dashes: false
-        datasource: Prometheus
-        description: 'Per second read / write bytes '
-        fill: 1
-        fillGradient: 1
-        gridPos:
-          h: 8
-          w: 8
-          x: 8
-          'y': 3
-        height: '300'
-        id: 168
-        legend:
-          alignAsTable: true
-          avg: true
-          current: true
-          hideEmpty: true
-          hideZero: true
-          max: true
-          min: false
-          show: true
-          sort: current
-          sortDesc: true
-          total: false
-          values: true
-        lines: true
-        linewidth: 2
-        links: []
-        nullPointMode: 'null'
-        options:
-          dataLinks: []
-        percentage: false
-        pointradius: 5
-        points: false
-        renderer: flot
-        seriesOverrides:
-          - alias: /.*_Read bytes$/
-            transform: negative-Y
-        spaceLength: 10
-        stack: false
-        steppedLine: false
-        targets:
-          - expr: 'irate(node_disk_read_bytes_total{instance=~"$node"}[30m])'
-            format: time_series
-            interval: ''
-            intervalFactor: 1
-            legendFormat: '{{instance}}_{{device}}_Read bytes'
-            refId: A
-            step: 10
-          - expr: 'irate(node_disk_written_bytes_total{instance=~"$node"}[30m])'
-            format: time_series
-            hide: false
-            intervalFactor: 1
-            legendFormat: '{{instance}}_{{device}}_Written bytes'
-            refId: B
-            step: 10
-        thresholds: []
-        timeFrom: null
-        timeRegions: []
-        timeShift: null
-        title: Disk R/W Data
-        tooltip:
-          shared: true
-          sort: 2
-          value_type: individual
-        type: graph
-        xaxis:
-          buckets: null
-          mode: time
-          name: null
-          show: true
-          values: []
-        yaxes:
-          - decimals: null
-            format: Bps
-            label: Bytes read (-) / write (+)
-            logBase: 1
-            max: null
-            min: null
-            show: true
-          - format: short
-            label: null
-            logBase: 1
-            max: null
-            min: null
-            show: false
-        yaxis:
-          align: false
-          alignLevel: null
-      - aliasColors:
-          Idle - Waiting for something to happen: '#052B51'
-          guest: '#9AC48A'
-          idle: '#052B51'
-          iowait: '#EAB839'
-          irq: '#BF1B00'
-          nice: '#C15C17'
-          "sdb_æ¯\x8F秒I/Oæ“\x8D作%": '#d683ce'
-          softirq: '#E24D42'
-          steal: '#FCE2DE'
-          system: '#508642'
-          user: '#5195CE'
-          "ç£\x81盘花费在I/Oæ“\x8D作å\x8D æ¯”": '#ba43a9'
-        bars: false
-        dashLength: 10
-        dashes: false
-        datasource: Prometheus
-        decimals: null
-        description: >-
-          The time spent on I/O in the natural time of each second.(wall-clock
-          time)
-        fill: 1
-        fillGradient: 5
-        gridPos:
-          h: 8
-          w: 8
-          x: 16
-          'y': 3
-        id: 175
-        legend:
-          alignAsTable: true
-          avg: true
-          current: true
-          hideEmpty: true
-          hideZero: true
-          max: true
-          min: false
-          rightSide: false
-          show: true
-          sideWidth: null
-          sort: null
-          sortDesc: null
-          total: false
-          values: true
-        lines: true
-        linewidth: 2
-        links: []
-        maxPerRow: 6
-        nullPointMode: 'null'
-        options:
-          dataLinks: []
-        percentage: false
-        pointradius: 5
-        points: false
-        renderer: flot
-        seriesOverrides: []
-        spaceLength: 10
-        stack: false
-        steppedLine: false
-        targets:
-          - expr: >-
-              'irate(node_disk_io_time_seconds_total{instance=~"$node"}[30m])'
-            format: time_series
-            intervalFactor: 1
-            legendFormat: '{{instance}}_{{device}}_ IO time'
-            refId: C
-        thresholds: []
-        timeFrom: null
-        timeRegions: []
-        timeShift: null
-        title: Time Spent Doing I/Os
-        tooltip:
-          shared: true
-          sort: 2
-          value_type: individual
-        type: graph
-        xaxis:
-          buckets: null
-          mode: time
-          name: null
-          show: true
-          values: []
-        yaxes:
-          - decimals: null
-            format: s
-            label: ''
-            logBase: 1
-            max: null
-            min: null
-            show: true
-          - format: short
-            label: null
-            logBase: 1
-            max: null
-            min: null
-            show: false
-        yaxis:
-          align: false
-          alignLevel: null
-    title: Disk
-    type: row
-  - collapsed: true
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 3
-    id: 185
-    panels:
-      - bars: false
-        dashLength: 10
-        dashes: false
-        datasource: Prometheus
-        decimals: 2
-        fill: 1
-        fillGradient: 0
-        gridPos:
-          h: 8
-          w: 24
-          x: 0
-          'y': 28
-        height: '300'
-        id: 156
-        legend:
-          alignAsTable: true
-          avg: false
-          current: true
-          max: false
-          min: false
-          rightSide: false
-          show: true
-          sort: current
-          sortDesc: true
-          total: false
-          values: true
-        lines: true
-        linewidth: 2
-        links: []
-        nullPointMode: 'null'
-        options:
-          dataLinks: []
-        percentage: false
-        pointradius: 5
-        points: false
-        renderer: flot
-        seriesOverrides:
-          - alias: /.*_Total/
-            color: '#C4162A'
-            fill: 0
-        spaceLength: 10
-        stack: false
-        steppedLine: false
-        targets:
-          - expr: 'node_memory_MemTotal_bytes{instance=~"$node"}'
-            format: time_series
-            hide: false
-            instant: false
-            intervalFactor: 1
-            legendFormat: '{{instance}}_Total'
-            refId: A
-            step: 4
-          - expr: >-
-              node_memory_MemTotal_bytes{instance=~"$node"} -
-              node_memory_MemAvailable_bytes{instance=~"$node"}
-            format: time_series
-            hide: false
-            intervalFactor: 1
-            legendFormat: '{{instance}}_Used'
-            refId: B
-            step: 4
-          - expr: 'node_memory_MemAvailable_bytes{instance=~"$node"}'
-            format: time_series
-            hide: false
-            interval: ''
-            intervalFactor: 1
-            legendFormat: '{{instance}}_Avaliable'
-            refId: F
-            step: 4
-        thresholds: []
-        timeFrom: null
-        timeRegions: []
-        timeShift: null
-        title: Memory
-        tooltip:
-          shared: true
-          sort: 2
-          value_type: individual
-        type: graph
-        xaxis:
-          buckets: null
-          mode: time
-          name: null
-          show: true
-          values: []
-        yaxes:
-          - format: bytes
-            label: null
-            logBase: 1
-            max: null
-            min: '0'
-            show: true
-          - format: short
-            label: null
-            logBase: 1
-            max: null
-            min: null
-            show: true
-        yaxis:
-          align: false
-          alignLevel: null
-    title: Memory
-    type: row
-  - collapsed: true
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 4
-    id: 187
-    panels:
-      - bars: false
-        dashLength: 10
-        dashes: false
-        datasource: Prometheus
-        fill: 1
-        fillGradient: 3
-        gridPos:
-          h: 12
-          w: 12
-          x: 0
-          'y': 29
-        height: '300'
-        id: 157
-        legend:
-          alignAsTable: true
-          avg: false
-          current: true
-          hideEmpty: true
-          hideZero: true
-          max: true
-          min: false
-          rightSide: false
-          show: true
-          sort: current
-          sortDesc: true
-          total: false
-          values: true
-        lines: true
-        linewidth: 2
-        links: []
-        nullPointMode: 'null'
-        options:
-          dataLinks: []
-        percentage: false
-        pointradius: 2
-        points: false
-        renderer: flot
-        seriesOverrides:
-          - alias: /.*_transmit$/
-            transform: negative-Y
-        spaceLength: 10
-        stack: false
-        steppedLine: false
-        targets:
-          - expr: >-
-              irate(node_network_receive_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8
-            format: time_series
-            intervalFactor: 1
-            legendFormat: '{{instance}}_{{device}}_receive'
-            refId: A
-            step: 4
-          - expr: >-
-              irate(node_network_transmit_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8
-            format: time_series
-            intervalFactor: 1
-            legendFormat: '{{instance}}_{{device}}_transmit'
-            refId: B
-            step: 4
-        thresholds: []
-        timeFrom: null
-        timeRegions: []
-        timeShift: null
-        title: Network Traffic
-        tooltip:
-          shared: true
-          sort: 2
-          value_type: individual
-        type: graph
-        xaxis:
-          buckets: null
-          mode: time
-          name: null
-          show: true
-          values: []
-        yaxes:
-          - format: bps
-            label: transmit(-)/receive(+)
-            logBase: 1
-            max: null
-            min: null
-            show: true
-          - format: short
-            label: null
-            logBase: 1
-            max: null
-            min: null
-            show: false
-        yaxis:
-          align: false
-          alignLevel: null
-      - aliasColors:
-          TCP: '#6ED0E0'
-        bars: false
-        dashLength: 10
-        dashes: false
-        datasource: Prometheus
-        description: >-
-          TCP_alloc - Allocated sockets
-
-
-          CurrEstab - TCP connections for which the current state is either
-          ESTABLISHED or CLOSE- WAIT
-
-
-          TCP_tw - Sockets wating close
-
-
-          UDP_inuse - Udp sockets currently in use
-
-
-          Sockets_used - Sockets currently in use
-        fill: 1
-        fillGradient: 0
-        gridPos:
-          h: 12
-          w: 12
-          x: 12
-          'y': 29
-        height: '300'
-        id: 158
-        interval: ''
-        legend:
-          alignAsTable: true
-          avg: true
-          current: true
-          hideEmpty: true
-          hideZero: true
-          max: true
-          min: false
-          rightSide: false
-          show: true
-          sort: current
-          sortDesc: true
-          total: false
-          values: true
-        lines: true
-        linewidth: 2
-        links: []
-        nullPointMode: 'null'
-        options:
-          dataLinks: []
-        percentage: false
-        pointradius: 5
-        points: false
-        renderer: flot
-        seriesOverrides:
-          - alias: /.*_Sockets_used/
-            color: '#C4162A'
-            fill: 0
-        spaceLength: 10
-        stack: false
-        steppedLine: false
-        targets:
-          - expr: 'node_netstat_Tcp_CurrEstab{instance=~''$node''}'
-            format: time_series
-            hide: false
-            instant: false
-            interval: ''
-            intervalFactor: 1
-            legendFormat: '{{instance}}_CurrEstab'
-            refId: A
-            step: 20
-          - expr: 'node_sockstat_TCP_tw{instance=~''$node''}'
-            format: time_series
-            intervalFactor: 1
-            legendFormat: '{{instance}}_TCP_tw'
-            refId: D
-          - expr: 'node_sockstat_sockets_used{instance=~''$node''}'
-            legendFormat: '{{instance}}_Sockets_used'
-            refId: B
-          - expr: 'node_sockstat_UDP_inuse{instance=~''$node''}'
-            legendFormat: '{{instance}}_UDP_inuse'
-            refId: C
-          - expr: 'node_sockstat_TCP_alloc{instance=~''$node''}'
-            legendFormat: '{{instance}}_TCP_alloc'
-            refId: E
-        thresholds: []
-        timeFrom: null
-        timeRegions: []
-        timeShift: null
-        title: Network Sockstat
-        tooltip:
-          shared: true
-          sort: 2
-          value_type: individual
-        type: graph
-        xaxis:
-          buckets: null
-          mode: time
-          name: null
-          show: true
-          values: []
-        yaxes:
-          - format: short
-            label: null
-            logBase: 1
-            max: null
-            min: null
-            show: true
-          - format: short
-            label: null
-            logBase: 1
-            max: null
-            min: null
-            show: true
-        yaxis:
-          align: false
-          alignLevel: null
-    title: Network
-    type: row
-refresh: false
-schemaVersion: 19
-style: dark
-tags: []
-templating:
-  list:
-    - allValue: null
-      current:
-        text: node-exporter
-        value: node-exporter
-      datasource: Prometheus
-      definition: 'label_values(node_uname_info, job)'
-      hide: 0
-      includeAll: false
-      label: JOB
-      multi: false
-      name: job
-      options: []
-      query: 'label_values(node_uname_info, job)'
-      refresh: 1
-      regex: ''
-      skipUrlSync: false
-      sort: 1
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-    - allValue: null
-      current:
-        text: All
-        value: $__all
-      datasource: Prometheus
-      definition: 'label_values(node_uname_info{job=~"$job"}, nodename)'
-      hide: 0
-      includeAll: true
-      label: Host
-      multi: true
-      name: hostname
-      options: []
-      query: 'label_values(node_uname_info{job=~"$job"}, nodename)'
-      refresh: 1
-      regex: ''
-      skipUrlSync: false
-      sort: 0
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-    - allFormat: glob
-      allValue: null
-      current:
-        tags: []
-        text: All
-        value: $__all
-      datasource: Prometheus
-      definition: >-
-        'label_values(node_uname_info{nodename=~"$hostname"},instance)'
-      hide: 0
-      includeAll: true
-      label: IP
-      multi: false
-      multiFormat: regex values
-      name: node
-      options: []
-      query: 'label_values(node_uname_info{nodename=~"$hostname"},instance)'
-      refresh: 2
-      regex: ''
-      skipUrlSync: false
-      sort: 1
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-    - allValue: null
-      current:
-        text: /
-        value: /
-      datasource: Prometheus
-      definition: ''
-      hide: 2
-      includeAll: false
-      label: ''
-      multi: false
-      name: maxmount
-      options: []
-      query: >-
-        query_result(topk(1,sort_desc
-        (max(node_filesystem_size_bytes{instance=~'$node',fstype=~"ext4|xfs"})
-        by (mountpoint))))
-      refresh: 2
-      regex: /.*\"(.*)\".*/
-      skipUrlSync: false
-      sort: 0
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-    - allFormat: glob
-      allValue: null
-      current:
-        isNone: true
-        text: None
-        value: ''
-      datasource: Prometheus
-      definition: ''
-      hide: 2
-      includeAll: false
-      multi: false
-      multiFormat: regex values
-      name: env
-      options: []
-      query: 'label_values(node_exporter_build_info,env)'
-      refresh: 2
-      regex: ''
-      skipUrlSync: false
-      sort: 1
-      tagValuesQuery: ''
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-    - allFormat: glob
-      allValue: ''
-      current:
-        isNone: true
-        text: None
-        value: ''
-      datasource: Prometheus
-      definition: 'label_values(node_exporter_build_info{env=~''$env''},name)'
-      hide: 2
-      includeAll: false
-      label: "å\x90\x8D称"
-      multi: true
-      multiFormat: regex values
-      name: name
-      options: []
-      query: 'label_values(node_exporter_build_info{env=~''$env''},name)'
-      refresh: 2
-      regex: ''
-      skipUrlSync: false
-      sort: 1
-      tagValuesQuery: /.*/
-      tags: []
-      tagsQuery: ''
-      type: query
-      useTags: false
-time:
-  from: now-2d
-  to: now
-timepicker:
-  now: true
-  refresh_intervals:
-    - 5s
-    - 10s
-    - 30s
-    - 1m
-    - 5m
-    - 15m
-    - 30m
-    - 1h
-    - 2h
-    - 1d
-  time_options:
-    - 5m
-    - 15m
-    - 1h
-    - 6h
-    - 12h
-    - 24h
-    - 2d
-    - 7d
-    - 30d
-timezone: browser
-title: Hosts
-uid: ha7fSE0Zz
-version: 1
diff --git a/installers/charm/grafana/files/summary_dashboard.json b/installers/charm/grafana/files/summary_dashboard.json
new file mode 100644 (file)
index 0000000..b938810
--- /dev/null
@@ -0,0 +1,2202 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "OSM status summary",
+  "editable": true,
+  "gnetId": 6417,
+  "graphTooltip": 1,
+  "id": 5,
+  "iteration": 1615160504049,
+  "links": [
+    {
+      "asDropdown": true,
+      "icon": "external link",
+      "includeVars": true,
+      "keepTime": false,
+      "tags": [],
+      "title": "Dashboards",
+      "type": "dashboards"
+    }
+  ],
+  "panels": [
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 2,
+      "panels": [],
+      "title": "Cluster Health",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 12,
+        "x": 0,
+        "y": 1
+      },
+      "id": 26,
+      "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": " Nodes",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(kube_node_info)",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "B"
+        }
+      ],
+      "thresholds": "1",
+      "title": "",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 12,
+        "x": 12,
+        "y": 1
+      },
+      "id": 30,
+      "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": " Pods Running",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(78, 203, 42, 0.28)",
+        "full": false,
+        "lineColor": "#629e51",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(kube_pod_status_phase)",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": true,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#56A64B",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 12,
+        "x": 0,
+        "y": 3
+      },
+      "id": 24,
+      "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": " Nodes Unavailable",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(kube_node_info)-sum(kube_node_status_condition{condition=\"Ready\", status=\"true\"})",
+          "format": "time_series",
+          "instant": true,
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "1,1",
+      "title": "",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": true,
+      "colorValue": false,
+      "colors": [
+        "#56A64B",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 12,
+        "x": 12,
+        "y": 3
+      },
+      "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": " Pods not Ready",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(kube_pod_status_phase{phase!=\"Running\"})",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percentunit",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 0,
+        "y": 5
+      },
+      "id": 4,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(kube_pod_info) / sum(kube_node_status_allocatable_pods)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0.7,0.85",
+      "title": "Pod Usage",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percentunit",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 6,
+        "y": 5
+      },
+      "id": 5,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(kube_pod_container_resource_requests_cpu_cores) / sum(kube_node_status_allocatable_cpu_cores)",
+          "format": "time_series",
+          "instant": true,
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0.7,0.85",
+      "title": "CPU Usage",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percentunit",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 12,
+        "y": 5
+      },
+      "id": 6,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(kube_pod_container_resource_requests_memory_bytes) / sum(kube_node_status_allocatable_memory_bytes)",
+          "format": "time_series",
+          "instant": true,
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0.7,0.85",
+      "title": "Memory Usage",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#73BF69",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percentunit",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 18,
+        "y": 5
+      },
+      "id": 7,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "(sum (node_filesystem_size_bytes) - sum (node_filesystem_free_bytes)) / sum (node_filesystem_size_bytes)",
+          "format": "time_series",
+          "instant": true,
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0.7,0.85",
+      "title": "Disk Usage",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 9
+      },
+      "id": 61,
+      "panels": [],
+      "title": "OSM",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 0,
+        "y": 10
+      },
+      "id": 71,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"prometheus-k8s\"}",
+          "format": "time_series",
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Prometheus",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 4,
+        "y": 10
+      },
+      "id": 74,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"mongodb-k8s\"}",
+          "format": "time_series",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "mongo",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 8,
+        "y": 10
+      },
+      "id": 72,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"mariadb-k8s\"}",
+          "format": "time_series",
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "mysql ",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 12,
+        "y": 10
+      },
+      "id": 77,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "pluginVersion": "6.3.5",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"ro-k8s\"}",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "ro",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 16,
+        "y": 10
+      },
+      "id": 73,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"zookeeper-k8s\"}",
+          "format": "time_series",
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "zookeeper",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 20,
+        "y": 10
+      },
+      "id": 78,
+      "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"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"kafka-k8s\"}",
+          "format": "time_series",
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "kafka",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 0,
+        "y": 14
+      },
+      "id": 76,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "pluginVersion": "6.3.5",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"lcm-k8s\"}",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "lcm",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 4,
+        "y": 14
+      },
+      "id": 79,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "pluginVersion": "6.3.5",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_deployment_status_replicas_available{deployment=\"ng-ui\"}",
+          "instant": true,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "light-ui",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 8,
+        "y": 14
+      },
+      "id": 75,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "pluginVersion": "6.3.5",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"nbi-k8s\"}",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "nbi",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 12,
+        "y": 14
+      },
+      "id": 67,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "pluginVersion": "6.3.5",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"pol-k8s\"}",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "pol",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 16,
+        "y": 14
+      },
+      "id": 69,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "pluginVersion": "6.3.5",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"mon-k8s\"}",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "mon",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#d44a3a",
+        "rgba(237, 129, 40, 0.89)",
+        "#299c46"
+      ],
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": false
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 20,
+        "y": 14
+      },
+      "id": 81,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "pluginVersion": "6.3.5",
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false,
+        "ymax": null,
+        "ymin": null
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "kube_deployment_status_replicas_available{deployment=\"keystone\"}",
+          "format": "time_series",
+          "instant": true,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "0,1",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "keystone",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "0",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 23,
+        "x": 0,
+        "y": 18
+      },
+      "hiddenSeries": false,
+      "id": 84,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.4.3",
+      "pointradius": 2,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"osm\", pod!~\".*operator.*\"}[$__rate_interval])) by (pod)",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 4,
+          "legendFormat": "{{pod}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Pod CPU Usage",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "$$hashKey": "object:3755",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "$$hashKey": "object:3756",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 23,
+        "x": 0,
+        "y": 27
+      },
+      "hiddenSeries": false,
+      "id": 85,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.4.3",
+      "pointradius": 2,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(container_memory_working_set_bytes{namespace=\"osm\", pod!~\".*operator.*\"}[$__rate_interval])) by (pod)",
+          "interval": "",
+          "intervalFactor": 4,
+          "legendFormat": "{{pod}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Pod Memory Usage",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "$$hashKey": "object:3786",
+          "format": "decbytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "$$hashKey": "object:3787",
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 21,
+        "y": 36
+      },
+      "id": 82,
+      "links": [],
+      "options": {
+        "content": "\n\n\n",
+        "mode": "markdown"
+      },
+      "pluginVersion": "7.4.3",
+      "targets": [
+        {
+          "expr": "",
+          "instant": true,
+          "refId": "A"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "",
+      "transparent": true,
+      "type": "text"
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 3,
+        "x": 19,
+        "y": 40
+      },
+      "id": 80,
+      "links": [],
+      "options": {
+        "content": "<h2 style=\"text-align: center;\"></p>\n\n\n",
+        "mode": "html"
+      },
+      "pluginVersion": "7.4.3",
+      "targets": [
+        {
+          "expr": "",
+          "instant": true,
+          "refId": "A"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "",
+      "transparent": true,
+      "type": "text"
+    }
+  ],
+  "refresh": "30s",
+  "schemaVersion": 27,
+  "style": "dark",
+  "tags": [],
+  "templating": {
+    "list": [
+      {
+        "current": {
+          "selected": false,
+          "text": "No data sources found",
+          "value": ""
+        },
+        "description": null,
+        "error": null,
+        "hide": 2,
+        "includeAll": false,
+        "label": "",
+        "multi": false,
+        "name": "datasource",
+        "options": [],
+        "query": "prometheus",
+        "refresh": 1,
+        "regex": "/$ds/",
+        "skipUrlSync": false,
+        "type": "datasource"
+      }
+    ]
+  },
+  "time": {
+    "from": "now-15m",
+    "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": "browser",
+  "title": "OSM Status Summary",
+  "uid": "4XuPd2Ii1",
+  "version": 12
+}
\ No newline at end of file
diff --git a/installers/charm/grafana/files/summary_dashboard.yaml b/installers/charm/grafana/files/summary_dashboard.yaml
deleted file mode 100644 (file)
index c9c1fdf..0000000
+++ /dev/null
@@ -1,1621 +0,0 @@
-# Copyright 2021 Canonical Ltd.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-# For those usages not covered by the Apache License, Version 2.0 please
-# contact: legal@canonical.com
-#
-# To get in touch with the maintainers, please contact:
-# osm-charmers@lists.launchpad.net
-##
-
----
-annotations:
-  list:
-    - builtIn: 1
-      datasource: '-- Grafana --'
-      enable: true
-      hide: true
-      iconColor: 'rgba(0, 211, 255, 1)'
-      name: Annotations & Alerts
-      type: dashboard
-description: OSM status summary
-editable: true
-gnetId: 6417
-graphTooltip: 1
-id: 10
-iteration: 1577638384562
-links:
-  - asDropdown: true
-    icon: external link
-    includeVars: true
-    keepTime: false
-    tags: []
-    title: Dashboards
-    type: dashboards
-panels:
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 0
-    id: 2
-    panels: []
-    title: Cluster Health
-    type: row
-  - cacheTimeout: null
-    colorBackground: false
-    colorPrefix: false
-    colorValue: false
-    colors:
-      - '#299c46'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 100
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 2
-      w: 12
-      x: 0
-      'y': 1
-    id: 26
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ' Nodes'
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    repeat: null
-    repeatDirection: h
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-    tableColumn: Value
-    targets:
-      - expr: sum(kube_node_info)
-        format: time_series
-        instant: true
-        intervalFactor: 1
-        legendFormat: ''
-        refId: B
-    thresholds: '1'
-    title: ''
-    type: singlestat
-    valueFontSize: 70%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#299c46'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 100
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 2
-      w: 12
-      x: 12
-      'y': 1
-    id: 30
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ' Pods Running'
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(78, 203, 42, 0.28)'
-      full: false
-      lineColor: '#629e51'
-      show: true
-    tableColumn: ''
-    targets:
-      - expr: sum(kube_pod_status_phase)
-        format: time_series
-        instant: true
-        interval: ''
-        intervalFactor: 1
-        refId: A
-    thresholds: ''
-    title: ''
-    type: singlestat
-    valueFontSize: 70%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: true
-    colorPrefix: false
-    colorValue: false
-    colors:
-      - '#56A64B'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 100
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 2
-      w: 12
-      x: 0
-      'y': 3
-    id: 24
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ' Nodes Unavailable'
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-    tableColumn: ''
-    targets:
-      - expr: >-
-          sum(kube_node_info)-sum(kube_node_status_condition{condition="Ready",
-          status="true"})
-        format: time_series
-        instant: true
-        intervalFactor: 1
-        refId: A
-    thresholds: '1,1'
-    title: ''
-    type: singlestat
-    valueFontSize: 70%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: true
-    colorValue: false
-    colors:
-      - '#56A64B'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 100
-      minValue: 0
-      show: false
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 2
-      w: 12
-      x: 12
-      'y': 3
-    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
-    options: {}
-    postfix: ' Pods not Ready'
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: 'sum(kube_pod_status_phase{phase!="Running"})'
-        instant: true
-        legendFormat: ''
-        refId: A
-    thresholds: '1'
-    timeFrom: null
-    timeShift: null
-    title: ''
-    type: singlestat
-    valueFontSize: 70%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: avg
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#299c46'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: percentunit
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 4
-      w: 6
-      x: 0
-      'y': 5
-    id: 4
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-    tableColumn: ''
-    targets:
-      - expr: sum(kube_pod_info) / sum(kube_node_status_allocatable_pods)
-        format: time_series
-        intervalFactor: 1
-        refId: A
-    thresholds: '0.7,0.85'
-    title: Pod Usage
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#299c46'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: percentunit
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 4
-      w: 6
-      x: 6
-      'y': 5
-    id: 5
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-    tableColumn: ''
-    targets:
-      - expr: >-
-          sum(kube_pod_container_resource_requests_cpu_cores) /
-          sum(kube_node_status_allocatable_cpu_cores)
-        format: time_series
-        instant: true
-        intervalFactor: 1
-        refId: A
-    thresholds: '0.7,0.85'
-    title: CPU Usage
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#299c46'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: percentunit
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 4
-      w: 6
-      x: 12
-      'y': 5
-    id: 6
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-    tableColumn: ''
-    targets:
-      - expr: >-
-          sum(kube_pod_container_resource_requests_memory_bytes) /
-          sum(kube_node_status_allocatable_memory_bytes)
-        format: time_series
-        instant: true
-        intervalFactor: 1
-        refId: A
-    thresholds: '0.7,0.85'
-    title: Memory Usage
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#73BF69'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#d44a3a'
-    datasource: Prometheus
-    format: percentunit
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: true
-    gridPos:
-      h: 4
-      w: 6
-      x: 18
-      'y': 5
-    id: 7
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-    tableColumn: ''
-    targets:
-      - expr: >-
-          (sum (node_filesystem_size_bytes) - sum (node_filesystem_free_bytes))
-          / sum (node_filesystem_size_bytes)
-        format: time_series
-        instant: true
-        intervalFactor: 1
-        refId: A
-    thresholds: '0.7,0.85'
-    title: Disk Usage
-    type: singlestat
-    valueFontSize: 80%
-    valueMaps:
-      - op: '='
-        text: N/A
-        value: 'null'
-    valueName: current
-  - collapsed: false
-    gridPos:
-      h: 1
-      w: 24
-      x: 0
-      'y': 9
-    id: 61
-    panels: []
-    title: OSM
-    type: row
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 0
-      'y': 10
-    id: 71
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: >-
-          kube_statefulset_status_replicas_ready{namespace="osm",
-          statefulset="prometheus"}
-        format: time_series
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: Prometheus
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    decimals: null
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 4
-      'y': 10
-    id: 74
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: >-
-          kube_statefulset_status_replicas_ready{namespace="osm",
-          statefulset="mongodb-k8s"}
-        format: time_series
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: mongo
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 8
-      'y': 10
-    id: 72
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: >-
-          kube_statefulset_status_replicas_ready{namespace="osm",
-          statefulset="mysql"}
-        format: time_series
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: 'mysql '
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 12
-      'y': 10
-    id: 77
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    pluginVersion: 6.3.5
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: Value
-    targets:
-      - expr: 'kube_deployment_status_replicas_available{deployment="ro"}'
-        format: time_series
-        instant: true
-        legendFormat: ''
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: ro
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    decimals: null
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 16
-      'y': 10
-    id: 73
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: >-
-          kube_statefulset_status_replicas_ready{namespace="osm",
-          statefulset="zookeeper"}
-        format: time_series
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: zookeeper
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    decimals: null
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 20
-      'y': 10
-    id: 78
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: >-
-          kube_statefulset_status_replicas_ready{namespace="osm",
-          statefulset="kafka"}
-        format: time_series
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: kafka
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 0
-      'y': 14
-    id: 76
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    pluginVersion: 6.3.5
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: Value
-    targets:
-      - expr: 'kube_deployment_status_replicas_available{deployment="lcm"}'
-        format: time_series
-        instant: true
-        legendFormat: ''
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: lcm
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 4
-      'y': 14
-    id: 79
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    pluginVersion: 6.3.5
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: 'kube_deployment_status_replicas_available{deployment="ng-ui"}'
-        instant: true
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: light-ui
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: avg
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    description: ''
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 8
-      'y': 14
-    id: 75
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    pluginVersion: 6.3.5
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: Value
-    targets:
-      - expr: 'kube_deployment_status_replicas_available{deployment="nbi"}'
-        format: time_series
-        instant: true
-        legendFormat: ''
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: nbi
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 12
-      'y': 14
-    id: 67
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    pluginVersion: 6.3.5
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: Value
-    targets:
-      - expr: 'kube_deployment_status_replicas_available{deployment="pol"}'
-        format: time_series
-        instant: true
-        legendFormat: ''
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: pol
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 16
-      'y': 14
-    id: 69
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    pluginVersion: 6.3.5
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: ''
-    targets:
-      - expr: 'kube_deployment_status_replicas_available{deployment="mon"}'
-        instant: true
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: mon
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: avg
-  - cacheTimeout: null
-    colorBackground: false
-    colorValue: false
-    colors:
-      - '#d44a3a'
-      - 'rgba(237, 129, 40, 0.89)'
-      - '#299c46'
-    datasource: Prometheus
-    format: none
-    gauge:
-      maxValue: 1
-      minValue: 0
-      show: true
-      thresholdLabels: false
-      thresholdMarkers: false
-    gridPos:
-      h: 4
-      w: 3
-      x: 20
-      'y': 14
-    id: 81
-    interval: null
-    links: []
-    mappingType: 1
-    mappingTypes:
-      - name: value to text
-        value: 1
-      - name: range to text
-        value: 2
-    maxDataPoints: 100
-    nullPointMode: connected
-    nullText: null
-    options: {}
-    pluginVersion: 6.3.5
-    postfix: ''
-    postfixFontSize: 50%
-    prefix: ''
-    prefixFontSize: 50%
-    rangeMaps:
-      - from: 'null'
-        text: N/A
-        to: 'null'
-    sparkline:
-      fillColor: 'rgba(31, 118, 189, 0.18)'
-      full: false
-      lineColor: 'rgb(31, 120, 193)'
-      show: false
-      ymax: null
-      ymin: null
-    tableColumn: Value
-    targets:
-      - expr: 'kube_deployment_status_replicas_available{deployment="keystone"}'
-        format: time_series
-        instant: true
-        legendFormat: ''
-        refId: A
-    thresholds: '0,1'
-    timeFrom: null
-    timeShift: null
-    title: keystone
-    type: singlestat
-    valueFontSize: 100%
-    valueMaps:
-      - op: '='
-        text: '0'
-        value: 'null'
-    valueName: current
-  - datasource: Prometheus
-    aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    fill: 6
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 23
-      x: 0
-      'y': 18
-    id: 84
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 2
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: true
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum(namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace="osm"})
-          by (pod)
-        instant: false
-        intervalFactor: 4
-        legendFormat: '{{pod}}'
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Pod CPU Usage
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - datasource: Prometheus
-    aliasColors: {}
-    bars: false
-    dashLength: 10
-    dashes: false
-    fill: 6
-    fillGradient: 0
-    gridPos:
-      h: 9
-      w: 23
-      x: 0
-      'y': 27
-    id: 85
-    legend:
-      avg: false
-      current: false
-      max: false
-      min: false
-      show: true
-      total: false
-      values: false
-    lines: true
-    linewidth: 1
-    nullPointMode: 'null'
-    options:
-      dataLinks: []
-    percentage: false
-    pointradius: 2
-    points: false
-    renderer: flot
-    seriesOverrides: []
-    spaceLength: 10
-    stack: true
-    steppedLine: false
-    targets:
-      - expr: >-
-          sum(container_memory_working_set_bytes{namespace="osm",
-          container!=""}) by (pod)
-        intervalFactor: 4
-        legendFormat: '{{pod}}'
-        refId: A
-    thresholds: []
-    timeFrom: null
-    timeRegions: []
-    timeShift: null
-    title: Pod Memory Usage
-    tooltip:
-      shared: true
-      sort: 0
-      value_type: individual
-    type: graph
-    xaxis:
-      buckets: null
-      mode: time
-      name: null
-      show: true
-      values: []
-    yaxes:
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-      - format: short
-        label: null
-        logBase: 1
-        max: null
-        min: null
-        show: true
-    yaxis:
-      align: false
-      alignLevel: null
-  - cacheTimeout: null
-    content: |+
-      ''
-      ''
-      ''
-    gridPos:
-      h: 4
-      w: 3
-      x: 21
-      'y': 36
-    id: 82
-    links: []
-    mode: markdown
-    options: {}
-    pluginVersion: 6.3.5
-    targets:
-      - expr: ''
-        instant: true
-        refId: A
-    timeFrom: null
-    timeShift: null
-    title: ''
-    transparent: true
-    type: text
-  - cacheTimeout: null
-    content: |+
-      '<h2 style="text-align: center;"></p>'
-      ''
-      ''
-    gridPos:
-      h: 4
-      w: 3
-      x: 19
-      'y': 40
-    id: 80
-    links: []
-    mode: html
-    options: {}
-    pluginVersion: 6.3.5
-    targets:
-      - expr: ''
-        instant: true
-        refId: A
-    timeFrom: null
-    timeShift: null
-    title: ''
-    transparent: true
-    type: text
-refresh: 30s
-schemaVersion: 19
-style: dark
-tags: []
-templating:
-  list:
-    - current:
-        text: No data sources found
-        value: ''
-      hide: 2
-      includeAll: false
-      label: ''
-      multi: false
-      name: datasource
-      options: []
-      query: prometheus
-      refresh: 1
-      regex: /$ds/
-      skipUrlSync: false
-      type: datasource
-time:
-  from: now-15m
-  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: browser
-title: OSM Status Summary
-uid: 4XuPd2Ii1
-version: 2
index 2d982d1..d61873c 100755 (executable)
@@ -101,11 +101,11 @@ class GrafanaCharm(CharmedOsmBase):
         )
         if config.osm_dashboards:
             osm_dashboards_mapping = {
-                "kafka_exporter_dashboard.yaml": "files/kafka_exporter_dashboard.yaml",
-                "mongodb_exporter_dashboard.yaml": "files/mongodb_exporter_dashboard.yaml",
-                "mysql_exporter_dashboard.yaml": "files/mysql_exporter_dashboard.yaml",
-                "nodes_exporter_dashboard.yaml": "files/nodes_exporter_dashboard.yaml",
-                "summary_dashboard.yaml": "files/summary_dashboard.yaml",
+                "kafka_exporter_dashboard.json": "files/kafka_exporter_dashboard.json",
+                "mongodb_exporter_dashboard.json": "files/mongodb_exporter_dashboard.json",
+                "mysql_exporter_dashboard.json": "files/mysql_exporter_dashboard.json",
+                "nodes_exporter_dashboard.json": "files/nodes_exporter_dashboard.json",
+                "summary_dashboard.json": "files/summary_dashboard.json",
             }
             for file_name, path in osm_dashboards_mapping.items():
                 files_builder.add_file(file_name, Path(path).read_text())
index 1701df0..609c466 100644 (file)
@@ -248,26 +248,26 @@ def _make_pod_files(
         dashboards.extend(
             [
                 {
-                    "path": "kafka_exporter_dashboard.yaml",
-                    "content": Path("files/kafka_exporter_dashboard.yaml").read_text(),
+                    "path": "kafka_exporter_dashboard.json",
+                    "content": Path("files/kafka_exporter_dashboard.json").read_text(),
                 },
                 {
-                    "path": "mongodb_exporter_dashboard.yaml",
+                    "path": "mongodb_exporter_dashboard.json",
                     "content": Path(
-                        "files/mongodb_exporter_dashboard.yaml"
+                        "files/mongodb_exporter_dashboard.json"
                     ).read_text(),
                 },
                 {
-                    "path": "mysql_exporter_dashboard.yaml",
-                    "content": Path("files/mysql_exporter_dashboard.yaml").read_text(),
+                    "path": "mysql_exporter_dashboard.json",
+                    "content": Path("files/mysql_exporter_dashboard.json").read_text(),
                 },
                 {
-                    "path": "nodes_exporter_dashboard.yaml",
-                    "content": Path("files/nodes_exporter_dashboard.yaml").read_text(),
+                    "path": "nodes_exporter_dashboard.json",
+                    "content": Path("files/nodes_exporter_dashboard.json").read_text(),
                 },
                 {
-                    "path": "summary_dashboard.yaml",
-                    "content": Path("files/summary_dashboard.yaml").read_text(),
+                    "path": "summary_dashboard.json",
+                    "content": Path("files/summary_dashboard.json").read_text(),
                 },
             ]
         )
index a1b128a..c6c64c2 100644 (file)
   "editable": true,
   "gnetId": 2583,
   "graphTooltip": 1,
-  "id": 9,
-  "iteration": 1577555358996,
+  "id": 1,
+  "iteration": 1615141074039,
   "links": [],
   "panels": [
     {
       "collapsed": false,
+      "datasource": null,
       "gridPos": {
         "h": 1,
         "w": 24,
       ],
       "datasource": "prometheus - Juju generated source",
       "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
       "format": "s",
       "gauge": {
         "maxValue": 100,
@@ -76,7 +83,6 @@
       "maxDataPoints": 100,
       "nullPointMode": "connected",
       "nullText": null,
-      "options": {},
       "postfix": "",
       "postfixFontSize": "50%",
       "prefix": "",
       "tableColumn": "",
       "targets": [
         {
-          "expr": "mongodb_instance_uptime_seconds{instance=~\"$instance\"}",
+          "expr": "mongodb_ss_uptime{}",
           "format": "time_series",
+          "interval": "",
           "intervalFactor": 2,
           "legendFormat": "",
           "refId": "A",
         "rgba(50, 172, 45, 0.97)"
       ],
       "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
       "format": "none",
       "gauge": {
         "maxValue": 100,
       "maxDataPoints": 100,
       "nullPointMode": "connected",
       "nullText": null,
-      "options": {},
       "postfix": "",
       "postfixFontSize": "50%",
       "prefix": "",
       "tableColumn": "",
       "targets": [
         {
-          "expr": "mongodb_connections{instance=~\"$instance\",state=\"current\"}",
+          "expr": "mongodb_ss_connections{conn_type=\"current\"}",
           "format": "time_series",
+          "interval": "",
           "intervalFactor": 2,
           "legendFormat": "",
           "metric": "mongodb_connections",
     },
     {
       "collapsed": false,
+      "datasource": null,
       "gridPos": {
         "h": 1,
         "w": 24,
       "dashLength": 10,
       "dashes": false,
       "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
       "fill": 1,
       "fillGradient": 0,
       "gridPos": {
         "x": 0,
         "y": 6
       },
+      "hiddenSeries": false,
       "id": 7,
       "legend": {
         "avg": false,
       "links": [],
       "nullPointMode": "null",
       "options": {
-        "dataLinks": []
+        "alertThreshold": true
       },
       "percentage": false,
+      "pluginVersion": "7.4.3",
       "pointradius": 5,
       "points": false,
       "renderer": "flot",
       "steppedLine": false,
       "targets": [
         {
-          "expr": "rate(mongodb_op_counters_total{instance=~\"$instance\"}[$interval])",
+          "expr": "rate(mongodb_ss_opcounters[$interval])",
           "format": "time_series",
           "interval": "",
           "intervalFactor": 2,
-          "legendFormat": "{{type}}",
+          "legendFormat": "{{legacy_op_type}}",
           "refId": "A",
           "step": 240
         }
       },
       "yaxes": [
         {
+          "$$hashKey": "object:670",
           "format": "ops",
           "label": null,
           "logBase": 1,
           "show": true
         },
         {
+          "$$hashKey": "object:671",
           "format": "short",
           "label": null,
           "logBase": 1,
       "dashLength": 10,
       "dashes": false,
       "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
       "fill": 1,
       "fillGradient": 0,
       "gridPos": {
         "x": 10,
         "y": 6
       },
+      "hiddenSeries": false,
       "id": 9,
       "legend": {
         "avg": false,
       "links": [],
       "nullPointMode": "null",
       "options": {
-        "dataLinks": []
+        "alertThreshold": true
       },
       "percentage": false,
+      "pluginVersion": "7.4.3",
       "pointradius": 5,
       "points": false,
       "renderer": "flot",
       "steppedLine": false,
       "targets": [
         {
-          "expr": "rate(mongodb_mongod_metrics_document_total{instance=~\"$instance\"}[$interval])",
+          "expr": "rate(mongodb_ss_metrics_document[$interval])",
           "format": "time_series",
           "interval": "",
           "intervalFactor": 2,
-          "legendFormat": "{{state}}",
+          "legendFormat": "{{doc_op_type}}",
           "refId": "A",
           "step": 240
         }
       },
       "yaxes": [
         {
+          "$$hashKey": "object:699",
           "format": "short",
           "label": null,
           "logBase": 1,
           "show": true
         },
         {
+          "$$hashKey": "object:700",
           "format": "short",
           "label": null,
           "logBase": 1,
       "dashLength": 10,
       "dashes": false,
       "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
       "fill": 1,
       "fillGradient": 0,
       "gridPos": {
         "x": 18,
         "y": 6
       },
+      "hiddenSeries": false,
       "id": 8,
       "legend": {
         "avg": false,
       "links": [],
       "nullPointMode": "null",
       "options": {
-        "dataLinks": []
+        "alertThreshold": true
       },
       "percentage": false,
+      "pluginVersion": "7.4.3",
       "pointradius": 5,
       "points": false,
       "renderer": "flot",
       "steppedLine": false,
       "targets": [
         {
-          "expr": "rate(mongodb_mongod_metrics_query_executor_total{instance=~\"$instance\"}[$interval])",
+          "expr": "rate(mongodb_ss_opcounters[$interval])",
           "format": "time_series",
           "interval": "",
           "intervalFactor": 2,
-          "legendFormat": "{{state}}",
+          "legendFormat": "{{legacy_op_type}}",
           "refId": "A",
           "step": 600
         }
       },
       "yaxes": [
         {
+          "$$hashKey": "object:728",
           "format": "short",
           "label": null,
           "logBase": 1,
           "show": true
         },
         {
+          "$$hashKey": "object:729",
           "format": "short",
           "label": null,
           "logBase": 1,
     },
     {
       "collapsed": false,
+      "datasource": null,
       "gridPos": {
         "h": 1,
         "w": 24,
       "dashLength": 10,
       "dashes": false,
       "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
       "fill": 1,
       "fillGradient": 0,
       "gridPos": {
         "x": 0,
         "y": 13
       },
+      "hiddenSeries": false,
       "id": 4,
       "legend": {
         "alignAsTable": false,
       "links": [],
       "nullPointMode": "null",
       "options": {
-        "dataLinks": []
+        "alertThreshold": true
       },
       "percentage": false,
+      "pluginVersion": "7.4.3",
       "pointradius": 5,
       "points": false,
       "renderer": "flot",
       "steppedLine": false,
       "targets": [
         {
-          "expr": "mongodb_memory{instance=~\"$instance\",type=~\"resident|virtual\"}",
+          "expr": "mongodb_ss_mem_resident",
           "format": "time_series",
           "interval": "",
           "intervalFactor": 2,
-          "legendFormat": "{{type}}",
+          "legendFormat": "Resident",
           "refId": "A",
           "step": 240
+        },
+        {
+          "expr": "mongodb_ss_mem_virtual",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Virtual",
+          "refId": "B"
         }
       ],
       "thresholds": [],
       },
       "yaxes": [
         {
+          "$$hashKey": "object:523",
           "format": "decmbytes",
-          "label": "MB",
+          "label": "",
           "logBase": 1,
           "max": null,
           "min": null,
           "show": true
         },
         {
+          "$$hashKey": "object:524",
           "format": "short",
           "label": null,
           "logBase": 1,
       "dashLength": 10,
       "dashes": false,
       "datasource": "prometheus - Juju generated source",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
       "fill": 1,
       "fillGradient": 0,
       "gridPos": {
         "x": 12,
         "y": 13
       },
+      "hiddenSeries": false,
       "id": 5,
       "legend": {
         "avg": false,
       "links": [],
       "nullPointMode": "null",
       "options": {
-        "dataLinks": []
+        "alertThreshold": true
       },
       "percentage": false,
+      "pluginVersion": "7.4.3",
       "pointradius": 5,
       "points": false,
       "renderer": "flot",
       "steppedLine": false,
       "targets": [
         {
-          "expr": "rate(mongodb_network_bytes_total{instance=~\"$instance\"}[$interval])",
+          "expr": "rate(mongodb_ss_network_bytesOut[$interval])",
           "format": "time_series",
           "interval": "",
           "intervalFactor": 2,
-          "legendFormat": "{{state}}",
+          "legendFormat": "Out",
           "metric": "mongodb_metrics_operation_total",
           "refId": "A",
           "step": 240
+        },
+        {
+          "expr": "rate(mongodb_ss_network_bytesIn[$interval])",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "In",
+          "refId": "B"
         }
       ],
       "thresholds": [],
       },
       "yaxes": [
         {
+          "$$hashKey": "object:579",
           "format": "decbytes",
           "label": null,
           "logBase": 1,
           "show": true
         },
         {
+          "$$hashKey": "object:580",
           "format": "short",
           "label": null,
           "logBase": 1,
     }
   ],
   "refresh": "5s",
-  "schemaVersion": 19,
+  "schemaVersion": 27,
   "style": "dark",
   "tags": [],
   "templating": {
       {
         "allValue": null,
         "current": {
-          "text": "All",
-          "value": "$__all"
+          "selected": true,
+          "text": [
+            "All"
+          ],
+          "value": [
+            "$__all"
+          ]
         },
         "datasource": "prometheus - Juju generated source",
         "definition": "",
+        "description": null,
+        "error": null,
         "hide": 0,
         "includeAll": true,
         "label": "instance",
         "multi": true,
         "name": "instance",
         "options": [],
-        "query": "label_values(mongodb_connections, instance)",
+        "query": {
+          "query": "label_values(mongodb_connections, instance)",
+          "refId": "prometheus - Juju generated source-instance-Variable-Query"
+        },
         "refresh": 1,
         "regex": "",
         "skipUrlSync": false,
         "auto_count": 30,
         "auto_min": "10s",
         "current": {
+          "selected": false,
           "text": "auto",
           "value": "$__auto_interval_interval"
         },
+        "description": null,
+        "error": null,
         "hide": 0,
         "label": null,
         "name": "interval",
   "timezone": "browser",
   "title": "MongoDB",
   "uid": "HEK4NbtZk",
-  "version": 2
-}
+  "version": 17
+}
\ No newline at end of file