From 246056e055af9f837b5be6cc8dc11209763399d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Mon, 16 Jan 2023 01:05:32 -0700 Subject: [PATCH 1/4] Update schedulerAdvanced.py --- src/schedulerAdvanced.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/schedulerAdvanced.py b/src/schedulerAdvanced.py index 20a46268..ff05bff2 100644 --- a/src/schedulerAdvanced.py +++ b/src/schedulerAdvanced.py @@ -57,7 +57,8 @@ if __name__ == '__main__': ads.add_job(refreshBandwidthGraphs, 'interval', seconds=10) # schedule.every(30).seconds.do(refreshLatencyGraphs) - ads.add_job(refreshLatencyGraphs, 'interval', seconds=30) + # Commented out until refreshLatencyGraphs works in v.14 + # ads.add_job(refreshLatencyGraphs, 'interval', seconds=30) # while True: # schedule.run_pending() From 6b4432e89946781880cea61aadd9ca51e1c65aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Mon, 16 Jan 2023 01:08:03 -0700 Subject: [PATCH 2/4] Update README.md --- src/README.md | 47 +++-------------------------------------------- 1 file changed, 3 insertions(+), 44 deletions(-) diff --git a/src/README.md b/src/README.md index b90d8a3f..965f51ca 100644 --- a/src/README.md +++ b/src/README.md @@ -1,46 +1,5 @@ -# v1.3 (IPv4 + IPv6) +# v1.4 (Alpha) -![image](https://user-images.githubusercontent.com/22501920/202913336-256b591b-f372-44fe-995c-5e08ec08a925.png) +![image](https://i0.wp.com/libreqos.io/wp-content/uploads/2023/01/v1.4-alpha-2.png?w=3664&ssl=1) -## Features - -### Fast TCP Latency Tracking - -[@thebracket](https://github.com/thebracket/) has created [cpumap-pping](https://github.com/thebracket/cpumap-pping) which merges the functionality of the [xdp-cpumap-tc](https://github.com/xdp-project/xdp-cpumap-tc) and [ePPing](https://github.com/xdp-project/bpf-examples/tree/master/pping) projects, while keeping CPU use within ~1% of xdp-cpumap-tc. - -### Integrations - -- Added Splynx integration -- UISP integration overhaul by [@thebracket](https://github.com/thebracket/) -- [LMS integration](https://github.com/interduo/LMSLibreQoS) for Polish ISPs by [@interduo](https://github.com/interduo) - - -### Partial Queue Reload - -In v1.2 and prior, the the entire queue structure had to be reloaded to make any changes. This led to a few milliseconds of packet loss for some clients each time that reload happened. The scheduled.py was set to reload all queues each morning at 4AM to avoid any potential disruptions that could theoretically cause. - -Starting with v1.3 - LibreQoS tracks the state of the queues, and can do incremental changes without a full reload of all queues. Every 30 minutes - scheduler.py runs the CRM import, and runs a partial reload affecting just the queues that have changed. It still runs a full reload at 4AM. - -### v1.3 Improvements to help scale - -#### HTB major:minor handle - -HTB uses a hex handle for classes. It is two 16-bit hex values joined by a colon - major:minor (:). In LibreQoS, each CPU core uses a different major handle. - -In v1.2 and prior, the minor handle was unique across all CPUs, meaning only 30k subscribers could be added total. - -Starting with LibreQoS v1.3 - minor handles are counted independently by CPU core. With this change, the maximum possible subscriber qdiscs/classes goes from a hard limit of 30k to instead be 30k x CPU core count. So for a higher end system with a 64 core processor such as the AMD EPYC™ 7713P, that would mean ~1.9 million possible subscriber classes. Of course CPU use will be the bottleneck well before class handles are in that scenario. But at least we have that arbitrary 30k limit out of the way. - -#### "Circuit ID" Unique Identifier - -In order to improve queue reload time in v1.3, it was necessary to use a unique identifier for each circuit. We went with Circuit ID. It can be a number or string, it just needs to be unique between circuits, and the same for multiple devices in the same circuit. This allows us to avoid costly lookups when sorting through the queue structure. - -If you have your own script creating ShapedDevices.csv - you could use your CRM's unique identifier for customer services / circuits to serve as this Circuit ID. The UISP and Splynx integrations already do this automatically. - -## Compatibility Notes - -The most major changes are the renaming of the fqorCake variable to "sqm", -and the addition of the Circuit identifier field. - -Also after upgrading to LibreQos v1.3, a reboot is required to clear out the -old ebpf code. +See [wiki here](https://github.com/LibreQoE/LibreQoS/wiki/v1.4) From 56f842371dba0312c2c892121e3516bd6fe3dd68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Mon, 16 Jan 2023 01:10:31 -0700 Subject: [PATCH 3/4] Delete influxDBdashboardTemplate.json --- src/influxDBdashboardTemplate.json | 2390 ---------------------------- 1 file changed, 2390 deletions(-) delete mode 100644 src/influxDBdashboardTemplate.json diff --git a/src/influxDBdashboardTemplate.json b/src/influxDBdashboardTemplate.json deleted file mode 100644 index 97505429..00000000 --- a/src/influxDBdashboardTemplate.json +++ /dev/null @@ -1,2390 +0,0 @@ -{ - "meta": { - "version": "1", - "type": "dashboard", - "name": "LibreQoS-Template", - "description": "template created from dashboard: LibreQoS" - }, - "content": { - "data": { - "type": "dashboard", - "attributes": { - "name": "LibreQoS", - "description": "" - }, - "relationships": { - "label": { - "data": [] - }, - "cell": { - "data": [ - { - "type": "cell", - "id": "0a3625ffd5af0000" - }, - { - "type": "cell", - "id": "0a3625ffd6ef0000" - }, - { - "type": "cell", - "id": "0a3625ffd72f0000" - }, - { - "type": "cell", - "id": "0a3625ffd76f0000" - }, - { - "type": "cell", - "id": "0a3625ffd7af0000" - }, - { - "type": "cell", - "id": "0a3625ffd7ef0000" - }, - { - "type": "cell", - "id": "0a3625ffe0ef0000" - }, - { - "type": "cell", - "id": "0a3625ffe22f0000" - }, - { - "type": "cell", - "id": "0a3625ffe3af0000" - }, - { - "type": "cell", - "id": "0a3625ffe3ef0000" - }, - { - "type": "cell", - "id": "0a3625ffe42f0000" - }, - { - "type": "cell", - "id": "0a3625ffe46f0000" - }, - { - "type": "cell", - "id": "0a3625ffec6f0000" - }, - { - "type": "cell", - "id": "0a3625fff02f0000" - }, - { - "type": "cell", - "id": "0a3702644613a000" - }, - { - "type": "cell", - "id": "0a3e54826cfc2000" - }, - { - "type": "cell", - "id": "0a3e55b7fdfc2000" - }, - { - "type": "cell", - "id": "0a45cb04f67c2000" - } - ] - }, - "variable": { - "data": [] - } - } - }, - "included": [ - { - "id": "0a3625ffd5af0000", - "type": "cell", - "attributes": { - "x": 0, - "y": 0, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffd5af0000" - } - } - } - }, - { - "id": "0a3625ffd6ef0000", - "type": "cell", - "attributes": { - "x": 5, - "y": 8, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffd6ef0000" - } - } - } - }, - { - "id": "0a3625ffd72f0000", - "type": "cell", - "attributes": { - "x": 0, - "y": 12, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffd72f0000" - } - } - } - }, - { - "id": "0a3625ffd76f0000", - "type": "cell", - "attributes": { - "x": 5, - "y": 0, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffd76f0000" - } - } - } - }, - { - "id": "0a3625ffd7af0000", - "type": "cell", - "attributes": { - "x": 10, - "y": 0, - "w": 2, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffd7af0000" - } - } - } - }, - { - "id": "0a3625ffd7ef0000", - "type": "cell", - "attributes": { - "x": 10, - "y": 16, - "w": 2, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffd7ef0000" - } - } - } - }, - { - "id": "0a3625ffe0ef0000", - "type": "cell", - "attributes": { - "x": 0, - "y": 24, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffe0ef0000" - } - } - } - }, - { - "id": "0a3625ffe22f0000", - "type": "cell", - "attributes": { - "x": 0, - "y": 20, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffe22f0000" - } - } - } - }, - { - "id": "0a3625ffe3af0000", - "type": "cell", - "attributes": { - "x": 5, - "y": 16, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffe3af0000" - } - } - } - }, - { - "id": "0a3625ffe3ef0000", - "type": "cell", - "attributes": { - "x": 0, - "y": 16, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffe3ef0000" - } - } - } - }, - { - "id": "0a3625ffe42f0000", - "type": "cell", - "attributes": { - "x": 5, - "y": 20, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffe42f0000" - } - } - } - }, - { - "id": "0a3625ffe46f0000", - "type": "cell", - "attributes": { - "x": 0, - "y": 4, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffe46f0000" - } - } - } - }, - { - "id": "0a3625ffec6f0000", - "type": "cell", - "attributes": { - "x": 5, - "y": 12, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625ffec6f0000" - } - } - } - }, - { - "id": "0a3625fff02f0000", - "type": "cell", - "attributes": { - "x": 10, - "y": 4, - "w": 2, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3625fff02f0000" - } - } - } - }, - { - "id": "0a3702644613a000", - "type": "cell", - "attributes": { - "x": 10, - "y": 8, - "w": 2, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3702644613a000" - } - } - } - }, - { - "id": "0a3e54826cfc2000", - "type": "cell", - "attributes": { - "x": 5, - "y": 4, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3e54826cfc2000" - } - } - } - }, - { - "id": "0a3e55b7fdfc2000", - "type": "cell", - "attributes": { - "x": 10, - "y": 12, - "w": 2, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a3e55b7fdfc2000" - } - } - } - }, - { - "id": "0a45cb04f67c2000", - "type": "cell", - "attributes": { - "x": 0, - "y": 8, - "w": 5, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "0a45cb04f67c2000" - } - } - } - }, - { - "type": "view", - "id": "0a3625ffd5af0000", - "attributes": { - "name": "Download Bandwidth | Nodes", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Bandwidth\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> filter(fn: (r) => r[\"_field\"] == \"Download\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "0", - "" - ], - "label": "bits per second", - "prefix": "", - "suffix": "bps", - "base": "10", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "stacked", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffd6ef0000", - "attributes": { - "name": "Utilization | Nodes", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Utilization\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "Percent Utilization", - "prefix": "", - "suffix": "%", - "base": "2", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffd72f0000", - "attributes": { - "name": "Download Bandwidth | Circuits", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Bandwidth\")\n |> filter(fn: (r) => r[\"Type\"] == \"Circuit\")\n |> filter(fn: (r) => r[\"_field\"] == \"Download\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "bits per second", - "prefix": "", - "suffix": "bps", - "base": "10", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffd76f0000", - "attributes": { - "name": "Upload Bandwidth | Nodes", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Bandwidth\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> filter(fn: (r) => r[\"_field\"] == \"Upload\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "0", - "" - ], - "label": "bits per second", - "prefix": "", - "suffix": "bps", - "base": "10", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "stacked", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffd7af0000", - "attributes": { - "name": "Utilization | Nodes", - "properties": { - "shape": "chronograf-v2", - "type": "table", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Utilization\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> last()\n |> group(columns: [\"Type\", \"_time\"])\n\n |> sort(columns: [\"_value\", \"Device\"], desc: true)\n |> keep(columns: [\"_value\", \"Device\"])\n |> top(n:9, columns: [\"_value\"])", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "colors": [ - { - "id": "base", - "type": "text", - "hex": "#4591ED", - "name": "ocean", - "value": 0 - }, - { - "id": "ebf165e1-871a-4b10-b558-e039f376be40", - "type": "text", - "hex": "#FFD255", - "name": "thunder", - "value": 25 - }, - { - "id": "8b4b10e5-5b16-41b0-8f5b-97f22f8eace2", - "type": "text", - "hex": "#F95F53", - "name": "curacao", - "value": 50 - }, - { - "id": "a36e8317-8138-46a4-bec4-a7588d9f348c", - "type": "text", - "hex": "#BF3D5E", - "name": "ruby", - "value": 75 - } - ], - "tableOptions": { - "verticalTimeAxis": true, - "sortBy": { - "internalName": "_value", - "displayName": "_value", - "visible": true - }, - "wrapping": "", - "fixFirstColumn": false - }, - "fieldOptions": [ - { - "internalName": "_start", - "displayName": "_start", - "visible": false - }, - { - "internalName": "_stop", - "displayName": "_stop", - "visible": false - }, - { - "internalName": "_time", - "displayName": "_time", - "visible": false - }, - { - "internalName": "Device", - "displayName": "Device", - "visible": true - }, - { - "internalName": "_value", - "displayName": "_value", - "visible": true - }, - { - "internalName": "ParentNode", - "displayName": "ParentNode", - "visible": false - }, - { - "internalName": "Type", - "displayName": "Type", - "visible": false - }, - { - "internalName": "_field", - "displayName": "_field", - "visible": false - }, - { - "internalName": "_measurement", - "displayName": "_measurement", - "visible": false - } - ], - "timeFormat": "YYYY-MM-DD HH:mm:ss", - "decimalPlaces": { - "isEnforced": false, - "digits": 0 - }, - "note": "", - "showNoteWhenEmpty": false - } - } - }, - { - "type": "view", - "id": "0a3625ffd7ef0000", - "attributes": { - "name": "Overload | Nodes", - "properties": { - "shape": "chronograf-v2", - "type": "table", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Overload\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> last()\n |> group(columns: [\"Type\", \"_time\"])\n |> map(fn: (r) => ({ r with _value: r._value}))\n \n |> sort(columns: [\"_value\", \"Device\"], desc: true)\n |> keep(columns: [\"_value\", \"Device\"])\n |> top(n:9, columns: [\"_value\"])", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "colors": [ - { - "id": "base", - "type": "text", - "hex": "#4591ED", - "name": "ocean", - "value": 0 - }, - { - "id": "ebf165e1-871a-4b10-b558-e039f376be40", - "type": "text", - "hex": "#FFD255", - "name": "thunder", - "value": 25 - }, - { - "id": "8b4b10e5-5b16-41b0-8f5b-97f22f8eace2", - "type": "text", - "hex": "#F95F53", - "name": "curacao", - "value": 50 - }, - { - "id": "a36e8317-8138-46a4-bec4-a7588d9f348c", - "type": "text", - "hex": "#BF3D5E", - "name": "ruby", - "value": 75 - } - ], - "tableOptions": { - "verticalTimeAxis": true, - "sortBy": { - "internalName": "_value", - "displayName": "_value", - "visible": true - }, - "wrapping": "", - "fixFirstColumn": false - }, - "fieldOptions": [ - { - "internalName": "Device", - "displayName": "Device", - "visible": true - }, - { - "internalName": "_value", - "displayName": "_value", - "visible": true - } - ], - "timeFormat": "YYYY-MM-DD HH:mm:ss", - "decimalPlaces": { - "isEnforced": false, - "digits": 0 - }, - "note": "", - "showNoteWhenEmpty": false - } - } - }, - { - "type": "view", - "id": "0a3625ffe0ef0000", - "attributes": { - "name": "Overload Drops | Nodes", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Overload\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "Percent Utilization", - "prefix": "", - "suffix": "%", - "base": "2", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffe22f0000", - "attributes": { - "name": "Download by Tin", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Tins Assigned\")\n |> filter(fn: (r) => r[\"_field\"] == \"Download\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "Percent", - "prefix": "", - "suffix": "%", - "base": "2", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffe3af0000", - "attributes": { - "name": "Drops by Tin | Upload", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Tin Drop Percentage\")\n |> filter(fn: (r) => r[\"_field\"] == \"Upload\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "Percent Drop", - "prefix": "", - "suffix": "%", - "base": "2", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffe3ef0000", - "attributes": { - "name": "Drops by Tin | Download", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Tin Drop Percentage\")\n |> filter(fn: (r) => r[\"_field\"] == \"Download\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "Percent Drop", - "prefix": "", - "suffix": "%", - "base": "2", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffe42f0000", - "attributes": { - "name": "Upload by Tin", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Tins Assigned\")\n |> filter(fn: (r) => r[\"_field\"] == \"Upload\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "Percent", - "prefix": "", - "suffix": "%", - "base": "2", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffe46f0000", - "attributes": { - "name": "TCP Latency | Circuits", - "properties": { - "shape": "chronograf-v2", - "type": "histogram", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"TCP Latency\")\n |> filter(fn: (r) => r[\"Type\"] == \"Circuit\")\n |> filter(fn: (r) => r[\"_field\"] == \"TCP Latency\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "colors": [ - { - "id": "fd2dc3e9-d00b-44bd-97c0-b39748787656", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "9a32b733-aac8-4ee7-8f9e-41c0600b4270", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "3247c366-9139-4bef-aadc-78e5df8ef217", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "xColumn": "_value", - "fillColumns": [ - "ParentNode" - ], - "xAxisLabel": "RTT (ms)", - "position": "stacked", - "binCount": 140, - "note": "", - "showNoteWhenEmpty": false, - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625ffec6f0000", - "attributes": { - "name": "Upload Bandwidth | Circuits", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Bandwidth\")\n |> filter(fn: (r) => r[\"Type\"] == \"Circuit\")\n |> filter(fn: (r) => r[\"_field\"] == \"Upload\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "bits per second", - "prefix": "", - "suffix": "bps", - "base": "10", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "d3804aa0-9930-45e5-879e-8a79b306d2bc", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "ff778217-93b4-41c1-baf9-5eac71c6969a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "770d44dd-3a18-4132-af57-86f3a5fb4738", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3625fff02f0000", - "attributes": { - "name": "TCP Latency | Nodes | Standard View", - "properties": { - "shape": "chronograf-v2", - "type": "table", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"TCP Latency\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> aggregateWindow(every: v.windowPeriod, fn: median, createEmpty: false)\n |> last()\n |> group(columns: [\"Type\", \"_time\"])\n |> sort(columns: [\"_value\", \"Device\"], desc: true)\n |> keep(columns: [\"_value\", \"Device\"])\n |> top(n:9, columns: [\"_value\"])", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "colors": [ - { - "id": "base", - "type": "text", - "hex": "#32B08C", - "name": "viridian", - "value": 0 - }, - { - "id": "ebf165e1-871a-4b10-b558-e039f376be40", - "type": "text", - "hex": "#FFD255", - "name": "thunder", - "value": 75 - }, - { - "id": "a36e8317-8138-46a4-bec4-a7588d9f348c", - "type": "text", - "hex": "#BF3D5E", - "name": "ruby", - "value": 125 - } - ], - "tableOptions": { - "verticalTimeAxis": true, - "sortBy": { - "internalName": "_value", - "displayName": "_value", - "visible": true - }, - "wrapping": "", - "fixFirstColumn": false - }, - "fieldOptions": [ - { - "internalName": "Device", - "displayName": "Device", - "visible": true - }, - { - "internalName": "_value", - "displayName": "_value", - "visible": true - } - ], - "timeFormat": "YYYY-MM-DD HH:mm:ss", - "decimalPlaces": { - "isEnforced": false, - "digits": 0 - }, - "note": "", - "showNoteWhenEmpty": false - } - } - }, - { - "type": "view", - "id": "0a3702644613a000", - "attributes": { - "name": "TCP Latency | Nodes | Metaverse-Ready View", - "properties": { - "shape": "chronograf-v2", - "type": "table", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"TCP Latency\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> aggregateWindow(every: v.windowPeriod, fn: median, createEmpty: false)\n |> last()\n |> group(columns: [\"Type\", \"_time\"])\n |> sort(columns: [\"_value\", \"Device\"], desc: true)\n |> keep(columns: [\"_value\", \"Device\"])\n |> top(n:9, columns: [\"_value\"])", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "colors": [ - { - "id": "base", - "type": "text", - "hex": "#4591ED", - "name": "ocean", - "value": 0 - }, - { - "id": "836815c4-8f0b-4296-9797-c4d2c66454da", - "type": "text", - "hex": "#32B08C", - "name": "viridian", - "value": 9 - }, - { - "id": "a36e8317-8138-46a4-bec4-a7588d9f348c", - "type": "text", - "hex": "#FFB94A", - "name": "pineapple", - "value": 20 - }, - { - "id": "dfec4920-0c00-4788-b3e2-d3cefcf9dbf6", - "type": "text", - "hex": "#F95F53", - "name": "curacao", - "value": 50 - }, - { - "id": "d322c223-c8d2-4ee2-9e26-fdd00b9911d9", - "type": "text", - "hex": "#BF3D5E", - "name": "ruby", - "value": 70 - }, - { - "id": "bb134440-7624-4055-884e-5712af40bf55", - "type": "text", - "hex": "#DC4E58", - "name": "fire", - "value": 100 - } - ], - "tableOptions": { - "verticalTimeAxis": true, - "sortBy": { - "internalName": "_value", - "displayName": "_value", - "visible": true - }, - "wrapping": "", - "fixFirstColumn": false - }, - "fieldOptions": [ - { - "internalName": "Device", - "displayName": "Device", - "visible": true - }, - { - "internalName": "_value", - "displayName": "_value", - "visible": true - } - ], - "timeFormat": "YYYY-MM-DD HH:mm:ss", - "decimalPlaces": { - "isEnforced": false, - "digits": 0 - }, - "note": "", - "showNoteWhenEmpty": false - } - } - }, - { - "type": "view", - "id": "0a3e54826cfc2000", - "attributes": { - "name": "TCP Latency | Network", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": " from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"TCP Latency\")\n |> filter(fn: (r) => r[\"Type\"] == \"Network\")\n |> filter(fn: (r) => r[\"_field\"] == \"TCP Latency\")\n |> aggregateWindow(every: 60s, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")\n\nfrom(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"TCP Latency\")\n |> filter(fn: (r) => r[\"Type\"] == \"Network\")\n |> filter(fn: (r) => r[\"_field\"] == \"TCP Latency\")\n |> aggregateWindow(every: 60s, fn: max, createEmpty: false)\n |> yield(name: \"max\")\n\nfrom(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"TCP Latency\")\n |> filter(fn: (r) => r[\"Type\"] == \"Network\")\n |> filter(fn: (r) => r[\"_field\"] == \"TCP Latency\")\n |> aggregateWindow(every: 60s, fn: min, createEmpty: false)\n |> yield(name: \"min\")\n", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "", - "scale": "linear" - }, - "y": { - "bounds": null, - "label": "", - "prefix": "", - "suffix": "", - "base": "", - "scale": "linear" - } - }, - "type": "band", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "step", - "colors": [ - { - "id": "07e5a63c-177b-4f4f-8343-5ff0a3ad460f", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "c518431a-907b-4635-9e50-33e0ddd7c1cd", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "59acc504-b3e3-45b7-98b3-2d4790e50e61", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "timeFormat": "", - "hoverDimension": "auto", - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "upperColumn": "min", - "mainColumn": "mean", - "lowerColumn": "max", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "0a3e55b7fdfc2000", - "attributes": { - "name": "Utilization | Circuit", - "properties": { - "shape": "chronograf-v2", - "type": "table", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"Utilization\")\n |> filter(fn: (r) => r[\"Type\"] == \"Circuit\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> last()\n |> group(columns: [\"Type\", \"_time\"])\n\n |> sort(columns: [\"_value\", \"Circuit\"], desc: true)\n |> keep(columns: [\"_value\", \"Circuit\"])\n |> top(n:9, columns: [\"_value\"])", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "colors": [ - { - "id": "base", - "type": "text", - "hex": "#4591ED", - "name": "ocean", - "value": 0 - }, - { - "id": "ebf165e1-871a-4b10-b558-e039f376be40", - "type": "text", - "hex": "#FFD255", - "name": "thunder", - "value": 25 - }, - { - "id": "8b4b10e5-5b16-41b0-8f5b-97f22f8eace2", - "type": "text", - "hex": "#F95F53", - "name": "curacao", - "value": 50 - }, - { - "id": "a36e8317-8138-46a4-bec4-a7588d9f348c", - "type": "text", - "hex": "#BF3D5E", - "name": "ruby", - "value": 75 - } - ], - "tableOptions": { - "verticalTimeAxis": true, - "sortBy": { - "internalName": "_value", - "displayName": "_value", - "visible": true - }, - "wrapping": "", - "fixFirstColumn": false - }, - "fieldOptions": [ - { - "internalName": "_start", - "displayName": "_start", - "visible": false - }, - { - "internalName": "_stop", - "displayName": "_stop", - "visible": false - }, - { - "internalName": "Circuit", - "displayName": "Circuit", - "visible": true - }, - { - "internalName": "_time", - "displayName": "_time", - "visible": false - }, - { - "internalName": "_value", - "displayName": "_value", - "visible": true - }, - { - "internalName": "Device", - "displayName": "Device", - "visible": true - }, - { - "internalName": "ParentNode", - "displayName": "ParentNode", - "visible": false - }, - { - "internalName": "Type", - "displayName": "Type", - "visible": false - }, - { - "internalName": "_field", - "displayName": "_field", - "visible": false - }, - { - "internalName": "_measurement", - "displayName": "_measurement", - "visible": false - } - ], - "timeFormat": "YYYY-MM-DD HH:mm:ss", - "decimalPlaces": { - "isEnforced": false, - "digits": 0 - }, - "note": "", - "showNoteWhenEmpty": false - } - } - }, - { - "type": "view", - "id": "0a45cb04f67c2000", - "attributes": { - "name": "TCP Latency | Nodes", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"libreqos\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"TCP Latency\")\n |> filter(fn: (r) => r[\"Type\"] == \"Parent Node\")\n |> filter(fn: (r) => r[\"_field\"] == \"TCP Latency\")\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": null, - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - } - }, - "type": "xy", - "staticLegend": { - "colorizeRows": true, - "opacity": 1, - "orientationThreshold": 100000000, - "widthRatio": 1 - }, - "geom": "monotoneX", - "colors": [ - { - "id": "9a3213f8-38be-4075-a164-0af0b13fde1c", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "a236706f-192f-4538-b08f-b1a5944a67e9", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "53c9ec3a-c023-4326-b624-ebd7d9890929", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_time", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendHide": false, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - } - ] - }, - "labels": [] -} From 1238123143aa098feb289b86068f4525f62f676f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Mon, 16 Jan 2023 01:10:47 -0700 Subject: [PATCH 4/4] Rename influxDBdashboardTemplate_v2.5.1.json to influxDBdashboardTemplate.json --- ...shboardTemplate_v2.5.1.json => influxDBdashboardTemplate.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{influxDBdashboardTemplate_v2.5.1.json => influxDBdashboardTemplate.json} (100%) diff --git a/src/influxDBdashboardTemplate_v2.5.1.json b/src/influxDBdashboardTemplate.json similarity index 100% rename from src/influxDBdashboardTemplate_v2.5.1.json rename to src/influxDBdashboardTemplate.json