From 0f79553e05a6971d7077eebcc85ea3c6afc9792f Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Tue, 27 Apr 2021 12:50:42 -0500 Subject: [PATCH] Issue #6: Add Starlink Overview dashboard. --- .../dashboards/starlink-overview.json | 1933 +++++++++++++++++ 1 file changed, 1933 insertions(+) create mode 100644 grafana/provisioning/dashboards/starlink-overview.json diff --git a/grafana/provisioning/dashboards/starlink-overview.json b/grafana/provisioning/dashboards/starlink-overview.json new file mode 100644 index 0000000..f1c444d --- /dev/null +++ b/grafana/provisioning/dashboards/starlink-overview.json @@ -0,0 +1,1933 @@ +{ + "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": { + "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.5.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:934", + "alias": "Download", + "color": "#FADE2A" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "starlink_dish_uplink_throughput_bytes / 1000000", + "instant": false, + "interval": "", + "legendFormat": "Upload", + "refId": "A" + }, + { + "exemplar": true, + "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" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "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" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "starlink_dish_state", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "State", + "type": "stat" + }, + { + "datasource": "Prometheus", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "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" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "starlink_dish_alert_slow_eth_speeds", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Slow Ethernet", + "type": "stat" + }, + { + "datasource": "Prometheus", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "starlink_dish_alert_unexpected_location", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Unexpected Location", + "type": "stat" + }, + { + "datasource": "Prometheus", + "description": "", + "fieldConfig": { + "defaults": {}, + "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": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"0\"}", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"1\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"2\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"3\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"4\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"5\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"6\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "G" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"7\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "H" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"8\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "I" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"9\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "J" + }, + { + "exemplar": true, + "expr": "starlink_dish_wedge_fraction_obstruction_ratio{wedge=\"10\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "K" + }, + { + "exemplar": true, + "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" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "starlink_dish_currently_obstructed", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Currently Obstructed", + "type": "stat" + }, + { + "datasource": "Prometheus", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "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.5.4", + "targets": [ + { + "expr": "max(speedTest_running)", + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Speed Test", + "type": "stat" + }, + { + "datasource": "Prometheus", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "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" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "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": {}, + "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.5.4", + "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": true, + "expr": "starlink_dish_pop_ping_latency_seconds", + "interval": "", + "legendFormat": "Latency", + "refId": "A" + }, + { + "exemplar": true, + "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" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "starlink_dish_alert_motors_stuck", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Motors Stuck", + "type": "stat" + }, + { + "datasource": "Prometheus", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "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": { + "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.5.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "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": { + "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.5.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "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": {}, + "overrides": [] + }, + "gridPos": { + "h": 1, + "w": 8, + "x": 16, + "y": 15 + }, + "id": 23, + "options": { + "content": "\n ", + "mode": "markdown" + }, + "pluginVersion": "7.5.4", + "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": {}, + "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.5.4", + "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": true, + "expr": "starlink_dish_snr", + "interval": "", + "legendFormat": "SNR", + "refId": "A" + }, + { + "exemplar": true, + "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" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "max(max_over_time(speedTest_download_speed_Bps[1d:5m]))", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "title": "Download", + "type": "stat" + }, + { + "datasource": "Prometheus", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "purple", + "mode": "fixed" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "max(max_over_time(speedTest_upload_speed_Bps[1d:5m]))", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Upload", + "type": "stat" + }, + { + "datasource": "Prometheus", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "blue", + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(131, 135, 131)", + "value": null + } + ] + }, + "unit": "s" + }, + "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.5.4", + "targets": [ + { + "exemplar": true, + "expr": "min(min_over_time(speedTest_latency_seconds[1d:5m]))", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Latency", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Prometheus", + "fieldConfig": { + "defaults": {}, + "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.5.4", + "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": true, + "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": 1 +} \ No newline at end of file