Last active
January 30, 2023 19:10
-
-
Save PovilasID/113c5d2ef6fc9fbddcd19864466399a6 to your computer and use it in GitHub Desktop.
An updated version of https://grafana.com/grafana/dashboards/17460-speedtest-tracker-v2/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"__inputs": [ | |
{ | |
"name": "DS_INFLUXDB", | |
"label": "InfluxDB", | |
"description": "", | |
"type": "datasource", | |
"pluginId": "influxdb", | |
"pluginName": "InfluxDB" | |
} | |
], | |
"__elements": {}, | |
"__requires": [ | |
{ | |
"type": "panel", | |
"id": "gauge", | |
"name": "Gauge", | |
"version": "" | |
}, | |
{ | |
"type": "grafana", | |
"id": "grafana", | |
"name": "Grafana", | |
"version": "9.1.4" | |
}, | |
{ | |
"type": "datasource", | |
"id": "influxdb", | |
"name": "InfluxDB", | |
"version": "1.0.0" | |
}, | |
{ | |
"type": "panel", | |
"id": "table", | |
"name": "Table", | |
"version": "" | |
}, | |
{ | |
"type": "panel", | |
"id": "timeseries", | |
"name": "Time series", | |
"version": "" | |
} | |
], | |
"annotations": { | |
"list": [ | |
{ | |
"builtIn": 1, | |
"datasource": { | |
"type": "datasource", | |
"uid": "grafana" | |
}, | |
"enable": true, | |
"hide": true, | |
"iconColor": "rgba(0, 211, 255, 1)", | |
"name": "Annotations & Alerts", | |
"target": { | |
"limit": 100, | |
"matchAny": false, | |
"tags": [], | |
"type": "dashboard" | |
}, | |
"type": "dashboard" | |
} | |
] | |
}, | |
"description": "Dashboard for Speedtest Tracker v2", | |
"editable": true, | |
"fiscalYearStartMonth": 0, | |
"gnetId": 17460, | |
"graphTooltip": 2, | |
"id": null, | |
"links": [ | |
{ | |
"asDropdown": false, | |
"icon": "external link", | |
"includeVars": false, | |
"keepTime": false, | |
"tags": [], | |
"targetBlank": true, | |
"title": "Speedtest-Tracker@GitHub", | |
"tooltip": "GitHub Repository", | |
"type": "link", | |
"url": "https://github.com/alexjustesen/speedtest-tracker" | |
} | |
], | |
"liveNow": false, | |
"panels": [ | |
{ | |
"collapsed": false, | |
"datasource": { | |
"type": "influxdb", | |
"uid": "aIJpPB_nk" | |
}, | |
"gridPos": { | |
"h": 1, | |
"w": 24, | |
"x": 0, | |
"y": 0 | |
}, | |
"id": 115, | |
"panels": [], | |
"title": "Speedtest Tracker v2", | |
"type": "row" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "thresholds" | |
}, | |
"custom": { | |
"align": "center", | |
"displayMode": "auto", | |
"inspect": false, | |
"minWidth": 150 | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "red", | |
"value": 80 | |
} | |
] | |
}, | |
"unit": "none" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Server ID" | |
}, | |
"properties": [ | |
{ | |
"id": "custom.displayMode", | |
"value": "auto" | |
}, | |
{ | |
"id": "mappings", | |
"value": [] | |
}, | |
{ | |
"id": "unit", | |
"value": "string" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "DL Speed (mean)" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
}, | |
{ | |
"id": "custom.displayMode", | |
"value": "gradient-gauge" | |
}, | |
{ | |
"id": "color", | |
"value": { | |
"mode": "continuous-RdYlGr" | |
} | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "UL Speed (mean)" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
}, | |
{ | |
"id": "custom.displayMode", | |
"value": "gradient-gauge" | |
}, | |
{ | |
"id": "color", | |
"value": { | |
"mode": "continuous-RdYlGr" | |
} | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Ping (mean)" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "ms" | |
}, | |
{ | |
"id": "custom.displayMode", | |
"value": "gradient-gauge" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Ping jitter (mean)" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "ms" | |
}, | |
{ | |
"id": "custom.displayMode", | |
"value": "gradient-gauge" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Packet Loss (mean)" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "percent" | |
}, | |
{ | |
"id": "custom.displayMode", | |
"value": "gradient-gauge" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 4, | |
"w": 24, | |
"x": 0, | |
"y": 1 | |
}, | |
"id": 121, | |
"options": { | |
"footer": { | |
"fields": "", | |
"reducer": [ | |
"sum" | |
], | |
"show": false | |
}, | |
"frameIndex": 7, | |
"showHeader": true, | |
"sortBy": [ | |
{ | |
"desc": true, | |
"displayName": "ID" | |
} | |
] | |
}, | |
"pluginVersion": "9.1.4", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"server_id\" or r[\"_field\"] == \"server_name\" or r[\"_field\"] == \"download_bits\" or r[\"_field\"] == \"download_jitter\" or r[\"_field\"] == \"upload_bits\" or r[\"_field\"] == \"upload_jitter\" or r[\"_field\"] == \"ping\" or r[\"_field\"] == \"ping_jitter\" or r[\"_field\"] == \"packet_loss\")\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "A" | |
} | |
], | |
"title": "Average by Server", | |
"transformations": [ | |
{ | |
"id": "merge", | |
"options": {} | |
}, | |
{ | |
"id": "organize", | |
"options": { | |
"excludeByName": { | |
"scheduled": true, | |
"server_id": false | |
}, | |
"indexByName": { | |
"Time": 0, | |
"download_bits": 3, | |
"download_jitter": 4, | |
"packet_loss": 9, | |
"ping": 7, | |
"ping_jitter": 8, | |
"server_id": 1, | |
"server_name": 2, | |
"upload_bits": 5, | |
"upload_jitter": 6 | |
}, | |
"renameByName": { | |
"Time": "Time", | |
"download": "Download (Mbit/s)", | |
"download_bits": "DL Speed", | |
"download_jitter": "DL jitter", | |
"id": "ID", | |
"id {host=\"speedtest\", name=\"speedtest\"}": "", | |
"packet_loss": "Packet Loss", | |
"ping": "Ping", | |
"ping_jitter": "Ping jitter", | |
"scheduled": "", | |
"server_host": "Server Host", | |
"server_id": "Server ID", | |
"server_name": "Server Name", | |
"upload": "Upload (Mbit/s)", | |
"upload_bits": "UL Speed", | |
"upload_jitter": "UL jitter" | |
} | |
} | |
}, | |
{ | |
"id": "groupBy", | |
"options": { | |
"fields": { | |
"DL (Mbit/s)": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"DL Speed": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"Packet Loss": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"Ping": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"Ping (ms)": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"Ping jitter": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"Server ID": { | |
"aggregations": [], | |
"operation": "groupby" | |
}, | |
"Server Name": { | |
"aggregations": [], | |
"operation": "groupby" | |
}, | |
"UL (Mbit/s)": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"UL Speed": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
} | |
} | |
} | |
} | |
], | |
"type": "table" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "thresholds" | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
} | |
] | |
}, | |
"unit": "bps" | |
}, | |
"overrides": [] | |
}, | |
"gridPos": { | |
"h": 6, | |
"w": 6, | |
"x": 0, | |
"y": 5 | |
}, | |
"hideTimeOverride": false, | |
"id": 116, | |
"options": { | |
"orientation": "auto", | |
"reduceOptions": { | |
"calcs": [ | |
"last" | |
], | |
"fields": "/^download_bits$/", | |
"values": false | |
}, | |
"showThresholdLabels": false, | |
"showThresholdMarkers": true, | |
"text": {} | |
}, | |
"pluginVersion": "9.1.4", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"groupBy": [ | |
{ | |
"params": [ | |
"$__interval" | |
], | |
"type": "time" | |
}, | |
{ | |
"params": [ | |
"linear" | |
], | |
"type": "fill" | |
} | |
], | |
"hide": false, | |
"measurement": "speedtest", | |
"orderByTime": "ASC", | |
"policy": "default", | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"download_bits\")\r\n |> drop(columns: [\"server_host\",\"server_name\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "A", | |
"resultFormat": "time_series", | |
"select": [ | |
[ | |
{ | |
"params": [ | |
"download" | |
], | |
"type": "field" | |
}, | |
{ | |
"params": [], | |
"type": "last" | |
} | |
] | |
], | |
"tags": [] | |
} | |
], | |
"title": "Last Test: DL Speed", | |
"type": "gauge" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "palette-classic" | |
}, | |
"custom": { | |
"axisCenteredZero": false, | |
"axisColorMode": "text", | |
"axisGridShow": true, | |
"axisLabel": "", | |
"axisPlacement": "left", | |
"barAlignment": 0, | |
"drawStyle": "line", | |
"fillOpacity": 45, | |
"gradientMode": "opacity", | |
"hideFrom": { | |
"legend": false, | |
"tooltip": false, | |
"viz": false | |
}, | |
"lineInterpolation": "smooth", | |
"lineStyle": { | |
"fill": "solid" | |
}, | |
"lineWidth": 2, | |
"pointSize": 4, | |
"scaleDistribution": { | |
"type": "linear" | |
}, | |
"showPoints": "always", | |
"spanNulls": false, | |
"stacking": { | |
"group": "A", | |
"mode": "none" | |
}, | |
"thresholdsStyle": { | |
"mode": "off" | |
} | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "percentage", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "red", | |
"value": 80 | |
} | |
] | |
}, | |
"unit": "Mbits" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "download_bits" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
}, | |
{ | |
"id": "displayName", | |
"value": "Download Speed" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "upload_bits" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
}, | |
{ | |
"id": "displayName", | |
"value": "Upload Speed" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 12, | |
"w": 18, | |
"x": 6, | |
"y": 5 | |
}, | |
"id": 104, | |
"interval": "", | |
"options": { | |
"legend": { | |
"calcs": [ | |
"lastNotNull", | |
"mean", | |
"max", | |
"min" | |
], | |
"displayMode": "table", | |
"placement": "bottom", | |
"showLegend": true | |
}, | |
"tooltip": { | |
"mode": "multi", | |
"sort": "none" | |
} | |
}, | |
"pluginVersion": "8.5.2", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"download_bits\" or r[\"_field\"] == \"upload_bits\")\r\n |> drop(columns: [\"server_host\",\"server_name\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "C" | |
} | |
], | |
"title": "DL/UL Speed", | |
"type": "timeseries" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "thresholds" | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "red", | |
"value": null | |
}, | |
{ | |
"color": "light-yellow", | |
"value": 7 | |
}, | |
{ | |
"color": "green", | |
"value": 9 | |
} | |
] | |
}, | |
"unit": "bps" | |
}, | |
"overrides": [] | |
}, | |
"gridPos": { | |
"h": 6, | |
"w": 6, | |
"x": 0, | |
"y": 11 | |
}, | |
"id": 117, | |
"interval": "", | |
"options": { | |
"orientation": "auto", | |
"reduceOptions": { | |
"calcs": [ | |
"last" | |
], | |
"fields": "/^upload_bits$/", | |
"values": false | |
}, | |
"showThresholdLabels": false, | |
"showThresholdMarkers": true | |
}, | |
"pluginVersion": "9.1.4", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"groupBy": [ | |
{ | |
"params": [ | |
"$__interval" | |
], | |
"type": "time" | |
}, | |
{ | |
"params": [ | |
"linear" | |
], | |
"type": "fill" | |
} | |
], | |
"measurement": "speedtest", | |
"orderByTime": "ASC", | |
"policy": "default", | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"upload_bits\")\r\n |> drop(columns: [\"server_host\",\"server_name\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "A", | |
"resultFormat": "time_series", | |
"select": [ | |
[ | |
{ | |
"params": [ | |
"upload" | |
], | |
"type": "field" | |
}, | |
{ | |
"params": [], | |
"type": "last" | |
} | |
] | |
], | |
"tags": [] | |
} | |
], | |
"title": "Last Test: UL Speed", | |
"type": "gauge" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "thresholds" | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "red", | |
"value": 50 | |
} | |
] | |
}, | |
"unit": "ms" | |
}, | |
"overrides": [] | |
}, | |
"gridPos": { | |
"h": 7, | |
"w": 6, | |
"x": 0, | |
"y": 17 | |
}, | |
"id": 118, | |
"options": { | |
"orientation": "auto", | |
"reduceOptions": { | |
"calcs": [ | |
"last" | |
], | |
"fields": "/^ping$/", | |
"values": false | |
}, | |
"showThresholdLabels": false, | |
"showThresholdMarkers": true | |
}, | |
"pluginVersion": "9.1.4", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"groupBy": [ | |
{ | |
"params": [ | |
"$__interval" | |
], | |
"type": "time" | |
}, | |
{ | |
"params": [ | |
"linear" | |
], | |
"type": "fill" | |
} | |
], | |
"measurement": "speedtest", | |
"orderByTime": "ASC", | |
"policy": "default", | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"ping\")\r\n |> drop(columns: [\"server_host\",\"server_name\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "A", | |
"resultFormat": "time_series", | |
"select": [ | |
[ | |
{ | |
"params": [ | |
"ping" | |
], | |
"type": "field" | |
}, | |
{ | |
"params": [], | |
"type": "last" | |
} | |
] | |
], | |
"tags": [] | |
} | |
], | |
"title": "Last Test: Ping", | |
"type": "gauge" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "palette-classic" | |
}, | |
"custom": { | |
"axisCenteredZero": false, | |
"axisColorMode": "text", | |
"axisLabel": "", | |
"axisPlacement": "auto", | |
"barAlignment": 0, | |
"drawStyle": "line", | |
"fillOpacity": 30, | |
"gradientMode": "opacity", | |
"hideFrom": { | |
"legend": false, | |
"tooltip": false, | |
"viz": false | |
}, | |
"lineInterpolation": "linear", | |
"lineWidth": 1, | |
"pointSize": 3, | |
"scaleDistribution": { | |
"type": "linear" | |
}, | |
"showPoints": "always", | |
"spanNulls": false, | |
"stacking": { | |
"group": "A", | |
"mode": "none" | |
}, | |
"thresholdsStyle": { | |
"mode": "off" | |
} | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "#EAB839", | |
"value": 20 | |
}, | |
{ | |
"color": "red", | |
"value": 30 | |
} | |
] | |
}, | |
"unit": "ms" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "ping" | |
}, | |
"properties": [ | |
{ | |
"id": "color", | |
"value": { | |
"fixedColor": "green", | |
"mode": "fixed" | |
} | |
}, | |
{ | |
"id": "displayName", | |
"value": "Ping" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "ping_jitter" | |
}, | |
"properties": [ | |
{ | |
"id": "color", | |
"value": { | |
"fixedColor": "yellow", | |
"mode": "fixed" | |
} | |
}, | |
{ | |
"id": "displayName", | |
"value": "Jitter" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 7, | |
"w": 18, | |
"x": 6, | |
"y": 17 | |
}, | |
"id": 119, | |
"interval": "", | |
"options": { | |
"legend": { | |
"calcs": [ | |
"mean", | |
"max", | |
"min" | |
], | |
"displayMode": "table", | |
"placement": "bottom", | |
"showLegend": true | |
}, | |
"tooltip": { | |
"mode": "multi", | |
"sort": "none" | |
} | |
}, | |
"pluginVersion": "8.5.2", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"ping\" or r[\"_field\"] == \"ping_jitter\")\r\n |> drop(columns: [\"server_host\",\"server_name\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "C" | |
} | |
], | |
"title": "Ping", | |
"type": "timeseries" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "thresholds" | |
}, | |
"custom": { | |
"align": "center", | |
"displayMode": "auto", | |
"inspect": false, | |
"minWidth": 150 | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "red", | |
"value": 80 | |
} | |
] | |
}, | |
"unit": "none" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Server ID" | |
}, | |
"properties": [ | |
{ | |
"id": "custom.displayMode", | |
"value": "auto" | |
}, | |
{ | |
"id": "mappings", | |
"value": [] | |
}, | |
{ | |
"id": "unit", | |
"value": "string" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "DL Speed" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "UL Speed" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Ping" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "ms" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Ping jitter" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "ms" | |
} | |
] | |
}, | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "Packet Loss" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "percent" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 6, | |
"w": 24, | |
"x": 0, | |
"y": 24 | |
}, | |
"id": 122, | |
"options": { | |
"footer": { | |
"fields": "", | |
"reducer": [ | |
"sum" | |
], | |
"show": false | |
}, | |
"frameIndex": 7, | |
"showHeader": true, | |
"sortBy": [ | |
{ | |
"desc": true, | |
"displayName": "Time" | |
} | |
] | |
}, | |
"pluginVersion": "9.1.4", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"server_id\" or r[\"_field\"] == \"server_name\" or r[\"_field\"] == \"download_bits\" or r[\"_field\"] == \"download_jitter\" or r[\"_field\"] == \"upload_bits\" or r[\"_field\"] == \"upload_jitter\" or r[\"_field\"] == \"ping\" or r[\"_field\"] == \"ping_jitter\" or r[\"_field\"] == \"packet_loss\")\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "A" | |
} | |
], | |
"title": "All Tests", | |
"transformations": [ | |
{ | |
"id": "merge", | |
"options": {} | |
}, | |
{ | |
"id": "organize", | |
"options": { | |
"excludeByName": { | |
"download_jitter": true, | |
"scheduled": true, | |
"server_id": false, | |
"upload_jitter": true | |
}, | |
"indexByName": { | |
"Time": 0, | |
"download_bits": 3, | |
"download_jitter": 4, | |
"packet_loss": 9, | |
"ping": 7, | |
"ping_jitter": 8, | |
"server_id": 1, | |
"server_name": 2, | |
"upload_bits": 5, | |
"upload_jitter": 6 | |
}, | |
"renameByName": { | |
"Time": "Time", | |
"download": "Download (Mbit/s)", | |
"download_bits": "DL Speed", | |
"download_jitter": "DL jitter", | |
"id": "ID", | |
"id {host=\"speedtest\", name=\"speedtest\"}": "", | |
"packet_loss": "Packet Loss", | |
"ping": "Ping", | |
"ping_jitter": "Ping jitter", | |
"scheduled": "", | |
"server_host": "Server Host", | |
"server_id": "Server ID", | |
"server_name": "Server Name", | |
"upload": "Upload (Mbit/s)", | |
"upload_bits": "UL Speed", | |
"upload_jitter": "UL jitter" | |
} | |
} | |
}, | |
{ | |
"id": "groupBy", | |
"options": { | |
"fields": { | |
"DL (Mbit/s)": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"DL Speed": { | |
"aggregations": [ | |
"mean" | |
] | |
}, | |
"Packet Loss": { | |
"aggregations": [ | |
"mean" | |
] | |
}, | |
"Ping": { | |
"aggregations": [ | |
"mean" | |
] | |
}, | |
"Ping (ms)": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"Ping jitter": { | |
"aggregations": [ | |
"mean" | |
] | |
}, | |
"Server ID": { | |
"aggregations": [] | |
}, | |
"Server Name": { | |
"aggregations": [] | |
}, | |
"Time": { | |
"aggregations": [] | |
}, | |
"UL (Mbit/s)": { | |
"aggregations": [ | |
"mean" | |
], | |
"operation": "aggregate" | |
}, | |
"UL Speed": { | |
"aggregations": [ | |
"mean" | |
] | |
} | |
} | |
} | |
} | |
], | |
"type": "table" | |
}, | |
{ | |
"collapsed": false, | |
"gridPos": { | |
"h": 1, | |
"w": 24, | |
"x": 0, | |
"y": 30 | |
}, | |
"id": 128, | |
"panels": [], | |
"title": "Per server dynamics", | |
"type": "row" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "palette-classic" | |
}, | |
"custom": { | |
"axisCenteredZero": false, | |
"axisColorMode": "text", | |
"axisGridShow": true, | |
"axisLabel": "", | |
"axisPlacement": "left", | |
"barAlignment": 0, | |
"drawStyle": "line", | |
"fillOpacity": 45, | |
"gradientMode": "opacity", | |
"hideFrom": { | |
"legend": false, | |
"tooltip": false, | |
"viz": false | |
}, | |
"lineInterpolation": "smooth", | |
"lineStyle": { | |
"fill": "solid" | |
}, | |
"lineWidth": 2, | |
"pointSize": 4, | |
"scaleDistribution": { | |
"type": "linear" | |
}, | |
"showPoints": "always", | |
"spanNulls": false, | |
"stacking": { | |
"group": "A", | |
"mode": "none" | |
}, | |
"thresholdsStyle": { | |
"mode": "off" | |
} | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "percentage", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "red", | |
"value": 80 | |
} | |
] | |
}, | |
"unit": "Mbits" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "download_bits" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
}, | |
{ | |
"id": "displayName", | |
"value": "${__field.labels.server_name}" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 14, | |
"w": 12, | |
"x": 0, | |
"y": 31 | |
}, | |
"id": 123, | |
"interval": "", | |
"options": { | |
"legend": { | |
"calcs": [ | |
"lastNotNull", | |
"mean", | |
"max", | |
"min" | |
], | |
"displayMode": "table", | |
"placement": "bottom", | |
"showLegend": true | |
}, | |
"tooltip": { | |
"mode": "multi", | |
"sort": "none" | |
} | |
}, | |
"pluginVersion": "8.5.2", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"download_bits\")\r\n |> drop(columns: [\"server_host\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "C" | |
} | |
], | |
"title": "Download speed per server", | |
"type": "timeseries" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "palette-classic" | |
}, | |
"custom": { | |
"axisCenteredZero": false, | |
"axisColorMode": "text", | |
"axisGridShow": true, | |
"axisLabel": "", | |
"axisPlacement": "left", | |
"barAlignment": 0, | |
"drawStyle": "line", | |
"fillOpacity": 45, | |
"gradientMode": "opacity", | |
"hideFrom": { | |
"legend": false, | |
"tooltip": false, | |
"viz": false | |
}, | |
"lineInterpolation": "smooth", | |
"lineStyle": { | |
"fill": "solid" | |
}, | |
"lineWidth": 2, | |
"pointSize": 4, | |
"scaleDistribution": { | |
"type": "linear" | |
}, | |
"showPoints": "always", | |
"spanNulls": false, | |
"stacking": { | |
"group": "A", | |
"mode": "none" | |
}, | |
"thresholdsStyle": { | |
"mode": "off" | |
} | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "percentage", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "red", | |
"value": 80 | |
} | |
] | |
}, | |
"unit": "Mbits" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "upload_bits" | |
}, | |
"properties": [ | |
{ | |
"id": "unit", | |
"value": "bps" | |
}, | |
{ | |
"id": "displayName", | |
"value": "${__field.labels.server_name}" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 14, | |
"w": 12, | |
"x": 12, | |
"y": 31 | |
}, | |
"id": 124, | |
"interval": "", | |
"options": { | |
"legend": { | |
"calcs": [ | |
"lastNotNull", | |
"mean", | |
"max", | |
"min" | |
], | |
"displayMode": "table", | |
"placement": "bottom", | |
"showLegend": true | |
}, | |
"tooltip": { | |
"mode": "multi", | |
"sort": "none" | |
} | |
}, | |
"pluginVersion": "8.5.2", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"upload_bits\")\r\n |> drop(columns: [\"server_host\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "C" | |
} | |
], | |
"title": "Upload speed by server", | |
"type": "timeseries" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "palette-classic" | |
}, | |
"custom": { | |
"axisCenteredZero": false, | |
"axisColorMode": "text", | |
"axisLabel": "", | |
"axisPlacement": "auto", | |
"barAlignment": 0, | |
"drawStyle": "line", | |
"fillOpacity": 30, | |
"gradientMode": "opacity", | |
"hideFrom": { | |
"legend": false, | |
"tooltip": false, | |
"viz": false | |
}, | |
"lineInterpolation": "linear", | |
"lineWidth": 1, | |
"pointSize": 3, | |
"scaleDistribution": { | |
"type": "linear" | |
}, | |
"showPoints": "always", | |
"spanNulls": false, | |
"stacking": { | |
"group": "A", | |
"mode": "none" | |
}, | |
"thresholdsStyle": { | |
"mode": "off" | |
} | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "#EAB839", | |
"value": 20 | |
}, | |
{ | |
"color": "red", | |
"value": 30 | |
} | |
] | |
}, | |
"unit": "ms" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "ping" | |
}, | |
"properties": [ | |
{ | |
"id": "displayName", | |
"value": "${__field.labels.server_name}" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 13, | |
"w": 12, | |
"x": 0, | |
"y": 45 | |
}, | |
"id": 125, | |
"interval": "", | |
"options": { | |
"legend": { | |
"calcs": [ | |
"mean", | |
"max", | |
"min" | |
], | |
"displayMode": "table", | |
"placement": "bottom", | |
"showLegend": true | |
}, | |
"tooltip": { | |
"mode": "multi", | |
"sort": "none" | |
} | |
}, | |
"pluginVersion": "8.5.2", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"ping\")\r\n |> drop(columns: [\"server_host\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "C" | |
} | |
], | |
"title": "Ping per serever", | |
"type": "timeseries" | |
}, | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"description": "", | |
"fieldConfig": { | |
"defaults": { | |
"color": { | |
"mode": "palette-classic" | |
}, | |
"custom": { | |
"axisCenteredZero": false, | |
"axisColorMode": "text", | |
"axisLabel": "", | |
"axisPlacement": "auto", | |
"barAlignment": 0, | |
"drawStyle": "line", | |
"fillOpacity": 30, | |
"gradientMode": "opacity", | |
"hideFrom": { | |
"legend": false, | |
"tooltip": false, | |
"viz": false | |
}, | |
"lineInterpolation": "linear", | |
"lineWidth": 1, | |
"pointSize": 3, | |
"scaleDistribution": { | |
"type": "linear" | |
}, | |
"showPoints": "always", | |
"spanNulls": false, | |
"stacking": { | |
"group": "A", | |
"mode": "none" | |
}, | |
"thresholdsStyle": { | |
"mode": "off" | |
} | |
}, | |
"decimals": 1, | |
"mappings": [], | |
"thresholds": { | |
"mode": "absolute", | |
"steps": [ | |
{ | |
"color": "green", | |
"value": null | |
}, | |
{ | |
"color": "#EAB839", | |
"value": 20 | |
}, | |
{ | |
"color": "red", | |
"value": 30 | |
} | |
] | |
}, | |
"unit": "ms" | |
}, | |
"overrides": [ | |
{ | |
"matcher": { | |
"id": "byName", | |
"options": "ping" | |
}, | |
"properties": [ | |
{ | |
"id": "displayName", | |
"value": "${__field.labels.server_name}" | |
} | |
] | |
} | |
] | |
}, | |
"gridPos": { | |
"h": 13, | |
"w": 12, | |
"x": 12, | |
"y": 45 | |
}, | |
"id": 129, | |
"interval": "", | |
"options": { | |
"legend": { | |
"calcs": [ | |
"mean", | |
"max", | |
"min" | |
], | |
"displayMode": "table", | |
"placement": "bottom", | |
"showLegend": true | |
}, | |
"tooltip": { | |
"mode": "multi", | |
"sort": "none" | |
} | |
}, | |
"pluginVersion": "8.5.2", | |
"targets": [ | |
{ | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"hide": false, | |
"query": "from(bucket: \"${bucket}\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r[\"_measurement\"] == \"speedtest\")\r\n |> filter(fn: (r) => r[\"server_name\"] =~ /^${server:regex}$/)\r\n |> filter(fn: (r) => r[\"_field\"] == \"ping\")\r\n |> drop(columns: [\"server_host\"])\r\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\r\n |> yield(name: \"last\")", | |
"refId": "C" | |
} | |
], | |
"title": "Ping per serever", | |
"type": "timeseries" | |
} | |
], | |
"refresh": "15m", | |
"schemaVersion": 37, | |
"style": "dark", | |
"tags": [ | |
"speedtest-tracker-v2", | |
"influxdb2", | |
"Flux" | |
], | |
"templating": { | |
"list": [ | |
{ | |
"current": {}, | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"definition": "buckets()", | |
"hide": 0, | |
"includeAll": false, | |
"multi": false, | |
"name": "bucket", | |
"options": [], | |
"query": "buckets()", | |
"refresh": 1, | |
"regex": "", | |
"skipUrlSync": false, | |
"sort": 5, | |
"type": "query" | |
}, | |
{ | |
"current": {}, | |
"datasource": { | |
"type": "influxdb", | |
"uid": "${DS_INFLUXDB}" | |
}, | |
"definition": "import \"influxdata/influxdb/schema\"\r\n\r\nschema.tagValues(bucket: \"speedtest-tracker\", tag: \"server_name\")", | |
"hide": 0, | |
"includeAll": true, | |
"label": "Server", | |
"multi": true, | |
"name": "server", | |
"options": [], | |
"query": "import \"influxdata/influxdb/schema\"\r\n\r\nschema.tagValues(bucket: \"speedtest-tracker\", tag: \"server_name\")", | |
"refresh": 1, | |
"regex": "", | |
"skipUrlSync": false, | |
"sort": 0, | |
"type": "query" | |
} | |
] | |
}, | |
"time": { | |
"from": "now-24h", | |
"to": "now" | |
}, | |
"timepicker": { | |
"refresh_intervals": [ | |
"5s", | |
"10s", | |
"30s", | |
"1m", | |
"5m", | |
"15m", | |
"30m", | |
"1h", | |
"2h", | |
"1d" | |
] | |
}, | |
"timezone": "", | |
"title": "Speedtest Tracker v2", | |
"uid": "AX734aDLp", | |
"version": 9, | |
"weekStart": "" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment