diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1258669 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +.DS_Store diff --git a/docker-compose.yml b/docker-compose.yml index dde3014..4ac82d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,6 +25,7 @@ services: links: - ping:ping - speedtest:speedtest + - portschecker:portschecker networks: - back-tier @@ -89,3 +90,19 @@ services: - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)" networks: - back-tier + + portschecker: + tty: true + stdin_open: true + image: xeviff/python-prometheus-canyouseeme + volumes: + - ./pyPrometheusPortChecker/config:/config + depends_on: + - speedtest + expose: + - 9116 + ports: + - 9116:9116 + restart: always + networks: + - back-tier diff --git a/grafana/config.monitoring b/grafana/config.monitoring index bfa9511..fff0509 100644 --- a/grafana/config.monitoring +++ b/grafana/config.monitoring @@ -1,3 +1,4 @@ -GF_SECURITY_ADMIN_PASSWORD=wonka -GF_USERS_ALLOW_SIGN_UP=false +GF_SECURITY_ADMIN_PASSWORD=grafana123 +GF_USERS_ALLOW_SIGN_UP=true GF_INSTALL_PLUGINS=flant-statusmap-panel,ae3e-plotly-panel +GF_AUTH_ANONYMOUS_ENABLED=true diff --git a/grafana/provisioning/dashboards/internet-SLA-monitoring.json b/grafana/provisioning/dashboards/internet-SLA-monitoring.json new file mode 100644 index 0000000..19e812f --- /dev/null +++ b/grafana/provisioning/dashboards/internet-SLA-monitoring.json @@ -0,0 +1,1129 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "limit": 100, + "name": "Annotations & Alerts", + "showIn": 0, + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 4, + "links": [], + "liveNow": true, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 1050000000, + "min": 100, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 600000000 + }, + { + "color": "dark-yellow", + "value": 800000000 + }, + { + "color": "dark-green", + "value": 950000000 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 10, + "x": 0, + "y": 0 + }, + "id": 8, + "links": [], + "maxDataPoints": 5000, + "options": { + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^speedtest_download_bits_per_second\\{instance=\"speedtest:9798\", job=\"speedtest\"\\}$/", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "8.5.5", + "targets": [ + { + "expr": "speedtest_download_bits_per_second{}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "title": "Last Download Speed", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 1050000000, + "min": 100, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 600000000 + }, + { + "color": "#EAB839", + "value": 800000000 + }, + { + "color": "dark-green", + "value": 950000000 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 9, + "x": 10, + "y": 0 + }, + "id": 10, + "links": [], + "maxDataPoints": 5000, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "8.5.5", + "targets": [ + { + "expr": "speedtest_upload_bits_per_second{}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "title": "Last Upload Speed", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 2, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 60, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 25 + }, + { + "color": "red", + "value": 50 + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 5, + "x": 19, + "y": 0 + }, + "id": 12, + "links": [], + "maxDataPoints": 5000, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "8.5.5", + "targets": [ + { + "expr": "speedtest_ping_latency_milliseconds", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "title": "Last Ping", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 1100000000, + "min": 100, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 600000000 + }, + { + "color": "dark-yellow", + "value": 800000000 + }, + { + "color": "dark-green", + "value": 950000000 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 10, + "x": 0, + "y": 6 + }, + "id": 15, + "links": [], + "maxDataPoints": 5000, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "/^speedtest_download_bits_per_second\\{instance=\"speedtest:9798\", job=\"speedtest\"\\}$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "8.5.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "editorMode": "code", + "expr": "speedtest_download_bits_per_second{}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "range": true, + "refId": "A" + } + ], + "title": "Average Download Speed", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 1100000000, + "min": 100, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 600000000 + }, + { + "color": "#EAB839", + "value": 800000000 + }, + { + "color": "dark-green", + "value": 950000000 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 9, + "x": 10, + "y": 6 + }, + "id": 16, + "links": [], + "maxDataPoints": 5000, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "8.5.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "editorMode": "code", + "expr": "speedtest_upload_bits_per_second{}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "upload", + "range": true, + "refId": "A" + } + ], + "title": "Average Upload Speed", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 2, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 5, + "x": 19, + "y": 6 + }, + "id": 17, + "links": [], + "maxDataPoints": 5000, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "8.5.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "editorMode": "code", + "expr": "speedtest_ping_latency_milliseconds", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "ping", + "refId": "A" + } + ], + "title": "Average Ping", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 24, + "gradientMode": "none", + "hideFrom": { + "graph": false, + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineStyle": { + "dash": [ + 0, + 10 + ], + "fill": "dot" + }, + "lineWidth": 7, + "pointSize": 6, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "always", + "spanNulls": 3600000, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "line+area" + } + }, + "mappings": [], + "max": 1000000000, + "min": 350000000, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-yellow", + "value": 800000000 + }, + { + "color": "dark-green", + "value": 1000000000 + } + ] + }, + "unit": "bps" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Download" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Upload" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#000000", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 11 + }, + "id": 6, + "links": [], + "maxDataPoints": 50000, + "options": { + "graph": {}, + "legend": { + "calcs": [ + "min", + "max", + "mean", + "last" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "7.4.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "editorMode": "code", + "exemplar": false, + "expr": "speedtest_download_bits_per_second{}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Download", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "expr": "speedtest_upload_bits_per_second{}", + "hide": false, + "interval": "", + "legendFormat": "Upload", + "refId": "B" + } + ], + "title": "Speedtest Graph", + "type": "timeseries" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 19, + "x": 0, + "y": 20 + }, + "hiddenSeries": false, + "id": 4, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 12, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.5.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "repeat": "host", + "repeatDirection": "h", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(probe_http_duration_seconds) by (instance)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "HTTP Request Duration", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:68", + "format": "short", + "logBase": 1, + "max": "7", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:69", + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "cards": { + "cardHSpacing": 2, + "cardMinWidth": 5, + "cardVSpacing": 2 + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateGnYlRd", + "defaultColor": "#757575", + "exponent": 0.5, + "max": 1, + "min": 0, + "mode": "discrete", + "thresholds": [ + { + "$$hashKey": "object:68", + "color": "#37872D", + "tooltip": "Up", + "value": "1" + }, + { + "$$hashKey": "object:72", + "color": "#C4162A", + "tooltip": "Down", + "value": "0" + } + ] + }, + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 19, + "y": 20 + }, + "hideBranding": false, + "highlightCards": true, + "id": 20, + "legend": { + "show": false + }, + "links": [], + "nullPointMode": "as empty", + "pageSize": 15, + "seriesFilterIndex": -1, + "statusmap": { + "ConfigVersion": "v1" + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "editorMode": "code", + "expr": "python_is_port_open{}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{portNumber}}", + "range": true, + "refId": "A" + } + ], + "title": "Opened ports", + "tooltip": { + "extraInfo": "", + "freezeOnClick": true, + "items": [], + "show": true, + "showExtraInfo": false, + "showItems": false + }, + "type": "flant-statusmap-panel", + "useMax": true, + "usingPagination": false, + "xAxis": { + "show": true + }, + "yAxis": { + "maxWidth": -1, + "minWidth": -1, + "show": true + }, + "yAxisSort": "metrics", + "yLabel": { + "delimiter": "", + "labelTemplate": "", + "usingSplitLabel": false + } + }, + { + "cards": { + "cardHSpacing": 2, + "cardMinWidth": 5, + "cardVSpacing": 2 + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateGnYlRd", + "defaultColor": "#757575", + "exponent": 0.5, + "max": 1, + "min": 0, + "mode": "discrete", + "thresholds": [ + { + "$$hashKey": "object:68", + "color": "#37872D", + "tooltip": "Up", + "value": "1" + }, + { + "$$hashKey": "object:72", + "color": "#C4162A", + "tooltip": "Down", + "value": "0" + } + ] + }, + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "gridPos": { + "h": 4, + "w": 19, + "x": 0, + "y": 27 + }, + "hideBranding": false, + "highlightCards": true, + "id": 14, + "legend": { + "show": false + }, + "links": [], + "nullPointMode": "as empty", + "pageSize": 15, + "seriesFilterIndex": -1, + "statusmap": { + "ConfigVersion": "v1" + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "expr": "probe_success", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "title": "Uptime", + "tooltip": { + "extraInfo": "", + "freezeOnClick": true, + "items": [], + "show": true, + "showExtraInfo": false, + "showItems": false + }, + "type": "flant-statusmap-panel", + "useMax": true, + "usingPagination": false, + "xAxis": { + "show": true + }, + "yAxis": { + "maxWidth": -1, + "minWidth": -1, + "show": true + }, + "yAxisSort": "metrics", + "yLabel": { + "delimiter": "", + "labelTemplate": "", + "usingSplitLabel": false + } + }, + { + "cards": { + "cardHSpacing": 2, + "cardMinWidth": 5, + "cardRound": 10, + "cardVSpacing": 2 + }, + "color": { + "cardColor": "#b4ff00", + "colorScale": "sqrt", + "colorScheme": "interpolateGnYlRd", + "defaultColor": "#757575", + "exponent": 0.5, + "max": 1, + "min": 0, + "mode": "spectrum", + "thresholds": [ + { + "$$hashKey": "object:68", + "color": "#37872D", + "tooltip": "Up", + "value": "1" + }, + { + "$$hashKey": "object:72", + "color": "#C4162A", + "tooltip": "Down", + "value": "0" + } + ] + }, + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "gridPos": { + "h": 4, + "w": 5, + "x": 19, + "y": 27 + }, + "hideBranding": false, + "highlightCards": true, + "id": 21, + "legend": { + "show": false + }, + "links": [], + "nullPointMode": "as zero", + "pageSize": 15, + "seriesFilterIndex": -1, + "statusmap": { + "ConfigVersion": "v1" + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "P1809F7CD0C75ACF3" + }, + "editorMode": "code", + "expr": "python_host{}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{IP}}", + "range": true, + "refId": "A" + } + ], + "title": "IP history", + "tooltip": { + "extraInfo": "", + "freezeOnClick": true, + "items": [], + "show": true, + "showExtraInfo": false, + "showItems": false + }, + "type": "flant-statusmap-panel", + "useMax": true, + "usingPagination": false, + "xAxis": { + "show": false + }, + "yAxis": { + "maxWidth": -1, + "minWidth": -1, + "show": false + }, + "yAxisSort": "metrics", + "yLabel": { + "delimiter": "", + "labelTemplate": "", + "usingSplitLabel": false + } + } + ], + "refresh": "5s", + "schemaVersion": 36, + "style": "dark", + "tags": [ + "speedtest", + "ping" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-12h", + "to": "now" + }, + "timepicker": { + "hidden": false, + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "Internet SLA monitoring", + "uid": "o9mIe_Aik2", + "version": 43, + "weekStart": "monday" + } \ No newline at end of file diff --git a/grafana/provisioning/dashboards/internet-connection.json b/grafana/provisioning/dashboards/internet-connection.json deleted file mode 100644 index 48741e9..0000000 --- a/grafana/provisioning/dashboards/internet-connection.json +++ /dev/null @@ -1,560 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "limit": 100, - "name": "Annotations & Alerts", - "showIn": 0, - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "links": [], - "panels": [ - { - "cacheTimeout": null, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "id": 0, - "op": "=", - "text": "N/A", - "type": 1, - "value": "null" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "blue", - "value": 100 - } - ] - }, - "unit": "bps" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 0, - "y": 0 - }, - "id": 8, - "interval": null, - "links": [], - "maxDataPoints": 50000, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "7.5.6", - "targets": [ - { - "expr": "speedtest_download_bits_per_second{}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Download", - "type": "gauge" - }, - { - "cacheTimeout": null, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "id": 0, - "op": "=", - "text": "N/A", - "type": 1, - "value": "null" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "blue", - "value": 20 - } - ] - }, - "unit": "bps" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 6, - "y": 0 - }, - "id": 10, - "interval": null, - "links": [], - "maxDataPoints": 50000, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "7.5.6", - "targets": [ - { - "expr": "speedtest_upload_bits_per_second{}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Upload", - "type": "gauge" - }, - { - "cacheTimeout": null, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 2, - "mappings": [ - { - "id": 0, - "op": "=", - "text": "N/A", - "type": 1, - "value": "null" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 0 - }, - "id": 12, - "interval": null, - "links": [], - "maxDataPoints": 50000, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "7.5.6", - "targets": [ - { - "expr": "speedtest_ping_latency_milliseconds", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Speedtest Ping", - "type": "gauge" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 50, - "gradientMode": "none", - "hideFrom": { - "graph": false, - "legend": false, - "tooltip": false - }, - "lineInterpolation": "linear", - "lineWidth": 0, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bps" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 6, - "links": [], - "maxDataPoints": 50000, - "options": { - "graph": {}, - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right" - }, - "tooltipOptions": { - "mode": "multi" - } - }, - "pluginVersion": "7.4.5", - "repeat": null, - "targets": [ - { - "expr": "speedtest_download_bits_per_second{}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "Download", - "refId": "A" - }, - { - "expr": "speedtest_upload_bits_per_second{}", - "hide": false, - "interval": "", - "legendFormat": "Upload", - "refId": "B" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Speedtest Graph", - "type": "timeseries" - }, - { - "cards": { - "cardHSpacing": 2, - "cardMinWidth": 5, - "cardRound": null, - "cardVSpacing": 2 - }, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateGnYlRd", - "defaultColor": "#757575", - "exponent": 0.5, - "max": 1, - "min": 0, - "mode": "discrete", - "thresholds": [ - { - "$$hashKey": "object:68", - "color": "#37872D", - "tooltip": "Up", - "value": "1" - }, - { - "$$hashKey": "object:72", - "color": "#C4162A", - "tooltip": "Down", - "value": "0" - } - ] - }, - "datasource": "prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 9 - }, - "highlightCards": true, - "id": 14, - "legend": { - "show": false - }, - "links": [], - "nullPointMode": "as empty", - "pageSize": 15, - "seriesFilterIndex": -1, - "statusmap": { - "ConfigVersion": "v1" - }, - "targets": [ - { - "expr": "probe_success", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{instance}}", - "refId": "A" - } - ], - "title": "Uptime", - "tooltip": { - "extraInfo": "", - "freezeOnClick": true, - "items": [], - "show": true, - "showExtraInfo": false, - "showItems": false - }, - "type": "flant-statusmap-panel", - "useMax": true, - "usingPagination": false, - "xAxis": { - "show": true - }, - "yAxis": { - "maxWidth": -1, - "minWidth": -1, - "show": true - }, - "yAxisSort": "metrics", - "yLabel": { - "delimiter": "", - "labelTemplate": "", - "usingSplitLabel": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 18 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "maxPerRow": 12, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": "host", - "repeatDirection": "h", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(probe_http_duration_seconds) by (instance)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{instance}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "HTTP Request Duration", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "5m", - "schemaVersion": 27, - "style": "dark", - "tags": [ - "speedtest", - "ping" - ], - "templating": { - "list": [] - }, - "time": { - "from": "now-7d", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "Internet connection", - "uid": "o9mIe_Aik", - "version": 12 -} \ No newline at end of file diff --git a/grafana/provisioning/dashboards/power-consumption.json b/grafana/provisioning/dashboards/power-consumption.json deleted file mode 100644 index c5afe52..0000000 --- a/grafana/provisioning/dashboards/power-consumption.json +++ /dev/null @@ -1,271 +0,0 @@ -{ - "annotations": { - "list": [ - { - "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": 2, - "links": [], - "panels": [ - { - "datasource": "prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [], - "max": 500, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 150 - }, - { - "color": "red", - "value": 300 - } - ] - }, - "unit": "watt" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 0 - }, - "id": 6, - "options": { - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "expr": "power", - "interval": "", - "legendFormat": "Watts", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Power Consumption (Latest)", - "type": "gauge" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [], - "max": 500, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 150 - }, - { - "color": "red", - "value": 300 - } - ] - }, - "unit": "watt" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 - }, - "id": 4, - "options": { - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "expr": "power", - "interval": "", - "legendFormat": "Watts", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Power Consumption (Average)", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {}, - "unit": "watt" - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.5", - "pointradius": 1, - "points": true, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "power", - "interval": "", - "legendFormat": "Watts", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Power Consumption", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:169", - "decimals": null, - "format": "watt", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:170", - "decimals": null, - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "5m", - "schemaVersion": 27, - "style": "dark", - "tags": [ - "power" - ], - "templating": { - "list": [] - }, - "time": { - "from": "now-6h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Power consumption", - "uid": "i_aeo-uMz", - "version": 3 -} \ No newline at end of file diff --git a/grafana/provisioning/dashboards/starlink-overview.json b/grafana/provisioning/dashboards/starlink-overview.json deleted file mode 100644 index fa9adfd..0000000 --- a/grafana/provisioning/dashboards/starlink-overview.json +++ /dev/null @@ -1,1960 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "description": "Starlink dish metrics", - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "links": [ - { - "icon": "info", - "tags": [], - "targetBlank": true, - "title": "Starlink Debug", - "tooltip": "", - "type": "link", - "url": "http://192.168.100.1/support/debug" - }, - { - "icon": "info", - "tags": [], - "targetBlank": true, - "title": "Starlink Statistics", - "tooltip": "", - "type": "link", - "url": "http://192.168.100.1/support/statistics" - }, - { - "icon": "bolt", - "includeVars": false, - "keepTime": false, - "tags": [], - "targetBlank": true, - "title": "Speedtest.net", - "tooltip": "", - "type": "link", - "url": "https://www.speedtest.net/" - } - ], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "unit": "short" - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 16, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 8, - "interval": "1s", - "legend": { - "alignAsTable": false, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "$$hashKey": "object:934", - "alias": "Download", - "color": "#FADE2A" - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_uplink_throughput_bytes / 1000000", - "instant": false, - "interval": "", - "legendFormat": "Upload", - "refId": "A" - }, - { - "exemplar": false, - "expr": "starlink_dish_downlink_throughput_bytes /1000000", - "hide": false, - "interval": "", - "legendFormat": "Download", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Actual Throughput", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:95", - "decimals": null, - "format": "short", - "label": "Mbps", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:96", - "format": "short", - "label": "Upload (Mbps)", - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": 0 - } - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [], - "max": 9, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "orange", - "value": 5 - }, - { - "color": "yellow", - "value": 6 - }, - { - "color": "green", - "value": 8 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 16, - "y": 0 - }, - "id": 19, - "interval": "1s", - "options": { - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_snr", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Current SNR", - "type": "gauge" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(245, 245, 245)", - "mode": "fixed" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "Unknown", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "Connected", - "to": "", - "type": 1, - "value": "1" - }, - { - "from": "", - "id": 3, - "text": "Searching", - "to": "", - "type": 1, - "value": "2" - }, - { - "from": "", - "id": 4, - "text": "Booting", - "to": "", - "type": 1, - "value": "3" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 20, - "y": 0 - }, - "id": 34, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_state", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "State", - "type": "stat" - }, - { - "datasource": "prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 300 - }, - { - "color": "orange", - "value": 600 - }, - { - "color": "red", - "value": 900 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 22, - "y": 0 - }, - "id": 4, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_last_24h_obstructed_seconds", - "format": "time_series", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "title": "24h Obstructed Time", - "transformations": [], - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 20, - "y": 3 - }, - "id": 13, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_alert_slow_eth_speeds", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Slow Ethernet", - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 22, - "y": 3 - }, - "id": 16, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_alert_unexpected_location", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Unexpected Location", - "type": "stat" - }, - { - "datasource": "prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 16, - "y": 5 - }, - "id": 2, - "options": { - "config": { - "displayModeBar": false - }, - "data": [ - { - "line": { - "color": "red", - "width": 2 - }, - "mode": "lines", - "type": "scatter" - } - ], - "layout": { - "font": { - "color": "darkgrey" - }, - "margin": { - "b": 20, - "t": 30 - }, - "paper_bgcolor": "rgba(0,0,0,0)", - "plot_bgcolor": "rgba(0,0,0,0)", - "xaxis": { - "autorange": false, - "range": [ - "2000-06-13 20:19:55.8287", - "2000-06-18 15:40:49.7421" - ], - "type": "date" - } - }, - "onclick": "\n\n", - "script": "var data = [\n {\n r: [data.series[0].fields[1].values.buffer[0] * 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"0°-30°\",\n marker: {color: \"rgb(255,0,0)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 0° and 30°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, data.series[1].fields[1].values.buffer[0] * 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"30°-60°\",\n marker: {color: \"rgb(255,125,0)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 30° and 60°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, data.series[2].fields[1].values.buffer[0] * 100, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"60°-90°\",\n marker: {color: \"rgb(255,225,0)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 60° and 90°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, data.series[3].fields[1].values.buffer[0] * 100, 0, 0, 0, 0, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"90°-120°\",\n marker: {color: \"rgb(125,255,0)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 90° and 120°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, data.series[4].fields[1].values.buffer[0] * 100, 0, 0, 0, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"120°-150°\",\n marker: {color: \"rgb(0,255,0)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 120° and 150°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, 0, data.series[5].fields[1].values.buffer[0] * 100, 0, 0, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"150°-180°\",\n marker: {color: \"rgb(0,255,125)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 150° and 180°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, 0, 0, data.series[6].fields[1].values.buffer[0] * 100, 0, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"180°-210°\",\n marker: {color: \"rgb(0,255,255)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 180° and 210°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, 0, 0, 0, data.series[7].fields[1].values.buffer[0] * 100, 0, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"210°-240°\",\n marker: {color: \"rgb(0,125,255)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 210° and 240°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, 0, 0, 0, 0, data.series[8].fields[1].values.buffer[0] * 100, 0, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"240°-270°\",\n marker: {color: \"rgb(0,0,255)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 240° and 270°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, 0, 0, 0, 0, 0, data.series[9].fields[1].values.buffer[0] * 100, 0, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"270°-300°\",\n marker: {color: \"rgb(125,0,255)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 270° and 300°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, data.series[10].fields[1].values.buffer[0] * 100, 0],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"300°-330°\",\n marker: {color: \"rgb(255,0,255)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 300° and 330°\",\n hoverinfo: \"text+r\"\n },\n {\n r: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, data.series[11].fields[1].values.buffer[0] * 100],\n theta: [\"0\", \"30\", \"60\", \"90\", \"120\", \"150\", \"180\", \"210\", \"240\", \"270\", \"300\", \"330\"],\n name: \"330°-360°\",\n marker: {color: \"rgb(255,0,125)\"},\n type: \"barpolar\",\n showlegend: false,\n offset: 0,\n hovertext: \"Obstructions between 330° and 360°\",\n hoverinfo: \"text+r\"\n }\n]\nvar layout = {\n font: {size: 12},\n legend: {font: {size: 10}},\n polar: {\n barmode: \"overlay\",\n bargap: 0,\n radialaxis: {ticksuffix: \"%\", angle: 45, dtick: 10},\n angularaxis: {direction: \"clockwise\"}\n }\n}\n\nreturn {data: data, layout: layout}\n" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"0\"}", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"1\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"2\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"3\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"4\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "E" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"5\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "F" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"6\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "G" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"7\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "H" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"8\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "I" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"9\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "J" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"10\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "K" - }, - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"11\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "L" - } - ], - "title": "Wedge Fraction Obstructions", - "type": "ae3e-plotly-panel" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 20, - "y": 5 - }, - "id": 6, - "interval": "1s", - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_currently_obstructed", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Currently Obstructed", - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "purple", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 22, - "y": 5 - }, - "id": 29, - "interval": "1s", - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "expr": "max(speedtest_up)", - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Speed Test", - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 20, - "y": 7 - }, - "id": 14, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_alert_mast_not_near_vertical", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Mast Not Near Vertical", - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 22, - "y": 7 - }, - "id": 17, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_alert_thermal_throttle", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Thermal throttle", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 16, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 10, - "interval": "1s", - "legend": { - "alignAsTable": false, - "avg": true, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "$$hashKey": "object:94", - "alias": "Ping Drop", - "bars": true, - "color": "#F2495C", - "lines": false, - "yaxis": 2 - }, - { - "$$hashKey": "object:613", - "alias": "Latency", - "color": "#5794F2" - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_pop_ping_latency_seconds", - "interval": "", - "legendFormat": "Latency", - "refId": "A" - }, - { - "exemplar": false, - "expr": "starlink_dish_pop_ping_drop_ratio", - "hide": false, - "interval": "", - "legendFormat": "Ping Drop", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Latency/Drop", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:201", - "format": "ms", - "label": "Time", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:202", - "format": "percentunit", - "label": "Drop", - "logBase": 1, - "max": "1", - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 20, - "y": 9 - }, - "id": 12, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_alert_motors_stuck", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Motors Stuck", - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": {}, - "mappings": [ - { - "from": "", - "id": 1, - "text": "False", - "to": "", - "type": 1, - "value": "0" - }, - { - "from": "", - "id": 2, - "text": "True", - "to": "", - "type": 1, - "value": "1" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 22, - "y": 9 - }, - "id": 15, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_alert_thermal_shutdown", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Thermal Shutdown", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "unit": "short" - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 4, - "w": 4, - "x": 16, - "y": 11 - }, - "hiddenSeries": false, - "id": 37, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_wedge_fraction_obstruction_ratio * 100 > 0 ", - "interval": "", - "legendFormat": "{{wedge}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Wedge Fraction Obstructions", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:327", - "format": "short", - "label": "Percent", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:328", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "unit": "short" - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 4, - "w": 4, - "x": 20, - "y": 11 - }, - "hiddenSeries": false, - "id": 36, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_first_nonempty_slot_seconds", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Seconds To Non-empty Slot", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:327", - "format": "short", - "label": null, - "logBase": 2, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:328", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "gridPos": { - "h": 1, - "w": 8, - "x": 16, - "y": 15 - }, - "id": 23, - "options": { - "content": "\n ", - "mode": "markdown" - }, - "pluginVersion": "7.4.5", - "timeFrom": null, - "timeShift": null, - "title": "Best Speedtest.net In Last 24 Hours", - "type": "text" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 16, - "x": 0, - "y": 16 - }, - "hiddenSeries": false, - "id": 26, - "interval": "1s", - "legend": { - "alignAsTable": false, - "avg": true, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "$$hashKey": "object:631", - "alias": "Obstructed", - "bars": true, - "color": "#F2495C", - "lines": false, - "yaxis": 2 - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": false, - "expr": "starlink_dish_snr", - "interval": "", - "legendFormat": "SNR", - "refId": "A" - }, - { - "exemplar": false, - "expr": "starlink_dish_currently_obstructed", - "hide": false, - "interval": "", - "legendFormat": "Obstructed", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "SNR", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:201", - "decimals": 0, - "format": "short", - "label": "SNR", - "logBase": 1, - "max": "9", - "min": "0", - "show": true - }, - { - "$$hashKey": "object:202", - "format": "percentunit", - "label": "Obstructed", - "logBase": 1, - "max": "1", - "min": "0", - "show": true - } - ], - "yaxis": { - "align": true, - "alignLevel": 0 - } - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "yellow", - "mode": "fixed" - }, - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(131, 135, 131)", - "value": null - } - ] - }, - "unit": "Bps" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 3, - "x": 16, - "y": 16 - }, - "id": 21, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "max(max_over_time(speedtest_download_bits_per_second[1d:5m]))", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "title": "Download", - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "purple", - "mode": "fixed" - }, - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(131, 135, 131)", - "value": null - } - ] - }, - "unit": "Bps" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 3, - "x": 19, - "y": 16 - }, - "id": 24, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "max(max_over_time(speedtest_upload_bits_per_second[1d:5m]))", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Upload", - "type": "stat" - }, - { - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "blue", - "mode": "fixed" - }, - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(131, 135, 131)", - "value": null - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 22, - "y": 16 - }, - "id": 25, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.4.5", - "targets": [ - { - "exemplar": false, - "expr": "min(min_over_time(speedtest_ping_latency_milliseconds[1d:5m]))", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Latency", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 8, - "x": 16, - "y": 18 - }, - "hiddenSeries": false, - "id": 32, - "interval": "1s", - "legend": { - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.4.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "$$hashKey": "object:446", - "alias": "Scrape Duration", - "color": "rgb(191, 191, 191)" - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": false, - "expr": "scrape_duration_seconds", - "interval": "", - "legendFormat": "{{ job }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "prometheus Scrape Duration", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:50", - "format": "s", - "label": null, - "logBase": 10, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:51", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "5s", - "schemaVersion": 27, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "hidden": false, - "nowDelay": "", - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m" - ] - }, - "timezone": "", - "title": "Starlink Overview", - "uid": "GG3mnflGz", - "version": 3 -} \ No newline at end of file diff --git a/images/dashboard.png b/images/dashboard.png new file mode 100644 index 0000000..a854202 Binary files /dev/null and b/images/dashboard.png differ diff --git a/prometheus/pinghosts.yaml b/prometheus/pinghosts.yaml index dda6539..038da22 100644 --- a/prometheus/pinghosts.yaml +++ b/prometheus/pinghosts.yaml @@ -1,7 +1,8 @@ - targets: # url;humanname;routing;switch - http://www.google.com/;google.com;external;internetbox - - https://github.com/;github.com;external;internetbox + #- https://github.com/;github.com;external;internetbox - https://www.apple.com/;apple.com;external;internetbox + - https://www.fibracat.cat/;fibracat.cat;external;internetbox # - http://192.168.1.1;internetbox;local;internetbox # - http://192.168.1.42;blackdata;local;orbirouter-attic # - http://192.168.1.101;orbirouter;local;orbirouter diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml index ea34bf2..e0c70f8 100644 --- a/prometheus/prometheus.yml +++ b/prometheus/prometheus.yml @@ -11,7 +11,7 @@ rule_files: scrape_configs: - job_name: 'prometheus' - scrape_interval: 5s + scrape_interval: 60s static_configs: - targets: ['localhost:9090'] @@ -22,28 +22,9 @@ scrape_configs: static_configs: - targets: ['speedtest:9798'] - # This job config only works with my internet-pi configuration currently, - # if you also have the shelly plug enabled there. It will just error out - # by default if you don't have a Shelly Plug on your network. Someday I'll - # work on making this more configurable... - - job_name: 'shelly-plug' - metrics_path: /metrics - scrape_interval: 1m - static_configs: - - targets: ['172.17.0.1:9924'] - - # This job config only works with my internet-pi configuration currently, - # if you also have starlink enabled there. It will just error out by default - # if you don't have Starlink. Someday I'll work on making this more - # configurable... - - job_name: 'starlink' - metrics_path: /metrics - static_configs: - - targets: ['172.17.0.1:9817'] - - job_name: 'ping' metrics_path: /probe - scrape_interval: 5s + scrape_interval: 60s params: module: [http_2xx] # Look for a HTTP 200 response. file_sd_configs: @@ -74,3 +55,7 @@ scrape_configs: - job_name: 'nodeexp' static_configs: - targets: ['nodeexp:9100'] + + - job_name: 'python-portschecker' + static_configs: + - targets: ['portschecker:9116'] \ No newline at end of file diff --git a/pyPrometheusPortChecker/config/config.yml b/pyPrometheusPortChecker/config/config.yml new file mode 100644 index 0000000..0815f09 --- /dev/null +++ b/pyPrometheusPortChecker/config/config.yml @@ -0,0 +1,10 @@ +service_port: 9116 +scrape_frequency: 3600 +host_to_check: yourdomain.is +ports_tocheck: + - 25 + - 80 + - 443 + - 32400 + - 22 + - 51413