Added BNG dashboard, disabled by default
Also, added BNG topic and dashboard activation in seba-ponsim-sdbng.yaml values file.
Change-Id: Ic188e7504d97681f4a96bd7e68acd0de3d874cbd
diff --git a/configs/seba-ponsim-sdbng.yaml b/configs/seba-ponsim-sdbng.yaml
index 0bf332b..d1dd453 100644
--- a/configs/seba-ponsim-sdbng.yaml
+++ b/configs/seba-ponsim-sdbng.yaml
@@ -23,10 +23,24 @@
mininet:
repository: 'opencord/mn-stratum-siab'
tag: 'master'
+ kpi_exporter:
+ # TODO: remove then this docker container is released ((update the value definition in nem-monitoring)
+ repository: 'opencord/kafka-topic-exporter'
+ tag: 'latest'
# Select DT-Workflow
workflow: dt-workflow
+# Activate BNG dashboard
+kpi_exporter:
+ topics:
+ - voltha.kpis
+ - onos.kpis
+ - bng.stats
+dashboards:
+ bng: true
+ aaa: false
+
# In mininet chart
# FIXME: check if multicast is working
enableMulticast: false
diff --git a/nem-monitoring/Chart.yaml b/nem-monitoring/Chart.yaml
index 6c26076..ceecd2a 100644
--- a/nem-monitoring/Chart.yaml
+++ b/nem-monitoring/Chart.yaml
@@ -18,4 +18,4 @@
description: Time Series Storage and Dashboard for CORD
icon: https://guide.opencord.org/logos/cord.svg
-version: 1.3.2-dev
+version: 1.3.3-dev
diff --git a/nem-monitoring/grafana-dashboards/bng-dashboard.json b/nem-monitoring/grafana-dashboards/bng-dashboard.json
new file mode 100644
index 0000000..d90aa93
--- /dev/null
+++ b/nem-monitoring/grafana-dashboards/bng-dashboard.json
@@ -0,0 +1,603 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "$$hashKey": "object:467",
+ "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,
+ "id": 4,
+ "iteration": 1570580684209,
+ "links": [],
+ "panels": [
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 15,
+ "panels": [],
+ "repeat": "onuSerial",
+ "title": "ONU: $onuSerial",
+ "type": "row"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#b7dbab",
+ "#629e51",
+ "#d44a3a"
+ ],
+ "datasource": "Prometheus",
+ "format": "decmbytes",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 0,
+ "y": 1
+ },
+ "id": 33,
+ "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": "100%",
+ "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(delta(onosBngDownTxBytes{onu_serial=\"$onuSerial\"}[24h])) / 1024 / 1024",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "Downloaded",
+ "refId": "A"
+ },
+ {
+ "expr": "",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "B"
+ }
+ ],
+ "thresholds": "0",
+ "title": "Total Download (24h)",
+ "type": "singlestat",
+ "valueFontSize": "100%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Download": "#629e51",
+ "Upload": "#bf1b00"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 2,
+ "gridPos": {
+ "h": 10,
+ "w": 20,
+ "x": 4,
+ "y": 1
+ },
+ "hideTimeOverride": false,
+ "id": 26,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 3,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(delta(onosBngDownTxBytes{onu_serial=\"$onuSerial\"}[$TimeDeltaS])) * 8 / 1024 / 1024 / $TimeDelta",
+ "format": "time_series",
+ "hide": false,
+ "instant": false,
+ "interval": "1s",
+ "intervalFactor": 1,
+ "legendFormat": "Download",
+ "refId": "A"
+ },
+ {
+ "expr": "sum(delta(onosBngUpTxBytes{onu_serial=\"$onuSerial\"}[$TimeDeltaS])) * 8 / 1024 / 1024 / $TimeDelta",
+ "format": "time_series",
+ "instant": false,
+ "interval": "1s",
+ "intervalFactor": 1,
+ "legendFormat": "Upload",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "User Plane (Mbit/s)",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "Mbits",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "#299c46",
+ "#bf1b00",
+ "#d44a3a"
+ ],
+ "datasource": null,
+ "format": "decmbytes",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 0,
+ "y": 6
+ },
+ "id": 41,
+ "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(delta(onosBngUpTxBytes{onu_serial=\"$onuSerial\"}[24h])) / 1024 / 1024",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "refId": "A"
+ }
+ ],
+ "thresholds": "0",
+ "title": "Total Upload (24h)",
+ "type": "singlestat",
+ "valueFontSize": "100%",
+ "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": null,
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 4,
+ "x": 0,
+ "y": 11
+ },
+ "id": 48,
+ "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": "count(delta(onosBngControlPackets{onu_serial=\"$onuSerial\"}[24h]))",
+ "format": "time_series",
+ "instant": true,
+ "intervalFactor": 1,
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "title": "Connection Count (24h)",
+ "type": "singlestat",
+ "valueFontSize": "100%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {
+ "Upstream Control Packets": "#65c5db"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 2,
+ "gridPos": {
+ "h": 6,
+ "w": 20,
+ "x": 4,
+ "y": 11
+ },
+ "id": 6,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": false,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 3,
+ "links": [],
+ "minSpan": 4,
+ "nullPointMode": "null",
+ "percentage": true,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "repeatDirection": "v",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(delta(onosBngControlPackets{onu_serial=\"$onuSerial\"}[$TimeDeltaS])) / $TimeDelta",
+ "format": "time_series",
+ "interval": "1s",
+ "intervalFactor": 1,
+ "legendFormat": "Upstream Control Packets",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Control Plane (PPPoE control pkt/s)",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "pps",
+ "label": null,
+ "logBase": 1,
+ "max": "0.5",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "refresh": "15s",
+ "schemaVersion": 16,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "text": "All",
+ "value": "$__all"
+ },
+ "datasource": "Prometheus",
+ "hide": 0,
+ "includeAll": true,
+ "label": "ONU Serial",
+ "multi": true,
+ "name": "onuSerial",
+ "options": [],
+ "query": "label_values(onosBngControlPackets, onu_serial)",
+ "refresh": 2,
+ "regex": "",
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "selected": true,
+ "text": "30",
+ "value": "30"
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": true,
+ "name": "TimeDelta",
+ "options": [
+ {
+ "selected": true,
+ "text": "30",
+ "value": "30"
+ },
+ {
+ "selected": false,
+ "text": "20",
+ "value": "20"
+ },
+ {
+ "selected": false,
+ "text": "10",
+ "value": "10"
+ }
+ ],
+ "query": "30, 20, 10",
+ "type": "custom"
+ },
+ {
+ "allValue": null,
+ "current": {
+ "selected": true,
+ "text": "30s",
+ "value": "30s"
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": null,
+ "multi": true,
+ "name": "TimeDeltaS",
+ "options": [
+ {
+ "selected": true,
+ "text": "30s",
+ "value": "30s"
+ },
+ {
+ "selected": false,
+ "text": "20s",
+ "value": "20s"
+ },
+ {
+ "selected": false,
+ "text": "10s",
+ "value": "10s"
+ }
+ ],
+ "query": "30s, 20s, 10s",
+ "type": "custom"
+ }
+ ]
+ },
+ "time": {
+ "from": "now-15m",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "1s",
+ "5s",
+ "15s",
+ "30s",
+ "1m"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "BNG Accounting Dashboard",
+ "uid": "i5ZrLw2Wz",
+ "version": 1
+}
\ No newline at end of file
diff --git a/nem-monitoring/templates/grafana-dashboard-configmap.yaml b/nem-monitoring/templates/grafana-dashboard-configmap.yaml
index 9d7c0e2..15d89fa 100644
--- a/nem-monitoring/templates/grafana-dashboard-configmap.yaml
+++ b/nem-monitoring/templates/grafana-dashboard-configmap.yaml
@@ -68,3 +68,7 @@
aether-edge-pods.json: |
{{ .Files.Get "grafana-dashboards/aether-edge-pods.json" | indent 4 }}
{{- end }}
+{{- if .Values.dashboards.bng }}
+ bng-dashboard.json: |
+{{ .Files.Get "grafana-dashboards/bng-dashboard.json" | indent 4 }}
+{{- end }}
diff --git a/nem-monitoring/values.yaml b/nem-monitoring/values.yaml
index d7236e8..5b5a6c3 100644
--- a/nem-monitoring/values.yaml
+++ b/nem-monitoring/values.yaml
@@ -104,3 +104,4 @@
aetherEdges: false
aetherCentralPods: false
aetherEdgePods: false
+ bng: false