diff --git a/CHANGELOG.md b/CHANGELOG.md index e333b65..8b75789 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # CHANGELOG -## October 20 2020 - v1.4 (Beta) +## Octobre 21 2020 - v1.4 (Beta) +* Improved Kubernetes documentation. +* Improved main documentation. +* Updated Grafana deployment to use a `PersistentVolume`. +* Updated Dashboard to reflect real ISP latencies. * Created initial Kubernetes YAML files. * Updated documentation. diff --git a/kubernetes/ISP-Checker-deploy.yaml b/kubernetes/ISP-Checker-deploy.yaml index 473f45d..da84029 100644 --- a/kubernetes/ISP-Checker-deploy.yaml +++ b/kubernetes/ISP-Checker-deploy.yaml @@ -4,63 +4,6 @@ metadata: name: monitoring --- apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - namespace: monitoring - labels: - app: influxdb - name: influxdb-pvc -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 5Gi - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: monitoring - name: isp-checker-secrets-rw -type: Opaque -stringData: - INFLUXDB_DB: telegraf - INFLUXDB_ADMIN_USER: admin - INFLUXDB_ADMIN_PASSWORD: VerySecurePassword - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: monitoring - name: isp-checker-secrets-ro -type: Opaque -stringData: - INFLUXDB_DB: telegraf - INFLUXDB_READ_USER: grafana - INFLUXDB_READ_PASSWORD: VerySecurePassword - ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: monitoring - name: grafana-datasource -stringData: - datasource.yaml: |- - datasources: - - name: InfluxDB - type: influxdb - access: proxy - orgId: 1 - url: http://influxdb-svc.monitoring.svc.cluster.local:8086/ - user: grafana - database: telegraf - isDefault: true - editable: true ---- -apiVersion: v1 kind: ConfigMap metadata: namespace: monitoring @@ -207,6 +150,97 @@ data: csv_timestamp_format = "2006-01-02T15:04:05Z07:00" --- apiVersion: v1 +kind: Secret +metadata: + namespace: monitoring + name: isp-checker-secrets-rw +type: Opaque +stringData: + INFLUXDB_DB: telegraf + INFLUXDB_ADMIN_USER: admin + INFLUXDB_ADMIN_PASSWORD: VerySecurePassword + +--- +apiVersion: v1 +kind: Secret +metadata: + namespace: monitoring + name: isp-checker-secrets-ro +type: Opaque +stringData: + INFLUXDB_DB: telegraf + INFLUXDB_READ_USER: grafana + INFLUXDB_READ_PASSWORD: VerySecurePassword + +--- +apiVersion: v1 +kind: Secret +metadata: + namespace: monitoring + name: grafana-datasource +stringData: + datasource.yaml: |- + datasources: + - name: InfluxDB + type: influxdb + access: proxy + orgId: 1 + url: http://influxdb-svc.monitoring.svc.cluster.local:8086/ + user: grafana + database: telegraf + isDefault: true + editable: true +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + namespace: monitoring + labels: + app: influxdb + name: influxdb-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + namespace: monitoring + labels: + app: grafana + name: grafana-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: influxdb + name: influxdb-svc + namespace: monitoring +spec: + clusterIP: 10.43.37.100 + ports: + - port: 8086 + protocol: TCP + targetPort: 8086 + selector: + app: influxdb + sessionAffinity: None + type: ClusterIP + +--- +apiVersion: v1 kind: ConfigMap metadata: namespace: monitoring @@ -214,72 +248,6 @@ metadata: data: network-dashboard.json: |- { - "__inputs": [ - { - "name": "InfluxDB", - "label": "InfluxDB", - "description": "", - "type": "datasource", - "pluginId": "influxdb", - "pluginName": "InfluxDB" - } - ], - "__requires": [ - { - "type": "panel", - "id": "bargauge", - "name": "Bar gauge", - "version": "" - }, - { - "type": "panel", - "id": "gauge", - "name": "Gauge", - "version": "" - }, - { - "type": "panel", - "id": "gowee-traceroutemap-panel", - "name": "Traceroute Map Panel", - "version": "0.2.3" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "7.2.1" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "" - }, - { - "type": "panel", - "id": "heatmap", - "name": "Heatmap", - "version": "" - }, - { - "type": "datasource", - "id": "influxdb", - "name": "InfluxDB", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - } - ], "annotations": { "list": [ { @@ -297,8 +265,7 @@ data: "editable": true, "gnetId": 13140, "graphTooltip": 0, - "id": null, - "iteration": 1602558532070, + "iteration": 1603250019777, "links": [], "panels": [ { @@ -307,7 +274,7 @@ data: "defaults": { "custom": {}, "mappings": [], - "max": 100, + "max": 300, "min": 0, "thresholds": { "mode": "absolute", @@ -322,39 +289,31 @@ data: }, { "color": "light-green", - "value": 10 + "value": 50 }, { "color": "semi-dark-green", - "value": 20 + "value": 100 }, { "color": "semi-dark-green", - "value": 30 - }, - { - "color": "super-light-orange", - "value": 40 + "value": 150 }, { "color": "light-orange", - "value": 50 - }, - { - "color": "semi-dark-orange", - "value": 60 + "value": 150 }, { - "color": "light-red", - "value": 70 + "color": "super-light-orange", + "value": 200 }, { - "color": "semi-dark-red", - "value": 80 + "color": "semi-dark-orange", + "value": 250 }, { "color": "dark-red", - "value": 90 + "value": 300 } ] }, @@ -1606,6 +1565,13 @@ data: }, "pluginVersion": "7.2.1", "repeat": "PingURL", + "scopedVars": { + "PingURL": { + "selected": false, + "text": "amazon.com", + "value": "amazon.com" + } + }, "targets": [ { "groupBy": [ @@ -1652,213 +1618,194 @@ data: "type": "gauge" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "InfluxDB", - "description": "HTTP GET request response time (ms)", "fieldConfig": { "defaults": { - "custom": {} + "custom": {}, + "decimals": 2, + "mappings": [], + "min": 0, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "super-light-green", + "value": null + }, + { + "color": "semi-dark-green", + "value": 150 + }, + { + "color": "dark-green", + "value": 200 + }, + { + "color": "#EAB839", + "value": 250 + }, + { + "color": "semi-dark-orange", + "value": 300 + }, + { + "color": "dark-red", + "value": 350 + } + ] + }, + "unit": "ms" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 47 + "h": 6, + "w": 6, + "x": 6, + "y": 41 }, - "hiddenSeries": false, - "id": 12, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 88, "options": { - "alertThreshold": true + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true }, - "percentage": false, "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "repeatIteration": 1603250019777, + "repeatPanelId": 42, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "google.com", + "value": "google.com" + } + }, "targets": [ { - "alias": "$tag_server", "groupBy": [ { "params": [ - "server" + "$__interval" ], - "type": "tag" + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" } ], - "measurement": "http_response", + "hide": false, "orderByTime": "ASC", "policy": "default", + "query": "SELECT mean(\"average_response_ms\") FROM \"ping\" WHERE (\"url\" =~ /^$PingURL$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "response_time" + "value" ], "type": "field" + }, + { + "params": [], + "type": "mean" } ] ], - "tags": [ - { - "key": "method", - "operator": "=", - "value": "GET" - } - ] - } - ], - "thresholds": [ - { - "$$hashKey": "object:1216", - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": 10, - "yaxis": "left" - }, - { - "$$hashKey": "object:1222", - "colorMode": "warning", - "fill": false, - "line": false, - "op": "gt", - "value": 5, - "yaxis": "left" - }, - { - "$$hashKey": "object:1228", - "colorMode": "ok", - "fill": true, - "line": true, - "op": "lt", - "value": 2, - "yaxis": "left" + "tags": [] } ], "timeFrom": null, - "timeRegions": [], "timeShift": null, - "title": "HTTP GET response time (ms)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": true, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:1019", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:1020", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "$PingURL Ping", + "type": "gauge" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "InfluxDB", "fieldConfig": { "defaults": { - "custom": {} + "custom": {}, + "decimals": 2, + "mappings": [], + "min": 0, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "super-light-green", + "value": null + }, + { + "color": "semi-dark-green", + "value": 150 + }, + { + "color": "dark-green", + "value": 200 + }, + { + "color": "#EAB839", + "value": 250 + }, + { + "color": "semi-dark-orange", + "value": 300 + }, + { + "color": "dark-red", + "value": 350 + } + ] + }, + "unit": "ms" }, "overrides": [] }, - "fill": 1, - "fillGradient": 1, "gridPos": { - "h": 18, - "w": 12, - "x": 0, - "y": 57 - }, - "hiddenSeries": false, - "id": 85, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": true, - "values": true + "h": 6, + "w": 6, + "x": 12, + "y": 41 }, - "lines": true, - "linewidth": 1, - "nullPointMode": "connected", + "id": 89, "options": { - "alertThreshold": true + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true }, - "percentage": false, "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "repeatIteration": 1603250019777, + "repeatPanelId": 42, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "twitter.com", + "value": "twitter.com" + } + }, "targets": [ { - "alias": "$col", "groupBy": [ { "params": [ @@ -1873,10 +1820,10 @@ data: "type": "fill" } ], - "measurement": "netstat", + "hide": false, "orderByTime": "ASC", "policy": "default", - "query": "SELECT mean(\"tcp_close\") AS \"tcp_close\", mean(\"tcp_close_wait\") AS \"tcp_close_wait\", mean(\"tcp_closing\") AS \"tcp_colsing\", mean(\"tcp_fin_wait1\") AS \"tcp_fin_wait1\", mean(\"tcp_fin_wait2\") AS \"tcp_fin_wait2\", mean(\"tcp_last_ack\") AS \"tcp_last_ack\", mean(\"tcp_syn_recv\") AS \"tcp_syn_recv\", mean(\"tcp_syn_sent\") AS \"tcp_syn_sent\", mean(\"tcp_listen\") AS \"tcp_listen\", mean(\"tcp_time_wait\") AS \"tcp_time_wait\", mean(\"udp_socket\") AS \"udp_socket\", mean(\"tcp_established\") AS \"tcp_established\" FROM \"netstat\" WHERE (\"host\" =~ /^$NetHost$/) AND $timeFilter GROUP BY time($interval) fill(null)", + "query": "SELECT mean(\"average_response_ms\") FROM \"ping\" WHERE (\"url\" =~ /^$PingURL$/) AND $timeFilter GROUP BY time($__interval) fill(null)", "rawQuery": true, "refId": "A", "resultFormat": "time_series", @@ -1884,116 +1831,168 @@ data: [ { "params": [ - "tcp_close" + "value" ], "type": "field" }, { "params": [], "type": "mean" - }, - { - "params": [ - "tcp_close" - ], - "type": "alias" } ] ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$NetHost$/" - } - ] + "tags": [] } ], - "thresholds": [], "timeFrom": null, - "timeRegions": [], "timeShift": null, - "title": "Netstat", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:2208", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:2209", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "$PingURL Ping", + "type": "gauge" }, { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, "datasource": "InfluxDB", "fieldConfig": { "defaults": { "custom": {}, + "decimals": 2, "mappings": [], + "min": 0, + "noValue": "N/A", "thresholds": { "mode": "absolute", "steps": [ { - "color": "green", + "color": "super-light-green", "value": null }, { - "color": "red", - "value": 80 + "color": "semi-dark-green", + "value": 150 + }, + { + "color": "dark-green", + "value": 200 + }, + { + "color": "#EAB839", + "value": 250 + }, + { + "color": "semi-dark-orange", + "value": 300 + }, + { + "color": "dark-red", + "value": 350 } ] - } + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 18, + "y": 41 + }, + "id": 90, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true + }, + "pluginVersion": "7.2.1", + "repeatIteration": 1603250019777, + "repeatPanelId": 42, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "yahoo.com", + "value": "yahoo.com" + } + }, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"average_response_ms\") FROM \"ping\" WHERE (\"url\" =~ /^$PingURL$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$PingURL Ping", + "type": "gauge" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "description": "HTTP GET request response time (ms)", + "fieldConfig": { + "defaults": { + "custom": {} }, "overrides": [] }, "fill": 0, "fillGradient": 0, "gridPos": { - "h": 18, - "w": 12, - "x": 12, - "y": 57 + "h": 10, + "w": 24, + "x": 0, + "y": 47 }, "hiddenSeries": false, - "id": 16, + "id": 12, "legend": { "alignAsTable": true, "avg": false, "current": true, "hideEmpty": true, - "hideZero": true, "max": false, "min": false, "rightSide": true, @@ -2001,11 +2000,11 @@ data: "total": false, "values": true }, - "lines": false, + "lines": true, "linewidth": 1, - "nullPointMode": "null as zero", + "nullPointMode": "null", "options": { - "alertThreshold": false + "alertThreshold": true }, "percentage": false, "pluginVersion": "7.2.1", @@ -2018,16 +2017,16 @@ data: "steppedLine": false, "targets": [ { - "alias": "Tx (Bytes)", + "alias": "$tag_server", "groupBy": [ { "params": [ - "1m" + "server" ], - "type": "time" + "type": "tag" } ], - "measurement": "net", + "measurement": "http_response", "orderByTime": "ASC", "policy": "default", "refId": "A", @@ -2036,288 +2035,80 @@ data: [ { "params": [ - "bytes_sent" + "response_time" ], "type": "field" - }, - { - "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" } ] ], "tags": [ { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" + "key": "method", + "operator": "=", + "value": "GET" } ] + } + ], + "thresholds": [ + { + "$$hashKey": "object:1216", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 10, + "yaxis": "left" }, { - "alias": "Rx (Bytes)", - "groupBy": [ - { - "params": [ - "1m" - ], - "type": "time" - } - ], - "measurement": "net", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "bytes_recv" - ], - "type": "field" - }, - { - "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] + "$$hashKey": "object:1222", + "colorMode": "warning", + "fill": false, + "line": false, + "op": "gt", + "value": 5, + "yaxis": "left" }, { - "alias": "Drop In", - "groupBy": [ - { - "params": [ - "1m" - ], - "type": "time" - } - ], - "measurement": "net", - "orderByTime": "ASC", - "policy": "default", - "refId": "C", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "drop_in" - ], - "type": "field" - }, - { - "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] - }, - { - "alias": "Drop Out", - "groupBy": [ - { - "params": [ - "1m" - ], - "type": "time" - } - ], - "measurement": "net", - "orderByTime": "ASC", - "policy": "default", - "refId": "D", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "drop_out" - ], - "type": "field" - }, - { - "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] - }, - { - "alias": "Error In", - "groupBy": [ - { - "params": [ - "1m" - ], - "type": "time" - } - ], - "measurement": "net", - "orderByTime": "ASC", - "policy": "default", - "refId": "E", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "err_in" - ], - "type": "field" - }, - { - "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] - }, - { - "alias": "Error Out", - "groupBy": [ - { - "params": [ - "1m" - ], - "type": "time" - } - ], - "measurement": "net", - "orderByTime": "ASC", - "policy": "default", - "refId": "F", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "err_out" - ], - "type": "field" - }, - { - "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] - } - ], - "thresholds": [ - { - "$$hashKey": "object:1747", - "colorMode": "warning", + "$$hashKey": "object:1228", + "colorMode": "ok", "fill": true, "line": true, "op": "lt", - "value": 0, + "value": 2, "yaxis": "left" } ], "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Interface: $NetInterface (Tx/Rx)", + "title": "HTTP GET response time (ms)", "tooltip": { "shared": true, "sort": 0, - "value_type": "cumulative" + "value_type": "individual" }, + "transparent": true, "type": "graph", "xaxis": { "buckets": null, - "mode": "series", + "mode": "time", "name": null, "show": true, - "values": [ - "total" - ] + "values": [] }, "yaxes": [ { - "$$hashKey": "object:1468", - "format": "bytes", - "label": "", + "$$hashKey": "object:1019", + "format": "short", + "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { - "$$hashKey": "object:1469", + "$$hashKey": "object:1020", "format": "short", "label": null, "logBase": 1, @@ -2327,74 +2118,597 @@ data: } ], "yaxis": { - "align": true, + "align": false, "alignLevel": null } }, { - "cards": { - "cardPadding": 1, - "cardRound": null - }, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateInferno", - "exponent": 0.5, - "max": null, - "min": null, - "mode": "spectrum" - }, - "dataFormat": "timeseries", + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, "datasource": "InfluxDB", - "description": "Standard Deviation (ms) heatmap", "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, + "fill": 1, + "fillGradient": 1, "gridPos": { - "h": 12, + "h": 18, "w": 12, "x": 0, - "y": 75 + "y": 57 }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 10, + "hiddenSeries": false, + "id": 85, "legend": { - "show": true + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": true, + "values": true }, - "pluginVersion": "7.2.0", - "reverseYBuckets": false, + "lines": true, + "linewidth": 1, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.2.1", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, "targets": [ { + "alias": "$col", "groupBy": [ { "params": [ - "$interval" + "$__interval" ], "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" } ], - "measurement": "ping", + "measurement": "netstat", "orderByTime": "ASC", "policy": "default", + "query": "SELECT mean(\"tcp_close\") AS \"tcp_close\", mean(\"tcp_close_wait\") AS \"tcp_close_wait\", mean(\"tcp_closing\") AS \"tcp_colsing\", mean(\"tcp_fin_wait1\") AS \"tcp_fin_wait1\", mean(\"tcp_fin_wait2\") AS \"tcp_fin_wait2\", mean(\"tcp_last_ack\") AS \"tcp_last_ack\", mean(\"tcp_syn_recv\") AS \"tcp_syn_recv\", mean(\"tcp_syn_sent\") AS \"tcp_syn_sent\", mean(\"tcp_listen\") AS \"tcp_listen\", mean(\"tcp_time_wait\") AS \"tcp_time_wait\", mean(\"udp_socket\") AS \"udp_socket\", mean(\"tcp_established\") AS \"tcp_established\" FROM \"netstat\" WHERE (\"host\" =~ /^$NetHost$/) AND $timeFilter GROUP BY time($interval) fill(null)", + "rawQuery": true, "refId": "A", - "resultFormat": "table", + "resultFormat": "time_series", "select": [ [ { "params": [ - "standard_deviation_ms" + "tcp_close" ], "type": "field" }, { "params": [], - "type": "stddev" + "type": "mean" + }, + { + "params": [ + "tcp_close" + ], + "type": "alias" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$NetHost$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Netstat", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2208", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:2209", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 18, + "w": 12, + "x": 12, + "y": 57 + }, + "hiddenSeries": false, + "id": 16, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "nullPointMode": "null as zero", + "options": { + "alertThreshold": false + }, + "percentage": false, + "pluginVersion": "7.2.1", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "Tx (Bytes)", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_sent" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Rx (Bytes)", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_recv" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Drop In", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "drop_in" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Drop Out", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "drop_out" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Error In", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "E", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "err_in" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Error Out", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "err_out" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + } + ], + "thresholds": [ + { + "$$hashKey": "object:1747", + "colorMode": "warning", + "fill": true, + "line": true, + "op": "lt", + "value": 0, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Interface: $NetInterface (Tx/Rx)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "series", + "name": null, + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "$$hashKey": "object:1468", + "format": "bytes", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1469", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": true, + "alignLevel": null + } + }, + { + "cards": { + "cardPadding": 1, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateInferno", + "exponent": 0.5, + "max": null, + "min": null, + "mode": "spectrum" + }, + "dataFormat": "timeseries", + "datasource": "InfluxDB", + "description": "Standard Deviation (ms) heatmap", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 12, + "x": 0, + "y": 75 + }, + "heatmap": {}, + "hideZeroBuckets": false, + "highlightCards": true, + "id": 10, + "legend": { + "show": true + }, + "pluginVersion": "7.2.0", + "reverseYBuckets": false, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + } + ], + "measurement": "ping", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "standard_deviation_ms" + ], + "type": "field" + }, + { + "params": [], + "type": "stddev" } ] ], @@ -2551,180 +2865,517 @@ data: }, "properties": [ { - "id": "custom.width", - "value": 145 + "id": "custom.width", + "value": 145 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "method" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Endpoint" + }, + "properties": [ + { + "id": "custom.width", + "value": 514 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "HTTP Method" + }, + "properties": [ + { + "id": "custom.width", + "value": 333 + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 75 + }, + "id": 14, + "options": { + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "7.2.1", + "repeat": null, + "repeatDirection": "h", + "targets": [ + { + "alias": "$tag_server", + "groupBy": [ + { + "params": [ + "server" + ], + "type": "tag" + }, + { + "params": [ + "method" + ], + "type": "tag" + } + ], + "measurement": "http_response", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "http_response_code" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "HTTP response codes", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": { + "Time": 0, + "last": 3, + "method": 2, + "server": 1 + }, + "renameByName": { + "last": "Response code", + "method": "HTTP Method", + "server": "Endpoint" + } + } + } + ], + "transparent": true, + "type": "table" + }, + { + "datasource": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 12, + "x": 12, + "y": 81 + }, + "id": 18, + "options": { + "geoIPProviders": { + "active": "ipsb", + "custom-api": { + "kind": "custom-api" + }, + "custom-function": { + "kind": "custom-function" + }, + "ipinfo": { + "kind": "ipinfo" + }, + "ipsb": { + "kind": "ipsb" + } + }, + "hostnameLabelWidth": 8, + "longitude360": false, + "mapClusterRadius": 15, + "simplifyHostname": false + }, + "pluginVersion": "7.2.0", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "orderByTime": "ASC", + "policy": "default", + "query": "select mean(avg) as rtt, mean(loss) as loss from mtr WHERE now() - 5m < time group by hop, ip, host, dest\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "TraceRoute", + "type": "gowee-traceroutemap-panel" + }, + { + "datasource": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 3, + "mappings": [], + "min": 0, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(238, 238, 238)", + "value": null } ] }, - { - "matcher": { - "id": "byName", - "options": "method" + "unit": "decmbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 0, + "y": 87 + }, + "id": 65, + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "7.2.1", + "targets": [ + { + "groupBy": [ + { + "params": [ + "5m" + ], + "type": "time" }, - "properties": [ + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Endpoint" - }, - "properties": [ + "params": [ + "bytes_recv" + ], + "type": "field" + }, { - "id": "custom.width", - "value": 514 + "params": [], + "type": "last" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + }, + { + "params": [ + "MiB Sent" + ], + "type": "alias" } ] - }, - { - "matcher": { - "id": "byName", - "options": "HTTP Method" - }, - "properties": [ + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "MiB Received ($NetInterface)", + "type": "stat" + }, + { + "datasource": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 3, + "mappings": [], + "min": 0, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ { - "id": "custom.width", - "value": 333 + "color": "light-blue", + "value": null } ] - } - ] + }, + "unit": "decmbytes" + }, + "overrides": [] }, "gridPos": { "h": 6, - "w": 12, - "x": 12, - "y": 75 + "w": 6, + "x": 6, + "y": 87 }, - "id": 14, + "id": 56, + "maxDataPoints": 100, "options": { - "showHeader": true, - "sortBy": [] + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "textMode": "value" }, "pluginVersion": "7.2.1", - "repeat": null, - "repeatDirection": "h", "targets": [ { - "alias": "$tag_server", "groupBy": [ { "params": [ - "server" + "5m" ], - "type": "tag" + "type": "time" }, { "params": [ - "method" + "null" ], - "type": "tag" + "type": "fill" } ], - "measurement": "http_response", + "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "A", - "resultFormat": "table", + "refId": "B", + "resultFormat": "time_series", "select": [ [ { "params": [ - "http_response_code" + "bytes_sent" ], "type": "field" }, { "params": [], "type": "last" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + }, + { + "params": [ + "MiB Sent" + ], + "type": "alias" } ] ], - "tags": [] + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] } ], "timeFrom": null, "timeShift": null, - "title": "HTTP response codes", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": { - "Time": 0, - "last": 3, - "method": 2, - "server": 1 - }, - "renameByName": { - "last": "Response code", - "method": "HTTP Method", - "server": "Endpoint" - } - } - } - ], - "transparent": true, - "type": "table" + "title": "MiB Sent ($NetInterface)", + "type": "stat" + }, + { + "collapsed": false, + "datasource": "InfluxDB", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 93 + }, + "id": 32, + "panels": [], + "title": "Availability metrics", + "type": "row" }, { "datasource": "InfluxDB", "fieldConfig": { "defaults": { "custom": {}, - "mappings": [], + "decimals": 4, + "mappings": [ + { + "from": "", + "id": 0, + "text": "N/A", + "to": "", + "type": 1, + "value": "null" + } + ], "thresholds": { "mode": "absolute", "steps": [ { - "color": "green", + "color": "dark-red", "value": null }, { - "color": "red", - "value": 80 + "color": "semi-dark-orange", + "value": 95 + }, + { + "color": "semi-dark-green", + "value": 100 } ] - } + }, + "unit": "percent" }, "overrides": [] }, "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 81 + "h": 6, + "w": 6, + "x": 0, + "y": 94 }, - "id": 18, + "id": 36, "options": { - "geoIPProviders": { - "active": "ipsb", - "custom-api": { - "kind": "custom-api" - }, - "custom-function": { - "kind": "custom-function" - }, - "ipinfo": { - "kind": "ipinfo" - }, - "ipsb": { - "kind": "ipsb" - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false }, - "hostnameLabelWidth": 8, - "longitude360": false, - "mapClusterRadius": 15, - "simplifyHostname": false + "textMode": "auto" + }, + "pluginVersion": "7.2.1", + "repeat": "PingURL", + "scopedVars": { + "PingURL": { + "selected": false, + "text": "amazon.com", + "value": "amazon.com" + } }, - "pluginVersion": "7.2.0", "targets": [ { "groupBy": [ @@ -2743,10 +3394,10 @@ data: ], "orderByTime": "ASC", "policy": "default", - "query": "select mean(avg) as rtt, mean(loss) as loss from mtr WHERE now() - 5m < time group by hop, ip, host, dest\n", + "query": "SELECT 100 - mean(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" =~ /^$PingURL$/ AND $timeFilter GROUP BY time(1m) fill(null)", "rawQuery": true, "refId": "A", - "resultFormat": "table", + "resultFormat": "time_series", "select": [ [ { @@ -2766,60 +3417,83 @@ data: ], "timeFrom": null, "timeShift": null, - "title": "TraceRoute", - "type": "gowee-traceroutemap-panel" + "title": "$PingURL Ping", + "type": "stat" }, { "datasource": "InfluxDB", "fieldConfig": { "defaults": { "custom": {}, - "decimals": 3, - "mappings": [], - "min": 0, - "noValue": "N/A", + "decimals": 4, + "mappings": [ + { + "from": "", + "id": 0, + "text": "N/A", + "to": "", + "type": 1, + "value": "null" + } + ], "thresholds": { "mode": "absolute", "steps": [ { - "color": "rgb(238, 238, 238)", + "color": "dark-red", "value": null + }, + { + "color": "semi-dark-orange", + "value": 95 + }, + { + "color": "semi-dark-green", + "value": 100 } ] }, - "unit": "decmbytes" + "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, - "x": 0, - "y": 87 + "x": 6, + "y": 94 }, - "id": 65, - "maxDataPoints": 100, + "id": 91, "options": { "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", + "graphMode": "area", + "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ - "last" + "mean" ], "fields": "", "values": false }, - "textMode": "value" + "textMode": "auto" }, "pluginVersion": "7.2.1", + "repeatIteration": 1603250019777, + "repeatPanelId": 36, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "google.com", + "value": "google.com" + } + }, "targets": [ { "groupBy": [ { "params": [ - "5m" + "$__interval" ], "type": "time" }, @@ -2830,49 +3504,32 @@ data: "type": "fill" } ], - "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "B", + "query": "SELECT 100 - mean(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" =~ /^$PingURL$/ AND $timeFilter GROUP BY time(1m) fill(null)", + "rawQuery": true, + "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "bytes_recv" + "value" ], "type": "field" }, { "params": [], - "type": "last" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - }, - { - "params": [ - "MiB Sent" - ], - "type": "alias" + "type": "mean" } ] ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] + "tags": [] } ], "timeFrom": null, "timeShift": null, - "title": "MiB Received ($NetInterface)", + "title": "$PingURL Ping", "type": "stat" }, { @@ -2880,52 +3537,75 @@ data: "fieldConfig": { "defaults": { "custom": {}, - "decimals": 3, - "mappings": [], - "min": 0, - "noValue": "N/A", + "decimals": 4, + "mappings": [ + { + "from": "", + "id": 0, + "text": "N/A", + "to": "", + "type": 1, + "value": "null" + } + ], "thresholds": { "mode": "absolute", "steps": [ { - "color": "light-blue", + "color": "dark-red", "value": null + }, + { + "color": "semi-dark-orange", + "value": 95 + }, + { + "color": "semi-dark-green", + "value": 100 } ] }, - "unit": "decmbytes" + "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, - "x": 6, - "y": 87 + "x": 12, + "y": 94 }, - "id": 56, - "maxDataPoints": 100, + "id": 92, "options": { "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", + "graphMode": "area", + "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ - "last" + "mean" ], "fields": "", "values": false }, - "textMode": "value" + "textMode": "auto" }, "pluginVersion": "7.2.1", + "repeatIteration": 1603250019777, + "repeatPanelId": 36, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "twitter.com", + "value": "twitter.com" + } + }, "targets": [ { "groupBy": [ { "params": [ - "5m" + "$__interval" ], "type": "time" }, @@ -2936,65 +3616,34 @@ data: "type": "fill" } ], - "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "B", + "query": "SELECT 100 - mean(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" =~ /^$PingURL$/ AND $timeFilter GROUP BY time(1m) fill(null)", + "rawQuery": true, + "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "bytes_sent" + "value" ], "type": "field" }, { "params": [], - "type": "last" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - }, - { - "params": [ - "MiB Sent" - ], - "type": "alias" + "type": "mean" } ] ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] + "tags": [] } ], "timeFrom": null, "timeShift": null, - "title": "MiB Sent ($NetInterface)", + "title": "$PingURL Ping", "type": "stat" }, - { - "collapsed": false, - "datasource": "InfluxDB", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 93 - }, - "id": 32, - "panels": [], - "title": "Availability metrics", - "type": "row" - }, { "datasource": "InfluxDB", "fieldConfig": { @@ -3035,10 +3684,10 @@ data: "gridPos": { "h": 6, "w": 6, - "x": 0, + "x": 18, "y": 94 }, - "id": 36, + "id": 93, "options": { "colorMode": "value", "graphMode": "area", @@ -3054,7 +3703,15 @@ data: "textMode": "auto" }, "pluginVersion": "7.2.1", - "repeat": "PingURL", + "repeatIteration": 1603250019777, + "repeatPanelId": 36, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "yahoo.com", + "value": "yahoo.com" + } + }, "targets": [ { "groupBy": [ @@ -3115,7 +3772,11 @@ data: "list": [ { "allValue": null, - "current": {}, + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, "datasource": "InfluxDB", "definition": "", "hide": 0, @@ -3137,7 +3798,11 @@ data: }, { "allValue": null, - "current": {}, + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, "datasource": "InfluxDB", "definition": "", "hide": 0, @@ -3159,7 +3824,11 @@ data: }, { "allValue": null, - "current": {}, + "current": { + "selected": false, + "text": "node1", + "value": "node1" + }, "datasource": "InfluxDB", "definition": "", "hide": 0, @@ -3189,28 +3858,9 @@ data: "timezone": "browser", "title": "Network", "uid": "Is1f1nRgz", - "version": 2 + "version": 1 } --- -apiVersion: v1 -kind: Service -metadata: - labels: - app: influxdb - name: influxdb-svc - namespace: monitoring -spec: - clusterIP: 10.43.37.100 - ports: - - port: 8086 - protocol: TCP - targetPort: 8086 - selector: - app: influxdb - sessionAffinity: None - type: ClusterIP - ---- apiVersion: apps/v1 kind: Deployment metadata: @@ -3301,6 +3951,8 @@ spec: - secretRef: name: isp-checker-secrets-ro volumeMounts: + - name: grafana-volume + mountPath: /var/lib/grafana - name: grafana-datasource-provisioner mountPath: /etc/grafana/provisioning/datasources/ - name: grafana-dashboard-provisioner @@ -3332,6 +3984,9 @@ spec: memory: "500Mi" cpu: "0.4" volumes: + - name: grafana-volume + persistentVolumeClaim: + claimName: grafana-pvc - name: grafana-dashboard-provisioner configMap: name: network-dashboard-provisioner diff --git a/kubernetes/configmap.yaml b/kubernetes/yaml/configmap.yaml similarity index 100% rename from kubernetes/configmap.yaml rename to kubernetes/yaml/configmap.yaml diff --git a/kubernetes/deployment.yaml b/kubernetes/yaml/deployment.yaml similarity index 96% rename from kubernetes/deployment.yaml rename to kubernetes/yaml/deployment.yaml index 79eefbe..90bb82d 100644 --- a/kubernetes/deployment.yaml +++ b/kubernetes/yaml/deployment.yaml @@ -89,6 +89,8 @@ spec: - secretRef: name: isp-checker-secrets-ro volumeMounts: + - name: grafana-volume + mountPath: /var/lib/grafana - name: grafana-datasource-provisioner mountPath: /etc/grafana/provisioning/datasources/ - name: grafana-dashboard-provisioner @@ -120,6 +122,9 @@ spec: memory: "500Mi" cpu: "0.4" volumes: + - name: grafana-volume + persistentVolumeClaim: + claimName: grafana-pvc - name: grafana-dashboard-provisioner configMap: name: network-dashboard-provisioner diff --git a/kubernetes/namespace.yaml b/kubernetes/yaml/namespace.yaml similarity index 100% rename from kubernetes/namespace.yaml rename to kubernetes/yaml/namespace.yaml diff --git a/kubernetes/network-dashboard.yaml b/kubernetes/yaml/network-dashboard.yaml similarity index 79% rename from kubernetes/network-dashboard.yaml rename to kubernetes/yaml/network-dashboard.yaml index 3865645..c6ee726 100644 --- a/kubernetes/network-dashboard.yaml +++ b/kubernetes/yaml/network-dashboard.yaml @@ -7,72 +7,6 @@ metadata: data: network-dashboard.json: |- { - "__inputs": [ - { - "name": "InfluxDB", - "label": "InfluxDB", - "description": "", - "type": "datasource", - "pluginId": "influxdb", - "pluginName": "InfluxDB" - } - ], - "__requires": [ - { - "type": "panel", - "id": "bargauge", - "name": "Bar gauge", - "version": "" - }, - { - "type": "panel", - "id": "gauge", - "name": "Gauge", - "version": "" - }, - { - "type": "panel", - "id": "gowee-traceroutemap-panel", - "name": "Traceroute Map Panel", - "version": "0.2.3" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "7.2.1" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "" - }, - { - "type": "panel", - "id": "heatmap", - "name": "Heatmap", - "version": "" - }, - { - "type": "datasource", - "id": "influxdb", - "name": "InfluxDB", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - } - ], "annotations": { "list": [ { @@ -90,8 +24,7 @@ data: "editable": true, "gnetId": 13140, "graphTooltip": 0, - "id": null, - "iteration": 1602558532070, + "iteration": 1603250019777, "links": [], "panels": [ { @@ -100,7 +33,7 @@ data: "defaults": { "custom": {}, "mappings": [], - "max": 100, + "max": 300, "min": 0, "thresholds": { "mode": "absolute", @@ -115,39 +48,31 @@ data: }, { "color": "light-green", - "value": 10 + "value": 50 }, { "color": "semi-dark-green", - "value": 20 + "value": 100 }, { "color": "semi-dark-green", - "value": 30 - }, - { - "color": "super-light-orange", - "value": 40 + "value": 150 }, { "color": "light-orange", - "value": 50 - }, - { - "color": "semi-dark-orange", - "value": 60 + "value": 150 }, { - "color": "light-red", - "value": 70 + "color": "super-light-orange", + "value": 200 }, { - "color": "semi-dark-red", - "value": 80 + "color": "semi-dark-orange", + "value": 250 }, { "color": "dark-red", - "value": 90 + "value": 300 } ] }, @@ -1399,6 +1324,13 @@ data: }, "pluginVersion": "7.2.1", "repeat": "PingURL", + "scopedVars": { + "PingURL": { + "selected": false, + "text": "amazon.com", + "value": "amazon.com" + } + }, "targets": [ { "groupBy": [ @@ -1445,213 +1377,194 @@ data: "type": "gauge" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "InfluxDB", - "description": "HTTP GET request response time (ms)", "fieldConfig": { "defaults": { - "custom": {} + "custom": {}, + "decimals": 2, + "mappings": [], + "min": 0, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "super-light-green", + "value": null + }, + { + "color": "semi-dark-green", + "value": 150 + }, + { + "color": "dark-green", + "value": 200 + }, + { + "color": "#EAB839", + "value": 250 + }, + { + "color": "semi-dark-orange", + "value": 300 + }, + { + "color": "dark-red", + "value": 350 + } + ] + }, + "unit": "ms" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 47 - }, - "hiddenSeries": false, - "id": 12, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true + "h": 6, + "w": 6, + "x": 6, + "y": 41 }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 88, "options": { - "alertThreshold": true + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true }, - "percentage": false, "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "repeatIteration": 1603250019777, + "repeatPanelId": 42, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "google.com", + "value": "google.com" + } + }, "targets": [ { - "alias": "$tag_server", "groupBy": [ { "params": [ - "server" + "$__interval" ], - "type": "tag" + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" } ], - "measurement": "http_response", + "hide": false, "orderByTime": "ASC", "policy": "default", + "query": "SELECT mean(\"average_response_ms\") FROM \"ping\" WHERE (\"url\" =~ /^$PingURL$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "response_time" + "value" ], "type": "field" + }, + { + "params": [], + "type": "mean" } ] ], - "tags": [ - { - "key": "method", - "operator": "=", - "value": "GET" - } - ] - } - ], - "thresholds": [ - { - "$$hashKey": "object:1216", - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": 10, - "yaxis": "left" - }, - { - "$$hashKey": "object:1222", - "colorMode": "warning", - "fill": false, - "line": false, - "op": "gt", - "value": 5, - "yaxis": "left" - }, - { - "$$hashKey": "object:1228", - "colorMode": "ok", - "fill": true, - "line": true, - "op": "lt", - "value": 2, - "yaxis": "left" + "tags": [] } ], "timeFrom": null, - "timeRegions": [], "timeShift": null, - "title": "HTTP GET response time (ms)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": true, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:1019", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:1020", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "$PingURL Ping", + "type": "gauge" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "InfluxDB", "fieldConfig": { "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 1, - "gridPos": { - "h": 18, - "w": 12, - "x": 0, - "y": 57 - }, - "hiddenSeries": false, - "id": 85, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": true, - "values": true + "custom": {}, + "decimals": 2, + "mappings": [], + "min": 0, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "super-light-green", + "value": null + }, + { + "color": "semi-dark-green", + "value": 150 + }, + { + "color": "dark-green", + "value": 200 + }, + { + "color": "#EAB839", + "value": 250 + }, + { + "color": "semi-dark-orange", + "value": 300 + }, + { + "color": "dark-red", + "value": 350 + } + ] + }, + "unit": "ms" + }, + "overrides": [] }, - "lines": true, - "linewidth": 1, - "nullPointMode": "connected", + "gridPos": { + "h": 6, + "w": 6, + "x": 12, + "y": 41 + }, + "id": 89, "options": { - "alertThreshold": true + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true }, - "percentage": false, "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "repeatIteration": 1603250019777, + "repeatPanelId": 42, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "twitter.com", + "value": "twitter.com" + } + }, "targets": [ { - "alias": "$col", "groupBy": [ { "params": [ @@ -1666,10 +1579,10 @@ data: "type": "fill" } ], - "measurement": "netstat", + "hide": false, "orderByTime": "ASC", "policy": "default", - "query": "SELECT mean(\"tcp_close\") AS \"tcp_close\", mean(\"tcp_close_wait\") AS \"tcp_close_wait\", mean(\"tcp_closing\") AS \"tcp_colsing\", mean(\"tcp_fin_wait1\") AS \"tcp_fin_wait1\", mean(\"tcp_fin_wait2\") AS \"tcp_fin_wait2\", mean(\"tcp_last_ack\") AS \"tcp_last_ack\", mean(\"tcp_syn_recv\") AS \"tcp_syn_recv\", mean(\"tcp_syn_sent\") AS \"tcp_syn_sent\", mean(\"tcp_listen\") AS \"tcp_listen\", mean(\"tcp_time_wait\") AS \"tcp_time_wait\", mean(\"udp_socket\") AS \"udp_socket\", mean(\"tcp_established\") AS \"tcp_established\" FROM \"netstat\" WHERE (\"host\" =~ /^$NetHost$/) AND $timeFilter GROUP BY time($interval) fill(null)", + "query": "SELECT mean(\"average_response_ms\") FROM \"ping\" WHERE (\"url\" =~ /^$PingURL$/) AND $timeFilter GROUP BY time($__interval) fill(null)", "rawQuery": true, "refId": "A", "resultFormat": "time_series", @@ -1677,284 +1590,651 @@ data: [ { "params": [ - "tcp_close" + "value" ], "type": "field" }, { "params": [], "type": "mean" - }, - { - "params": [ - "tcp_close" - ], - "type": "alias" } ] ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$NetHost$/" - } - ] + "tags": [] } ], - "thresholds": [], "timeFrom": null, - "timeRegions": [], "timeShift": null, - "title": "Netstat", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:2208", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:2209", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "$PingURL Ping", + "type": "gauge" }, { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, "datasource": "InfluxDB", "fieldConfig": { "defaults": { "custom": {}, + "decimals": 2, "mappings": [], + "min": 0, + "noValue": "N/A", "thresholds": { "mode": "absolute", "steps": [ { - "color": "green", + "color": "super-light-green", "value": null }, { - "color": "red", - "value": 80 + "color": "semi-dark-green", + "value": 150 + }, + { + "color": "dark-green", + "value": 200 + }, + { + "color": "#EAB839", + "value": 250 + }, + { + "color": "semi-dark-orange", + "value": 300 + }, + { + "color": "dark-red", + "value": 350 } ] - } + }, + "unit": "ms" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 18, - "w": 12, - "x": 12, - "y": 57 - }, - "hiddenSeries": false, - "id": 16, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true + "h": 6, + "w": 6, + "x": 18, + "y": 41 }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null as zero", + "id": 90, "options": { - "alertThreshold": false + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true }, - "percentage": false, "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "repeatIteration": 1603250019777, + "repeatPanelId": 42, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "yahoo.com", + "value": "yahoo.com" + } + }, "targets": [ { - "alias": "Tx (Bytes)", "groupBy": [ { "params": [ - "1m" + "$__interval" ], "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" } ], - "measurement": "net", + "hide": false, "orderByTime": "ASC", "policy": "default", + "query": "SELECT mean(\"average_response_ms\") FROM \"ping\" WHERE (\"url\" =~ /^$PingURL$/) AND $timeFilter GROUP BY time($__interval) fill(null)", + "rawQuery": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "bytes_sent" + "value" ], "type": "field" }, { "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" + "type": "mean" } ] ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] - }, - { - "alias": "Rx (Bytes)", - "groupBy": [ - { + "tags": [] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "$PingURL Ping", + "type": "gauge" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "description": "HTTP GET request response time (ms)", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 47 + }, + "hiddenSeries": false, + "id": 12, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.2.1", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_server", + "groupBy": [ + { "params": [ - "1m" + "server" ], - "type": "time" + "type": "tag" } ], - "measurement": "net", + "measurement": "http_response", "orderByTime": "ASC", "policy": "default", - "refId": "B", + "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "bytes_recv" + "response_time" ], "type": "field" - }, - { - "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" } ] ], "tags": [ { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" + "key": "method", + "operator": "=", + "value": "GET" } ] + } + ], + "thresholds": [ + { + "$$hashKey": "object:1216", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 10, + "yaxis": "left" }, { - "alias": "Drop In", + "$$hashKey": "object:1222", + "colorMode": "warning", + "fill": false, + "line": false, + "op": "gt", + "value": 5, + "yaxis": "left" + }, + { + "$$hashKey": "object:1228", + "colorMode": "ok", + "fill": true, + "line": true, + "op": "lt", + "value": 2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "HTTP GET response time (ms)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "transparent": true, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1019", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1020", + "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": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 1, + "gridPos": { + "h": 18, + "w": 12, + "x": 0, + "y": 57 + }, + "hiddenSeries": false, + "id": 85, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": true, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.2.1", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$col", "groupBy": [ { "params": [ - "1m" + "$__interval" ], "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" } ], - "measurement": "net", + "measurement": "netstat", "orderByTime": "ASC", "policy": "default", - "refId": "C", + "query": "SELECT mean(\"tcp_close\") AS \"tcp_close\", mean(\"tcp_close_wait\") AS \"tcp_close_wait\", mean(\"tcp_closing\") AS \"tcp_colsing\", mean(\"tcp_fin_wait1\") AS \"tcp_fin_wait1\", mean(\"tcp_fin_wait2\") AS \"tcp_fin_wait2\", mean(\"tcp_last_ack\") AS \"tcp_last_ack\", mean(\"tcp_syn_recv\") AS \"tcp_syn_recv\", mean(\"tcp_syn_sent\") AS \"tcp_syn_sent\", mean(\"tcp_listen\") AS \"tcp_listen\", mean(\"tcp_time_wait\") AS \"tcp_time_wait\", mean(\"udp_socket\") AS \"udp_socket\", mean(\"tcp_established\") AS \"tcp_established\" FROM \"netstat\" WHERE (\"host\" =~ /^$NetHost$/) AND $timeFilter GROUP BY time($interval) fill(null)", + "rawQuery": true, + "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "drop_in" + "tcp_close" ], "type": "field" }, { "params": [], - "type": "integral" + "type": "mean" }, { "params": [ - "/1048576" + "tcp_close" ], - "type": "math" + "type": "alias" } ] ], "tags": [ { - "key": "interface", + "key": "host", "operator": "=~", - "value": "/^$NetInterface$/" + "value": "/^$NetHost$/" } ] - }, - { - "alias": "Drop Out", - "groupBy": [ - { - "params": [ - "1m" - ], - "type": "time" - } - ], - "measurement": "net", - "orderByTime": "ASC", - "policy": "default", - "refId": "D", - "resultFormat": "time_series", - "select": [ + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Netstat", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2208", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:2209", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 18, + "w": 12, + "x": 12, + "y": 57 + }, + "hiddenSeries": false, + "id": 16, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "nullPointMode": "null as zero", + "options": { + "alertThreshold": false + }, + "percentage": false, + "pluginVersion": "7.2.1", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "Tx (Bytes)", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_sent" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Rx (Bytes)", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "bytes_recv" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Drop In", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "drop_in" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Drop Out", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ [ { "params": [ @@ -2016,508 +2296,845 @@ data: "type": "math" } ] - ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + }, + { + "alias": "Error Out", + "groupBy": [ + { + "params": [ + "1m" + ], + "type": "time" + } + ], + "measurement": "net", + "orderByTime": "ASC", + "policy": "default", + "refId": "F", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "err_out" + ], + "type": "field" + }, + { + "params": [], + "type": "integral" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + } + ] + ], + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] + } + ], + "thresholds": [ + { + "$$hashKey": "object:1747", + "colorMode": "warning", + "fill": true, + "line": true, + "op": "lt", + "value": 0, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Interface: $NetInterface (Tx/Rx)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "series", + "name": null, + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "$$hashKey": "object:1468", + "format": "bytes", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:1469", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": true, + "alignLevel": null + } + }, + { + "cards": { + "cardPadding": 1, + "cardRound": null + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateInferno", + "exponent": 0.5, + "max": null, + "min": null, + "mode": "spectrum" + }, + "dataFormat": "timeseries", + "datasource": "InfluxDB", + "description": "Standard Deviation (ms) heatmap", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 12, + "x": 0, + "y": 75 + }, + "heatmap": {}, + "hideZeroBuckets": false, + "highlightCards": true, + "id": 10, + "legend": { + "show": true + }, + "pluginVersion": "7.2.0", + "reverseYBuckets": false, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + } + ], + "measurement": "ping", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "standard_deviation_ms" + ], + "type": "field" + }, + { + "params": [], + "type": "stddev" + } + ] + ], + "tags": [ + { + "key": "url", + "operator": "=~", + "value": "/^$PingURL$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Ping Standard Deviation (ms)", + "tooltip": { + "show": true, + "showHistogram": true + }, + "tooltipDecimals": 3, + "transparent": true, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketNumber": null, + "xBucketSize": "10s", + "yAxis": { + "decimals": null, + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true, + "splitFactor": null + }, + "yBucketBound": "auto", + "yBucketNumber": null, + "yBucketSize": null + }, + { + "datasource": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": { + "align": "center", + "displayMode": "color-text", + "filterable": true + }, + "mappings": [], + "max": 500, + "min": 100, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "super-light-blue", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Time" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + }, + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "unit", + "value": "dateTimeAsLocal" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "server" + }, + "properties": [ + { + "id": "custom.width", + "value": 300 + }, + { + "id": "mappings", + "value": [] + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "last" + }, + "properties": [ + { + "id": "custom.width", + "value": 145 + }, + { + "id": "displayName", + "value": "Response code" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "light-red", + "value": null + }, + { + "color": "light-green", + "value": 100 + }, + { + "color": "light-green", + "value": 200 + }, + { + "color": "semi-dark-green", + "value": 300 + }, + { + "color": "super-light-yellow", + "value": 400 + }, + { + "color": "super-light-red", + "value": 500 + } + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Response code" + }, + "properties": [ + { + "id": "custom.width", + "value": 145 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "method" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Endpoint" + }, + "properties": [ + { + "id": "custom.width", + "value": 514 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "HTTP Method" + }, + "properties": [ + { + "id": "custom.width", + "value": 333 + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 75 + }, + "id": 14, + "options": { + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "7.2.1", + "repeat": null, + "repeatDirection": "h", + "targets": [ + { + "alias": "$tag_server", + "groupBy": [ + { + "params": [ + "server" + ], + "type": "tag" + }, + { + "params": [ + "method" + ], + "type": "tag" + } + ], + "measurement": "http_response", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "table", + "select": [ + [ + { + "params": [ + "http_response_code" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "HTTP response codes", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": { + "Time": 0, + "last": 3, + "method": 2, + "server": 1 + }, + "renameByName": { + "last": "Response code", + "method": "HTTP Method", + "server": "Endpoint" + } + } + } + ], + "transparent": true, + "type": "table" + }, + { + "datasource": "InfluxDB", + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 12, + "x": 12, + "y": 81 + }, + "id": 18, + "options": { + "geoIPProviders": { + "active": "ipsb", + "custom-api": { + "kind": "custom-api" + }, + "custom-function": { + "kind": "custom-function" + }, + "ipinfo": { + "kind": "ipinfo" + }, + "ipsb": { + "kind": "ipsb" + } }, + "hostnameLabelWidth": 8, + "longitude360": false, + "mapClusterRadius": 15, + "simplifyHostname": false + }, + "pluginVersion": "7.2.0", + "targets": [ { - "alias": "Error Out", "groupBy": [ { "params": [ - "1m" + "$__interval" ], "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" } ], - "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "F", - "resultFormat": "time_series", + "query": "select mean(avg) as rtt, mean(loss) as loss from mtr WHERE now() - 5m < time group by hop, ip, host, dest\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "table", "select": [ [ { "params": [ - "err_out" + "value" ], "type": "field" }, { "params": [], - "type": "integral" - }, - { - "params": [ - "/1048576" - ], - "type": "math" + "type": "mean" } ] ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] - } - ], - "thresholds": [ - { - "$$hashKey": "object:1747", - "colorMode": "warning", - "fill": true, - "line": true, - "op": "lt", - "value": 0, - "yaxis": "left" + "tags": [] } ], "timeFrom": null, - "timeRegions": [], "timeShift": null, - "title": "Interface: $NetInterface (Tx/Rx)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "series", - "name": null, - "show": true, - "values": [ - "total" - ] - }, - "yaxes": [ - { - "$$hashKey": "object:1468", - "format": "bytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:1469", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": true, - "alignLevel": null - } + "title": "TraceRoute", + "type": "gowee-traceroutemap-panel" }, { - "cards": { - "cardPadding": 1, - "cardRound": null - }, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateInferno", - "exponent": 0.5, - "max": null, - "min": null, - "mode": "spectrum" - }, - "dataFormat": "timeseries", "datasource": "InfluxDB", - "description": "Standard Deviation (ms) heatmap", "fieldConfig": { "defaults": { - "custom": {} + "custom": {}, + "decimals": 3, + "mappings": [], + "min": 0, + "noValue": "N/A", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(238, 238, 238)", + "value": null + } + ] + }, + "unit": "decmbytes" }, "overrides": [] }, "gridPos": { - "h": 12, - "w": 12, + "h": 6, + "w": 6, "x": 0, - "y": 75 + "y": 87 }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 10, - "legend": { - "show": true + "id": 65, + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "textMode": "value" }, - "pluginVersion": "7.2.0", - "reverseYBuckets": false, + "pluginVersion": "7.2.1", "targets": [ { "groupBy": [ { "params": [ - "$interval" + "5m" ], "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" } ], - "measurement": "ping", + "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "A", - "resultFormat": "table", + "refId": "B", + "resultFormat": "time_series", "select": [ [ { "params": [ - "standard_deviation_ms" + "bytes_recv" ], "type": "field" }, { "params": [], - "type": "stddev" + "type": "last" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + }, + { + "params": [ + "MiB Sent" + ], + "type": "alias" } ] ], "tags": [ { - "key": "url", + "key": "interface", "operator": "=~", - "value": "/^$PingURL$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Ping Standard Deviation (ms)", - "tooltip": { - "show": true, - "showHistogram": true - }, - "tooltipDecimals": 3, - "transparent": true, - "type": "heatmap", - "xAxis": { - "show": true - }, - "xBucketNumber": null, - "xBucketSize": "10s", - "yAxis": { - "decimals": null, - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true, - "splitFactor": null - }, - "yBucketBound": "auto", - "yBucketNumber": null, - "yBucketSize": null + "value": "/^$NetInterface$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "MiB Received ($NetInterface)", + "type": "stat" }, { "datasource": "InfluxDB", "fieldConfig": { "defaults": { - "custom": { - "align": "center", - "displayMode": "color-text", - "filterable": true - }, + "custom": {}, + "decimals": 3, "mappings": [], - "max": 500, - "min": 100, + "min": 0, "noValue": "N/A", "thresholds": { "mode": "absolute", "steps": [ { - "color": "super-light-blue", + "color": "light-blue", "value": null } ] }, - "unit": "none" + "unit": "decmbytes" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Time" - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - }, - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "unit", - "value": "dateTimeAsLocal" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "server" - }, - "properties": [ - { - "id": "custom.width", - "value": 300 - }, - { - "id": "mappings", - "value": [] - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "last" - }, - "properties": [ - { - "id": "custom.width", - "value": 145 - }, - { - "id": "displayName", - "value": "Response code" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "light-red", - "value": null - }, - { - "color": "light-green", - "value": 100 - }, - { - "color": "light-green", - "value": 200 - }, - { - "color": "semi-dark-green", - "value": 300 - }, - { - "color": "super-light-yellow", - "value": 400 - }, - { - "color": "super-light-red", - "value": 500 - } - ] - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Response code" - }, - "properties": [ - { - "id": "custom.width", - "value": 145 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "method" - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Endpoint" - }, - "properties": [ - { - "id": "custom.width", - "value": 514 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HTTP Method" - }, - "properties": [ - { - "id": "custom.width", - "value": 333 - } - ] - } - ] + "overrides": [] }, "gridPos": { "h": 6, - "w": 12, - "x": 12, - "y": 75 + "w": 6, + "x": 6, + "y": 87 }, - "id": 14, + "id": 56, + "maxDataPoints": 100, "options": { - "showHeader": true, - "sortBy": [] + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "textMode": "value" }, "pluginVersion": "7.2.1", - "repeat": null, - "repeatDirection": "h", "targets": [ { - "alias": "$tag_server", "groupBy": [ { "params": [ - "server" + "5m" ], - "type": "tag" + "type": "time" }, { "params": [ - "method" + "null" ], - "type": "tag" + "type": "fill" } ], - "measurement": "http_response", + "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "A", - "resultFormat": "table", + "refId": "B", + "resultFormat": "time_series", "select": [ [ { "params": [ - "http_response_code" + "bytes_sent" ], "type": "field" }, { "params": [], "type": "last" + }, + { + "params": [ + "/1048576" + ], + "type": "math" + }, + { + "params": [ + "MiB Sent" + ], + "type": "alias" } ] ], - "tags": [] + "tags": [ + { + "key": "interface", + "operator": "=~", + "value": "/^$NetInterface$/" + } + ] } ], "timeFrom": null, "timeShift": null, - "title": "HTTP response codes", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": { - "Time": 0, - "last": 3, - "method": 2, - "server": 1 - }, - "renameByName": { - "last": "Response code", - "method": "HTTP Method", - "server": "Endpoint" - } - } - } - ], - "transparent": true, - "type": "table" + "title": "MiB Sent ($NetInterface)", + "type": "stat" + }, + { + "collapsed": false, + "datasource": "InfluxDB", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 93 + }, + "id": 32, + "panels": [], + "title": "Availability metrics", + "type": "row" }, { "datasource": "InfluxDB", "fieldConfig": { "defaults": { "custom": {}, - "mappings": [], + "decimals": 4, + "mappings": [ + { + "from": "", + "id": 0, + "text": "N/A", + "to": "", + "type": 1, + "value": "null" + } + ], "thresholds": { "mode": "absolute", "steps": [ { - "color": "green", + "color": "dark-red", "value": null }, { - "color": "red", - "value": 80 + "color": "semi-dark-orange", + "value": 95 + }, + { + "color": "semi-dark-green", + "value": 100 } ] - } + }, + "unit": "percent" }, "overrides": [] }, "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 81 + "h": 6, + "w": 6, + "x": 0, + "y": 94 }, - "id": 18, + "id": 36, "options": { - "geoIPProviders": { - "active": "ipsb", - "custom-api": { - "kind": "custom-api" - }, - "custom-function": { - "kind": "custom-function" - }, - "ipinfo": { - "kind": "ipinfo" - }, - "ipsb": { - "kind": "ipsb" - } + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false }, - "hostnameLabelWidth": 8, - "longitude360": false, - "mapClusterRadius": 15, - "simplifyHostname": false + "textMode": "auto" + }, + "pluginVersion": "7.2.1", + "repeat": "PingURL", + "scopedVars": { + "PingURL": { + "selected": false, + "text": "amazon.com", + "value": "amazon.com" + } }, - "pluginVersion": "7.2.0", "targets": [ { "groupBy": [ @@ -2536,10 +3153,10 @@ data: ], "orderByTime": "ASC", "policy": "default", - "query": "select mean(avg) as rtt, mean(loss) as loss from mtr WHERE now() - 5m < time group by hop, ip, host, dest\n", + "query": "SELECT 100 - mean(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" =~ /^$PingURL$/ AND $timeFilter GROUP BY time(1m) fill(null)", "rawQuery": true, "refId": "A", - "resultFormat": "table", + "resultFormat": "time_series", "select": [ [ { @@ -2559,60 +3176,83 @@ data: ], "timeFrom": null, "timeShift": null, - "title": "TraceRoute", - "type": "gowee-traceroutemap-panel" + "title": "$PingURL Ping", + "type": "stat" }, { "datasource": "InfluxDB", "fieldConfig": { "defaults": { "custom": {}, - "decimals": 3, - "mappings": [], - "min": 0, - "noValue": "N/A", + "decimals": 4, + "mappings": [ + { + "from": "", + "id": 0, + "text": "N/A", + "to": "", + "type": 1, + "value": "null" + } + ], "thresholds": { "mode": "absolute", "steps": [ { - "color": "rgb(238, 238, 238)", + "color": "dark-red", "value": null + }, + { + "color": "semi-dark-orange", + "value": 95 + }, + { + "color": "semi-dark-green", + "value": 100 } ] }, - "unit": "decmbytes" + "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, - "x": 0, - "y": 87 + "x": 6, + "y": 94 }, - "id": 65, - "maxDataPoints": 100, + "id": 91, "options": { "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", + "graphMode": "area", + "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ - "last" + "mean" ], "fields": "", "values": false }, - "textMode": "value" + "textMode": "auto" }, "pluginVersion": "7.2.1", + "repeatIteration": 1603250019777, + "repeatPanelId": 36, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "google.com", + "value": "google.com" + } + }, "targets": [ { "groupBy": [ { "params": [ - "5m" + "$__interval" ], "type": "time" }, @@ -2623,49 +3263,32 @@ data: "type": "fill" } ], - "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "B", + "query": "SELECT 100 - mean(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" =~ /^$PingURL$/ AND $timeFilter GROUP BY time(1m) fill(null)", + "rawQuery": true, + "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "bytes_recv" + "value" ], "type": "field" }, { "params": [], - "type": "last" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - }, - { - "params": [ - "MiB Sent" - ], - "type": "alias" + "type": "mean" } ] ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] + "tags": [] } ], "timeFrom": null, "timeShift": null, - "title": "MiB Received ($NetInterface)", + "title": "$PingURL Ping", "type": "stat" }, { @@ -2673,52 +3296,75 @@ data: "fieldConfig": { "defaults": { "custom": {}, - "decimals": 3, - "mappings": [], - "min": 0, - "noValue": "N/A", + "decimals": 4, + "mappings": [ + { + "from": "", + "id": 0, + "text": "N/A", + "to": "", + "type": 1, + "value": "null" + } + ], "thresholds": { "mode": "absolute", "steps": [ { - "color": "light-blue", + "color": "dark-red", "value": null + }, + { + "color": "semi-dark-orange", + "value": 95 + }, + { + "color": "semi-dark-green", + "value": 100 } ] }, - "unit": "decmbytes" + "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 6, "w": 6, - "x": 6, - "y": 87 + "x": 12, + "y": 94 }, - "id": 56, - "maxDataPoints": 100, + "id": 92, "options": { "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", + "graphMode": "area", + "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ - "last" + "mean" ], "fields": "", "values": false }, - "textMode": "value" + "textMode": "auto" }, "pluginVersion": "7.2.1", + "repeatIteration": 1603250019777, + "repeatPanelId": 36, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "twitter.com", + "value": "twitter.com" + } + }, "targets": [ { "groupBy": [ { "params": [ - "5m" + "$__interval" ], "type": "time" }, @@ -2729,65 +3375,34 @@ data: "type": "fill" } ], - "measurement": "net", "orderByTime": "ASC", "policy": "default", - "refId": "B", + "query": "SELECT 100 - mean(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" =~ /^$PingURL$/ AND $timeFilter GROUP BY time(1m) fill(null)", + "rawQuery": true, + "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ - "bytes_sent" + "value" ], "type": "field" }, { "params": [], - "type": "last" - }, - { - "params": [ - "/1048576" - ], - "type": "math" - }, - { - "params": [ - "MiB Sent" - ], - "type": "alias" + "type": "mean" } ] ], - "tags": [ - { - "key": "interface", - "operator": "=~", - "value": "/^$NetInterface$/" - } - ] + "tags": [] } ], "timeFrom": null, "timeShift": null, - "title": "MiB Sent ($NetInterface)", + "title": "$PingURL Ping", "type": "stat" }, - { - "collapsed": false, - "datasource": "InfluxDB", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 93 - }, - "id": 32, - "panels": [], - "title": "Availability metrics", - "type": "row" - }, { "datasource": "InfluxDB", "fieldConfig": { @@ -2828,10 +3443,10 @@ data: "gridPos": { "h": 6, "w": 6, - "x": 0, + "x": 18, "y": 94 }, - "id": 36, + "id": 93, "options": { "colorMode": "value", "graphMode": "area", @@ -2847,7 +3462,15 @@ data: "textMode": "auto" }, "pluginVersion": "7.2.1", - "repeat": "PingURL", + "repeatIteration": 1603250019777, + "repeatPanelId": 36, + "scopedVars": { + "PingURL": { + "selected": false, + "text": "yahoo.com", + "value": "yahoo.com" + } + }, "targets": [ { "groupBy": [ @@ -2908,7 +3531,11 @@ data: "list": [ { "allValue": null, - "current": {}, + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, "datasource": "InfluxDB", "definition": "", "hide": 0, @@ -2930,7 +3557,11 @@ data: }, { "allValue": null, - "current": {}, + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, "datasource": "InfluxDB", "definition": "", "hide": 0, @@ -2952,7 +3583,11 @@ data: }, { "allValue": null, - "current": {}, + "current": { + "selected": false, + "text": "node1", + "value": "node1" + }, "datasource": "InfluxDB", "definition": "", "hide": 0, @@ -2982,5 +3617,5 @@ data: "timezone": "browser", "title": "Network", "uid": "Is1f1nRgz", - "version": 2 + "version": 1 } diff --git a/kubernetes/pvc.yaml b/kubernetes/yaml/pvc.yaml similarity index 50% rename from kubernetes/pvc.yaml rename to kubernetes/yaml/pvc.yaml index 531882f..d46c15d 100644 --- a/kubernetes/pvc.yaml +++ b/kubernetes/yaml/pvc.yaml @@ -13,3 +13,18 @@ spec: requests: storage: 5Gi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + namespace: monitoring + labels: + app: grafana + name: grafana-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + diff --git a/kubernetes/secrets.yaml b/kubernetes/yaml/secrets.yaml similarity index 100% rename from kubernetes/secrets.yaml rename to kubernetes/yaml/secrets.yaml diff --git a/kubernetes/services.yaml b/kubernetes/yaml/services.yaml similarity index 100% rename from kubernetes/services.yaml rename to kubernetes/yaml/services.yaml