AETHER-513 Add grafana-aether Helm chart
Change-Id: I54b208bbbc981d2bff252ce9586d716dafb053cc
diff --git a/monitoring/grafana-aether/.helmignore b/monitoring/grafana-aether/.helmignore
new file mode 100644
index 0000000..17fdbc0
--- /dev/null
+++ b/monitoring/grafana-aether/.helmignore
@@ -0,0 +1,26 @@
+# Copyright 2020-present Open Networking Foundation
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/monitoring/grafana-aether/Chart.yaml b/monitoring/grafana-aether/Chart.yaml
new file mode 100644
index 0000000..8972a7e
--- /dev/null
+++ b/monitoring/grafana-aether/Chart.yaml
@@ -0,0 +1,17 @@
+# Copyright 2020-present Open Networking Foundation
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+apiVersion: v2
+name: grafana-aether
+description: A Helm chart for deploying Grafana with Aether dashboards
+
+type: application
+
+version: 0.1.0
+
+appVersion: 0.1.0
+
+dependencies:
+ - name: grafana
+ version: 5.5.0
+ repository: https://kubernetes-charts.storage.googleapis.com/
diff --git a/monitoring/grafana-aether/dashboards/global-edge-status.json b/monitoring/grafana-aether/dashboards/global-edge-status.json
new file mode 100644
index 0000000..ff41006
--- /dev/null
+++ b/monitoring/grafana-aether/dashboards/global-edge-status.json
@@ -0,0 +1,1044 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "$$hashKey": "object:45",
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 0,
+ "iteration": 1596132584907,
+ "links": [],
+ "panels": [
+ {
+ "datasource": null,
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [
+ {
+ "from": "",
+ "id": 1,
+ "operator": "",
+ "text": "error",
+ "to": "",
+ "type": 1,
+ "value": "-1"
+ },
+ {
+ "from": "",
+ "id": 2,
+ "operator": "",
+ "text": "disconnected",
+ "to": "",
+ "type": 1,
+ "value": "0"
+ },
+ {
+ "from": "",
+ "id": 3,
+ "operator": "",
+ "text": "connecting",
+ "to": "",
+ "type": 1,
+ "value": "1"
+ },
+ {
+ "from": "",
+ "id": 4,
+ "operator": "",
+ "text": "connected",
+ "to": "",
+ "type": 1,
+ "value": "2"
+ },
+ {
+ "from": "",
+ "id": 5,
+ "operator": "",
+ "text": "no result",
+ "to": "",
+ "type": 1,
+ "value": "-2"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 1
+ },
+ {
+ "color": "green",
+ "value": 2
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 0,
+ "y": 0
+ },
+ "id": 4,
+ "maxPerRow": 3,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "last"
+ ],
+ "fields": "",
+ "values": false
+ }
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": "edge",
+ "repeatDirection": "h",
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:141",
+ "selected": false,
+ "text": "production-edge-intel",
+ "value": "production-edge-intel"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(aetheredge_status_control_plane{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "Control Plane",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(aetheredge_status_user_plane{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "User Plane",
+ "refId": "B"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Status: $edge",
+ "type": "stat"
+ },
+ {
+ "datasource": null,
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [
+ {
+ "from": "",
+ "id": 1,
+ "operator": "",
+ "text": "error",
+ "to": "",
+ "type": 1,
+ "value": "-1"
+ },
+ {
+ "from": "",
+ "id": 2,
+ "operator": "",
+ "text": "disconnected",
+ "to": "",
+ "type": 1,
+ "value": "0"
+ },
+ {
+ "from": "",
+ "id": 3,
+ "operator": "",
+ "text": "connecting",
+ "to": "",
+ "type": 1,
+ "value": "1"
+ },
+ {
+ "from": "",
+ "id": 4,
+ "operator": "",
+ "text": "connected",
+ "to": "",
+ "type": 1,
+ "value": "2"
+ },
+ {
+ "from": "",
+ "id": 5,
+ "operator": "",
+ "text": "no result",
+ "to": "",
+ "type": 1,
+ "value": "-2"
+ },
+ {
+ "from": "",
+ "id": 6,
+ "operator": "",
+ "text": "no result",
+ "to": "",
+ "type": 1,
+ "value": ""
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 1
+ },
+ {
+ "color": "green",
+ "value": 2
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 8,
+ "y": 0
+ },
+ "id": 22,
+ "maxPerRow": 3,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ }
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": null,
+ "repeatDirection": "h",
+ "repeatIteration": 1596132584907,
+ "repeatPanelId": 4,
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:142",
+ "selected": false,
+ "text": "production-edge-onf-menlo",
+ "value": "production-edge-onf-menlo"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(aetheredge_status_control_plane{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "Control Plane",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(aetheredge_status_user_plane{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "User Plane",
+ "refId": "B"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Status: $edge",
+ "type": "stat"
+ },
+ {
+ "datasource": null,
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [
+ {
+ "from": "",
+ "id": 1,
+ "operator": "",
+ "text": "error",
+ "to": "",
+ "type": 1,
+ "value": "-1"
+ },
+ {
+ "from": "",
+ "id": 2,
+ "operator": "",
+ "text": "disconnected",
+ "to": "",
+ "type": 1,
+ "value": "0"
+ },
+ {
+ "from": "",
+ "id": 3,
+ "operator": "",
+ "text": "connecting",
+ "to": "",
+ "type": 1,
+ "value": "1"
+ },
+ {
+ "from": "",
+ "id": 4,
+ "operator": "",
+ "text": "connected",
+ "to": "",
+ "type": 1,
+ "value": "2"
+ },
+ {
+ "from": "",
+ "id": 5,
+ "operator": "",
+ "text": "no result",
+ "to": "",
+ "type": 1,
+ "value": "-2"
+ },
+ {
+ "from": "",
+ "id": 6,
+ "operator": "",
+ "text": "no result",
+ "to": "",
+ "type": 1,
+ "value": ""
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 1
+ },
+ {
+ "color": "green",
+ "value": 2
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 16,
+ "y": 0
+ },
+ "id": 23,
+ "maxPerRow": 3,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ }
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": null,
+ "repeatDirection": "h",
+ "repeatIteration": 1596132584907,
+ "repeatPanelId": 4,
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:143",
+ "selected": false,
+ "text": "production-edge-onf-tucson",
+ "value": "production-edge-onf-tucson"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(aetheredge_status_control_plane{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "Control Plane",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(aetheredge_status_user_plane{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "User Plane",
+ "refId": "B"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Status: $edge",
+ "type": "stat"
+ },
+ {
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 50
+ },
+ {
+ "color": "green",
+ "value": 95
+ }
+ ]
+ },
+ "unit": "percent"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 0,
+ "y": 4
+ },
+ "id": 5,
+ "maxPerRow": 3,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ }
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": "edge",
+ "repeatDirection": "h",
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:141",
+ "selected": false,
+ "text": "production-edge-intel",
+ "value": "production-edge-intel"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(clamp_min(aetheredge_status_control_plane{name=\"$edge\"} - 1, 0) * 100)",
+ "interval": "",
+ "legendFormat": "Control Plane",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(clamp_min(aetheredge_status_user_plane{name=\"$edge\"} - 1, 0) * 100)",
+ "interval": "",
+ "legendFormat": "User Plane",
+ "refId": "B"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Uptime: $edge",
+ "transformations": [],
+ "type": "stat"
+ },
+ {
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 50
+ },
+ {
+ "color": "green",
+ "value": 95
+ }
+ ]
+ },
+ "unit": "percent"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 8,
+ "y": 4
+ },
+ "id": 24,
+ "maxPerRow": 3,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ }
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": null,
+ "repeatDirection": "h",
+ "repeatIteration": 1596132584907,
+ "repeatPanelId": 5,
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:142",
+ "selected": false,
+ "text": "production-edge-onf-menlo",
+ "value": "production-edge-onf-menlo"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(clamp_min(aetheredge_status_control_plane{name=\"$edge\"} - 1, 0) * 100)",
+ "interval": "",
+ "legendFormat": "Control Plane",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(clamp_min(aetheredge_status_user_plane{name=\"$edge\"} - 1, 0) * 100)",
+ "interval": "",
+ "legendFormat": "User Plane",
+ "refId": "B"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Uptime: $edge",
+ "type": "stat"
+ },
+ {
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 50
+ },
+ {
+ "color": "green",
+ "value": 95
+ }
+ ]
+ },
+ "unit": "percent"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 8,
+ "x": 16,
+ "y": 4
+ },
+ "id": 25,
+ "maxPerRow": 3,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ }
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": null,
+ "repeatDirection": "h",
+ "repeatIteration": 1596132584907,
+ "repeatPanelId": 5,
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:143",
+ "selected": false,
+ "text": "production-edge-onf-tucson",
+ "value": "production-edge-onf-tucson"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(clamp_min(aetheredge_status_control_plane{name=\"$edge\"} - 1, 0) * 100)",
+ "interval": "",
+ "legendFormat": "Control Plane",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(clamp_min(aetheredge_status_user_plane{name=\"$edge\"} - 1, 0) * 100)",
+ "interval": "",
+ "legendFormat": "User Plane",
+ "refId": "B"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Uptime: $edge",
+ "type": "stat"
+ },
+ {
+ "datasource": "RANCHER_MONITORING_GLOBAL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [],
+ "max": 1000,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 750
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 8,
+ "x": 0,
+ "y": 8
+ },
+ "id": 13,
+ "maxPerRow": 3,
+ "options": {
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "last"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showThresholdLabels": false,
+ "showThresholdMarkers": true
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": "edge",
+ "repeatDirection": "h",
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:141",
+ "selected": false,
+ "text": "production-edge-intel",
+ "value": "production-edge-intel"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(time() - aetheredge_last_update{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "{{name}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Seconds since last update",
+ "type": "gauge"
+ },
+ {
+ "datasource": "RANCHER_MONITORING_GLOBAL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [],
+ "max": 1000,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 750
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 8,
+ "x": 8,
+ "y": 8
+ },
+ "id": 26,
+ "maxPerRow": 3,
+ "options": {
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "last"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showThresholdLabels": false,
+ "showThresholdMarkers": true
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": null,
+ "repeatDirection": "h",
+ "repeatIteration": 1596132584907,
+ "repeatPanelId": 13,
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:142",
+ "selected": false,
+ "text": "production-edge-onf-menlo",
+ "value": "production-edge-onf-menlo"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(time() - aetheredge_last_update{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "{{name}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Seconds since last update",
+ "type": "gauge"
+ },
+ {
+ "datasource": "RANCHER_MONITORING_GLOBAL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [],
+ "max": 1000,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 750
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 8,
+ "x": 16,
+ "y": 8
+ },
+ "id": 27,
+ "maxPerRow": 3,
+ "options": {
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "last"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showThresholdLabels": false,
+ "showThresholdMarkers": true
+ },
+ "pluginVersion": "7.0.5",
+ "repeat": null,
+ "repeatDirection": "h",
+ "repeatIteration": 1596132584907,
+ "repeatPanelId": 13,
+ "scopedVars": {
+ "edge": {
+ "$$hashKey": "object:143",
+ "selected": false,
+ "text": "production-edge-onf-tucson",
+ "value": "production-edge-onf-tucson"
+ }
+ },
+ "targets": [
+ {
+ "expr": "sum(time() - aetheredge_last_update{name=\"$edge\"})",
+ "interval": "",
+ "legendFormat": "{{name}}",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Seconds since last update",
+ "type": "gauge"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "RANCHER_MONITORING_GLOBAL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 5,
+ "w": 24,
+ "x": 0,
+ "y": 14
+ },
+ "hiddenSeries": false,
+ "id": 21,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "maxPerRow": 3,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "repeatDirection": "h",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(time() - aetheredge_last_update) by (name)",
+ "interval": "",
+ "legendFormat": "{{name}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Seconds since last update",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:457",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "$$hashKey": "object:458",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": "30s",
+ "schemaVersion": 25,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "selected": true,
+ "tags": [],
+ "text": "All",
+ "value": [
+ "$__all"
+ ]
+ },
+ "datasource": "RANCHER_MONITORING_GLOBAL",
+ "definition": "aetheredge_status_control_plane",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Edge",
+ "multi": true,
+ "name": "edge",
+ "options": [
+ {
+ "$$hashKey": "object:140",
+ "selected": true,
+ "text": "All",
+ "value": "$__all"
+ },
+ {
+ "$$hashKey": "object:141",
+ "selected": false,
+ "text": "production-edge-intel",
+ "value": "production-edge-intel"
+ },
+ {
+ "$$hashKey": "object:142",
+ "selected": false,
+ "text": "production-edge-onf-menlo",
+ "value": "production-edge-onf-menlo"
+ },
+ {
+ "$$hashKey": "object:143",
+ "selected": false,
+ "text": "production-edge-onf-tucson",
+ "value": "production-edge-onf-tucson"
+ }
+ ],
+ "query": "aetheredge_status_control_plane",
+ "refresh": 0,
+ "regex": "/.*,name=\"(.*)\",namespace.*/",
+ "skipUrlSync": false,
+ "sort": 1,
+ "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"
+ ]
+ },
+ "timezone": "",
+ "title": "Aether Connected Edge",
+ "uid": "AIKTPZVMk",
+ "version": 1
+}
\ No newline at end of file
diff --git a/monitoring/grafana-aether/dashboards/global-edge-status.json.license b/monitoring/grafana-aether/dashboards/global-edge-status.json.license
new file mode 100644
index 0000000..c522327
--- /dev/null
+++ b/monitoring/grafana-aether/dashboards/global-edge-status.json.license
@@ -0,0 +1,2 @@
+Copyright 2020-present Open Networking Foundation
+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
diff --git a/monitoring/grafana-aether/templates/NOTES.txt b/monitoring/grafana-aether/templates/NOTES.txt
new file mode 100644
index 0000000..2c966b5
--- /dev/null
+++ b/monitoring/grafana-aether/templates/NOTES.txt
@@ -0,0 +1,10 @@
+{{/*
+Copyright 2020-present Open Networking Foundation
+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+*/}}
+
+Thank you for installing {{ .Chart.Name }}.
+
+Your release is named {{ .Release.Name }}.
+
+This chart deploys Grafana and ConfigMaps to configure custom Aether dashboards.
diff --git a/monitoring/grafana-aether/templates/_helpers.tpl b/monitoring/grafana-aether/templates/_helpers.tpl
new file mode 100644
index 0000000..4385f61
--- /dev/null
+++ b/monitoring/grafana-aether/templates/_helpers.tpl
@@ -0,0 +1,68 @@
+{{/*
+Copyright 2020-present Open Networking Foundation
+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "grafana-aether.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "grafana-aether.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "grafana-aether.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "grafana-aether.labels" -}}
+helm.sh/chart: {{ include "grafana-aether.chart" . }}
+{{ include "grafana-aether.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "grafana-aether.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "grafana-aether.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "grafana-aether.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "grafana-aether.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/monitoring/grafana-aether/templates/dashboard-configmap.yaml b/monitoring/grafana-aether/templates/dashboard-configmap.yaml
new file mode 100644
index 0000000..04ff167
--- /dev/null
+++ b/monitoring/grafana-aether/templates/dashboard-configmap.yaml
@@ -0,0 +1,13 @@
+# Copyright 2020-present Open Networking Foundation
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ .Release.Name }}-dashboards
+ labels:
+ grafana_dashboard: "1"
+data:
+{{ if .Values.globalStatusMonitorNamespace }}
+{{ (.Files.Glob "dashboards/global*.json").AsConfig | indent 2 }}
+{{ end }}
diff --git a/monitoring/grafana-aether/templates/datasource-configmap.yaml b/monitoring/grafana-aether/templates/datasource-configmap.yaml
new file mode 100644
index 0000000..da039de
--- /dev/null
+++ b/monitoring/grafana-aether/templates/datasource-configmap.yaml
@@ -0,0 +1,23 @@
+# Copyright 2020-present Open Networking Foundation
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ .Release.Name }}-datasource
+ labels:
+ grafana_datasource: "1"
+data:
+ datasources.yaml: |-
+ apiVersion: 1
+
+ datasources:
+{{ if .Values.globalStatusMonitorNamespace }}
+ - name: RANCHER_MONITORING_GLOBAL
+ type: prometheus
+ access: proxy
+ basicAuth: false
+ editable: false
+ isDefault: true
+ url: http://access-prometheus.{{.Values.globalStatusMonitorNamespace}}:80
+{{ end }}
diff --git a/monitoring/grafana-aether/values.yaml b/monitoring/grafana-aether/values.yaml
new file mode 100644
index 0000000..8d1af2a
--- /dev/null
+++ b/monitoring/grafana-aether/values.yaml
@@ -0,0 +1,23 @@
+# Copyright 2020-present Open Networking Foundation
+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+# Default values for grafana-aether.
+# This is a YAML-formatted file.
+# This chart loads Grafana and creates configmaps for the datasources and dashboards.
+
+nameOverride: ""
+fullnameOverride: ""
+
+# Project namespaces where Rancher's Prometheus lives.
+# Each dashboard may draw its data from a different Prometheus.
+globalStatusMonitorNamespace: ""
+
+grafana:
+ grafana.ini:
+ auth.anonymous:
+ enabled: true
+ sidecar:
+ dashboards:
+ enabled: true
+ datasources:
+ enabled: true