From 9e8e3a98ad582e4c0dad4e4d67141491d49dede9 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Sun, 4 Jul 2021 11:10:40 +0200 Subject: grafana: Some small fixes in general dashboard --- dashboards-grafana/general.json | 3488 +++++++++++++++++++-------------------- 1 file changed, 1743 insertions(+), 1745 deletions(-) diff --git a/dashboards-grafana/general.json b/dashboards-grafana/general.json index 97c1a8a..8b5964b 100644 --- a/dashboards-grafana/general.json +++ b/dashboards-grafana/general.json @@ -17,7 +17,7 @@ "gnetId": null, "graphTooltip": 0, "id": 1, - "iteration": 1625306026844, + "iteration": 1625389625118, "links": [], "panels": [ { @@ -197,7 +197,7 @@ "type": "timeseries" }, { - "collapsed": true, + "collapsed": false, "datasource": null, "gridPos": { "h": 1, @@ -206,265 +206,12 @@ "y": 8 }, "id": 31, - "panels": [ - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "displayName": "${__field.labels.ipcp}", - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 9 - }, - "id": 33, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_lsdb_neighbors_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"neighbors\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Neighbors", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "displayName": "${__field.labels.ipcp}", - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 9 - }, - "id": 34, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_lsdb_nodes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"nodes\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Nodes", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "displayName": "${__field.labels.ipcp}", - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 12, - "y": 9 - }, - "id": 35, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_lsdb_links_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"links\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Links (unidirectional)", - "type": "timeseries" - } - ], - "title": "Link State Database", - "type": "row" - }, - { - "collapsed": true, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 58, "panels": [], - "title": "Process N-1 flows", + "title": "Link State Database", "type": "row" }, { "datasource": null, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -486,8 +233,7 @@ "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 10, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -499,7 +245,7 @@ "mode": "off" } }, - "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", + "displayName": "${__field.labels.ipcp}", "mappings": [], "thresholds": { "mode": "absolute", @@ -513,8 +259,7 @@ "value": 80 } ] - }, - "unit": "ns" + } }, "overrides": [] }, @@ -522,9 +267,9 @@ "h": 7, "w": 6, "x": 0, - "y": 10 + "y": 9 }, - "id": 62, + "id": 33, "options": { "legend": { "calcs": [], @@ -537,11 +282,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rto_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_lsdb_neighbors_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"neighbors\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Retransmission timeout (RTO)", + "title": "Neighbors", "type": "timeseries" }, { @@ -567,8 +312,7 @@ "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 10, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -580,7 +324,7 @@ "mode": "off" } }, - "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", + "displayName": "${__field.labels.ipcp}", "mappings": [], "thresholds": { "mode": "absolute", @@ -594,8 +338,7 @@ "value": 80 } ] - }, - "unit": "ns" + } }, "overrides": [] }, @@ -603,9 +346,9 @@ "h": 7, "w": 6, "x": 6, - "y": 10 + "y": 9 }, - "id": 60, + "id": 34, "options": { "legend": { "calcs": [], @@ -618,16 +361,15 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"srtt_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_lsdb_nodes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"nodes\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Smoothed Round-Trip Time (sRTT)", + "title": "Nodes", "type": "timeseries" }, { "datasource": null, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -649,8 +391,7 @@ "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 10, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -662,7 +403,7 @@ "mode": "off" } }, - "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", + "displayName": "${__field.labels.ipcp}", "mappings": [], "thresholds": { "mode": "absolute", @@ -676,8 +417,7 @@ "value": 80 } ] - }, - "unit": "ns" + } }, "overrides": [] }, @@ -685,9 +425,9 @@ "h": 7, "w": 6, "x": 12, - "y": 10 + "y": 9 }, - "id": 69, + "id": 35, "options": { "legend": { "calcs": [], @@ -700,29 +440,30 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"mdev_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_lsdb_links_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"links\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "RTT deviation off mean ", + "title": "Links (unidirectional)", "type": "timeseries" }, { - "collapsed": false, + "collapsed": true, "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 17 + "y": 16 }, - "id": 66, + "id": 58, "panels": [], - "title": "Delta-t constants", + "title": "Process N-1 flows", "type": "row" }, { "datasource": null, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -744,7 +485,8 @@ "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "type": "linear" + "log": 10, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -758,7 +500,6 @@ }, "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -780,9 +521,9 @@ "h": 7, "w": 6, "x": 0, - "y": 18 + "y": 17 }, - "id": 61, + "id": 62, "options": { "legend": { "calcs": [], @@ -795,11 +536,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"mpl_timer_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rto_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Maximum Packet Lifetime (MPL)", + "title": "Retransmission timeout (RTO)", "type": "timeseries" }, { @@ -825,7 +566,8 @@ "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "type": "linear" + "log": 10, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -839,7 +581,6 @@ }, "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -861,9 +602,9 @@ "h": 7, "w": 6, "x": 6, - "y": 18 + "y": 17 }, - "id": 70, + "id": 60, "options": { "legend": { "calcs": [], @@ -876,15 +617,16 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"r_timer_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"srtt_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Retransmission timeout (R-timer)", + "title": "Smoothed Round-Trip Time (sRTT)", "type": "timeseries" }, { "datasource": null, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -906,7 +648,8 @@ "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "type": "linear" + "log": 10, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -920,7 +663,6 @@ }, "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", "mappings": [], - "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -942,9 +684,9 @@ "h": 7, "w": 6, "x": 12, - "y": 18 + "y": 17 }, - "id": 64, + "id": 69, "options": { "legend": { "calcs": [], @@ -957,11 +699,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"a_timer_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"mdev_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Acknowledgment Timeout (A-timer)", + "title": "RTT deviation off mean ", "type": "timeseries" }, { @@ -971,11 +713,11 @@ "h": 1, "w": 24, "x": 0, - "y": 25 + "y": 24 }, - "id": 68, + "id": 66, "panels": [], - "title": "Delta-t Window", + "title": "Delta-t constants", "type": "row" }, { @@ -1029,7 +771,7 @@ } ] }, - "unit": "none" + "unit": "ns" }, "overrides": [] }, @@ -1037,9 +779,9 @@ "h": 7, "w": 6, "x": 0, - "y": 26 + "y": 25 }, - "id": 74, + "id": 61, "options": { "legend": { "calcs": [], @@ -1052,11 +794,11 @@ }, "targets": [ { - "query": "t1 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_snd_lwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"snd_lwe\")\n\nt2 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_snd_rwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"snd_rwe\")\n\njoin(tables: {t1: t1, t2: t2}, on: [\"_time\", \"process\", \"flow_descriptor\", \"system\"])\n |> map(fn: (r) => ({ r with _value: r._value_t2 - r._value_t1 }))\n |> drop(columns: [\"_value_t1\", \"_value_t2\"])\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"mpl_timer_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Sender Window Size", + "title": "Maximum Packet Lifetime (MPL)", "type": "timeseries" }, { @@ -1110,7 +852,7 @@ } ] }, - "unit": "none" + "unit": "ns" }, "overrides": [] }, @@ -1118,9 +860,9 @@ "h": 7, "w": 6, "x": 6, - "y": 26 + "y": 25 }, - "id": 78, + "id": 70, "options": { "legend": { "calcs": [], @@ -1133,11 +875,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_snd_lwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"snd_lwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"r_timer_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Sender Left Window Edge (sLWE)", + "title": "Retransmission timeout (R-timer)", "type": "timeseries" }, { @@ -1191,7 +933,7 @@ } ] }, - "unit": "none" + "unit": "ns" }, "overrides": [] }, @@ -1199,9 +941,9 @@ "h": 7, "w": 6, "x": 12, - "y": 26 + "y": 25 }, - "id": 72, + "id": 64, "options": { "legend": { "calcs": [], @@ -1214,13 +956,27 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"snd_rwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"a_timer_ns\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Sender Right Window Edge (sRWE)", + "title": "Acknowledgment Timeout (A-timer)", "type": "timeseries" }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 32 + }, + "id": 68, + "panels": [], + "title": "Delta-t Window", + "type": "row" + }, { "datasource": null, "fieldConfig": { @@ -1279,10 +1035,10 @@ "gridPos": { "h": 7, "w": 6, - "x": 18, - "y": 26 + "x": 0, + "y": 33 }, - "id": 75, + "id": 74, "options": { "legend": { "calcs": [], @@ -1295,11 +1051,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"snd_seqno\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "t1 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_snd_lwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"snd_lwe\")\n\nt2 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_snd_rwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"snd_rwe\")\n\njoin(tables: {t1: t1, t2: t2}, on: [\"_time\", \"process\", \"flow_descriptor\", \"system\"])\n |> map(fn: (r) => ({ r with _value: r._value_t2 - r._value_t1 }))\n |> drop(columns: [\"_value_t1\", \"_value_t2\"])\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Sender Next Sequence Number", + "title": "Sender Window Size", "type": "timeseries" }, { @@ -1360,10 +1116,10 @@ "gridPos": { "h": 7, "w": 6, - "x": 0, + "x": 6, "y": 33 }, - "id": 77, + "id": 78, "options": { "legend": { "calcs": [], @@ -1376,11 +1132,11 @@ }, "targets": [ { - "query": "t1 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_rcv_lwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_lwe\")\n\nt2 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_rcv_rwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_rwe\")\n\njoin(tables: {t1: t1, t2: t2}, on: [\"_time\", \"process\", \"flow_descriptor\", \"system\"])\n |> map(fn: (r) => ({ r with _value: r._value_t2 - r._value_t1 }))\n |> drop(columns: [\"_value_t1\", \"_value_t2\"])\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_snd_lwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"snd_lwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Receiver Window Size", + "title": "Sender Left Window Edge (sLWE)", "type": "timeseries" }, { @@ -1441,10 +1197,10 @@ "gridPos": { "h": 7, "w": 6, - "x": 6, + "x": 12, "y": 33 }, - "id": 71, + "id": 72, "options": { "legend": { "calcs": [], @@ -1457,11 +1213,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_lwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"snd_rwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Receiver Left Window Edge (rLWE)", + "title": "Sender Right Window Edge (sRWE)", "type": "timeseries" }, { @@ -1522,10 +1278,10 @@ "gridPos": { "h": 7, "w": 6, - "x": 12, + "x": 18, "y": 33 }, - "id": 73, + "id": 75, "options": { "legend": { "calcs": [], @@ -1538,11 +1294,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_rwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"snd_seqno\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Receiver Right Window Edge (rRWE)", + "title": "Sender Next Sequence Number", "type": "timeseries" }, { @@ -1603,10 +1359,10 @@ "gridPos": { "h": 7, "w": 6, - "x": 18, - "y": 33 + "x": 0, + "y": 40 }, - "id": 76, + "id": 77, "options": { "legend": { "calcs": [], @@ -1619,30 +1375,15 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_seqno\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "query": "t1 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_rcv_lwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_lwe\")\n\nt2 = from(bucket: \"ouroboros-metrics\") \n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_process_frct_rcv_rwe\")\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_rwe\")\n\njoin(tables: {t1: t1, t2: t2}, on: [\"_time\", \"process\", \"flow_descriptor\", \"system\"])\n |> map(fn: (r) => ({ r with _value: r._value_t2 - r._value_t1 }))\n |> drop(columns: [\"_value_t1\", \"_value_t2\"])\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Receiver Next Sequence Number", + "title": "Receiver Window Size", "type": "timeseries" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 40 - }, - "id": 18, - "panels": [], - "title": "IPCP N+1 flows", - "type": "row" - }, { "datasource": null, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -1651,7 +1392,6 @@ "custom": { "axisLabel": "", "axisPlacement": "auto", - "axisSoftMin": 0, "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, @@ -1663,10 +1403,9 @@ }, "lineInterpolation": "linear", "lineWidth": 1, - "pointSize": 2, + "pointSize": 5, "scaleDistribution": { - "log": 10, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -1678,8 +1417,9 @@ "mode": "off" } }, - "displayName": "${__field.labels.ipcp},${__field.labels.flow_id}", + "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -1693,17 +1433,17 @@ } ] }, - "unit": "binBps" + "unit": "none" }, "overrides": [] }, "gridPos": { - "h": 10, + "h": 7, "w": 6, - "x": 0, - "y": 41 + "x": 6, + "y": 40 }, - "id": 27, + "id": 71, "options": { "legend": { "calcs": [], @@ -1716,16 +1456,15 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_sent_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"sent_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: ${_interval}, fn: mean, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_lwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Upstream bandwidth", + "title": "Receiver Left Window Edge (rLWE)", "type": "timeseries" }, { "datasource": null, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -1734,7 +1473,6 @@ "custom": { "axisLabel": "", "axisPlacement": "auto", - "axisSoftMin": 0, "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, @@ -1746,10 +1484,9 @@ }, "lineInterpolation": "linear", "lineWidth": 1, - "pointSize": 2, + "pointSize": 5, "scaleDistribution": { - "log": 10, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -1761,8 +1498,9 @@ "mode": "off" } }, - "displayName": "${__field.labels.ipcp},${__field.labels.flow_id}", + "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -1776,17 +1514,17 @@ } ] }, - "unit": "pps" + "unit": "none" }, "overrides": [] }, "gridPos": { - "h": 10, + "h": 7, "w": 6, - "x": 6, - "y": 41 + "x": 12, + "y": 40 }, - "id": 37, + "id": 73, "options": { "legend": { "calcs": [], @@ -1799,16 +1537,15 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_sent_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"sent_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_rwe\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Upstream packet rate", + "title": "Receiver Right Window Edge (rRWE)", "type": "timeseries" }, { "datasource": null, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -1817,7 +1554,6 @@ "custom": { "axisLabel": "", "axisPlacement": "auto", - "axisSoftMin": 0, "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, @@ -1829,7 +1565,7 @@ }, "lineInterpolation": "linear", "lineWidth": 1, - "pointSize": 2, + "pointSize": 5, "scaleDistribution": { "type": "linear" }, @@ -1843,8 +1579,9 @@ "mode": "off" } }, - "displayName": "${__field.labels.ipcp},${__field.labels.flow_id}", + "displayName": "${__field.labels.system}:${__field.labels.process}/${__field.labels.flow_descriptor}", "mappings": [], + "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -1858,17 +1595,17 @@ } ] }, - "unit": "bytes" + "unit": "none" }, "overrides": [] }, "gridPos": { - "h": 10, + "h": 7, "w": 6, - "x": 12, - "y": 41 + "x": 18, + "y": 40 }, - "id": 21, + "id": 76, "options": { "legend": { "calcs": [], @@ -1881,13 +1618,27 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_sent_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"sent_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_field\"] == \"rcv_seqno\")\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "refId": "A" } ], - "title": "Total sent bytes", + "title": "Receiver Next Sequence Number", "type": "timeseries" }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 47 + }, + "id": 18, + "panels": [], + "title": "IPCP N+1 flows", + "type": "row" + }, { "datasource": null, "description": "", @@ -1913,7 +1664,8 @@ "lineWidth": 1, "pointSize": 2, "scaleDistribution": { - "type": "linear" + "log": 10, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -1939,17 +1691,18 @@ "value": 80 } ] - } + }, + "unit": "binBps" }, "overrides": [] }, "gridPos": { "h": 10, "w": 6, - "x": 18, - "y": 41 + "x": 0, + "y": 48 }, - "id": 20, + "id": 27, "options": { "legend": { "calcs": [], @@ -1962,11 +1715,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_sent_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"sent_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: ${_interval}, fn: mean, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Total sent packets", + "title": "Upstream bandwidth", "type": "timeseries" }, { @@ -2022,17 +1775,17 @@ } ] }, - "unit": "binBps" + "unit": "pps" }, "overrides": [] }, "gridPos": { "h": 10, "w": 6, - "x": 0, - "y": 51 + "x": 6, + "y": 48 }, - "id": 23, + "id": 37, "options": { "legend": { "calcs": [], @@ -2040,16 +1793,16 @@ "placement": "bottom" }, "tooltip": { - "mode": "multi" + "mode": "single" } }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_sent_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"sent_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Downstream bandwidth", + "title": "Upstream packet rate", "type": "timeseries" }, { @@ -2077,8 +1830,7 @@ "lineWidth": 1, "pointSize": 2, "scaleDistribution": { - "log": 10, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -2105,17 +1857,17 @@ } ] }, - "unit": "pps" + "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 10, "w": 6, - "x": 6, - "y": 51 + "x": 12, + "y": 48 }, - "id": 36, + "id": 21, "options": { "legend": { "calcs": [], @@ -2128,11 +1880,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit:1s)\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_sent_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"sent_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Downstream packet rate", + "title": "Total sent bytes", "type": "timeseries" }, { @@ -2186,18 +1938,17 @@ "value": 80 } ] - }, - "unit": "bytes" + } }, "overrides": [] }, "gridPos": { "h": 10, "w": 6, - "x": 12, - "y": 51 + "x": 18, + "y": 48 }, - "id": 26, + "id": 20, "options": { "legend": { "calcs": [], @@ -2210,11 +1961,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Total received bytes", + "title": "Total sent packets", "type": "timeseries" }, { @@ -2242,7 +1993,8 @@ "lineWidth": 1, "pointSize": 2, "scaleDistribution": { - "type": "linear" + "log": 10, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -2268,17 +2020,18 @@ "value": 80 } ] - } + }, + "unit": "binBps" }, "overrides": [] }, "gridPos": { "h": 10, "w": 6, - "x": 18, - "y": 51 + "x": 0, + "y": 58 }, - "id": 22, + "id": 23, "options": { "legend": { "calcs": [], @@ -2286,32 +2039,18 @@ "placement": "bottom" }, "tooltip": { - "mode": "single" + "mode": "multi" } }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Total received packets", + "title": "Downstream bandwidth", "type": "timeseries" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 61 - }, - "id": 10, - "panels": [], - "title": "Congestion avoidance", - "type": "row" - }, { "datasource": null, "description": "", @@ -2350,7 +2089,7 @@ "mode": "off" } }, - "displayName": "${__field.labels.ipcp}, ${__field.labels.flow_id}", + "displayName": "${__field.labels.ipcp},${__field.labels.flow_id}", "mappings": [], "thresholds": { "mode": "absolute", @@ -2365,17 +2104,17 @@ } ] }, - "unit": "ns" + "unit": "pps" }, "overrides": [] }, "gridPos": { - "h": 11, + "h": 10, "w": 6, - "x": 0, - "y": 62 + "x": 6, + "y": 58 }, - "id": 12, + "id": 36, "options": { "legend": { "calcs": [], @@ -2383,16 +2122,16 @@ "placement": "bottom" }, "tooltip": { - "mode": "multi" + "mode": "single" } }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_width_ns\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_width_ns\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit:1s)\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Congestion Window Width", + "title": "Downstream packet rate", "type": "timeseries" }, { @@ -2432,7 +2171,7 @@ "mode": "off" } }, - "displayName": "${__field.labels.ipcp}, ${__field.labels.flow_id}", + "displayName": "${__field.labels.ipcp},${__field.labels.flow_id}", "mappings": [], "thresholds": { "mode": "absolute", @@ -2447,17 +2186,17 @@ } ] }, - "unit": "none" + "unit": "bytes" }, "overrides": [] }, "gridPos": { - "h": 11, + "h": 10, "w": 6, - "x": 6, - "y": 62 + "x": 12, + "y": 58 }, - "id": 28, + "id": 26, "options": { "legend": { "calcs": [], @@ -2465,16 +2204,16 @@ "placement": "bottom" }, "tooltip": { - "mode": "multi" + "mode": "single" } }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_down_cong_lvl\")\n |> filter(fn: (r) => r[\"_field\"] == \"down_cong_lvl\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_bytes_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_bytes_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Downstream congestion level", + "title": "Total received bytes", "type": "timeseries" }, { @@ -2514,7 +2253,7 @@ "mode": "off" } }, - "displayName": "${__field.labels.ipcp}, ${__field.labels.flow_id}", + "displayName": "${__field.labels.ipcp},${__field.labels.flow_id}", "mappings": [], "thresholds": { "mode": "absolute", @@ -2528,18 +2267,17 @@ "value": 80 } ] - }, - "unit": "none" + } }, "overrides": [] }, "gridPos": { - "h": 11, + "h": 10, "w": 6, - "x": 12, - "y": 62 + "x": 18, + "y": 58 }, - "id": 15, + "id": 22, "options": { "legend": { "calcs": [], @@ -2547,18 +2285,32 @@ "placement": "bottom" }, "tooltip": { - "mode": "multi" + "mode": "single" } }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_current_pkts\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_current_pkts\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_recv_pkts_total\")\n |> filter(fn: (r) => r[\"_field\"] == \"recv_pkts_total\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Congestion window current packets", + "title": "Total received packets", "type": "timeseries" }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 68 + }, + "id": 10, + "panels": [], + "title": "Congestion avoidance", + "type": "row" + }, { "datasource": null, "description": "", @@ -2584,7 +2336,8 @@ "lineWidth": 1, "pointSize": 2, "scaleDistribution": { - "type": "linear" + "log": 10, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -2611,17 +2364,17 @@ } ] }, - "unit": "none" + "unit": "ns" }, "overrides": [] }, "gridPos": { "h": 11, "w": 6, - "x": 18, - "y": 62 + "x": 0, + "y": 69 }, - "id": 25, + "id": 12, "options": { "legend": { "calcs": [], @@ -2634,15 +2387,16 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_down_pkt_ctr\")\n |> filter(fn: (r) => r[\"_field\"] == \"down_pkt_ctr\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_width_ns\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_width_ns\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Downstream packet counter", + "title": "Congestion Window Width", "type": "timeseries" }, { "datasource": null, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -2665,8 +2419,7 @@ "lineWidth": 1, "pointSize": 2, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -2693,17 +2446,17 @@ } ] }, - "unit": "bytes" + "unit": "none" }, "overrides": [] }, "gridPos": { - "h": 10, + "h": 11, "w": 6, - "x": 0, - "y": 73 + "x": 6, + "y": 69 }, - "id": 14, + "id": 28, "options": { "legend": { "calcs": [], @@ -2716,11 +2469,11 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_size_bytes\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_size_bytes\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_down_cong_lvl\")\n |> filter(fn: (r) => r[\"_field\"] == \"down_cong_lvl\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Congestion window size (Bytes)", + "title": "Downstream congestion level", "type": "timeseries" }, { @@ -2780,12 +2533,12 @@ "overrides": [] }, "gridPos": { - "h": 10, + "h": 11, "w": 6, - "x": 6, - "y": 73 + "x": 12, + "y": 69 }, - "id": 29, + "id": 15, "options": { "legend": { "calcs": [], @@ -2798,15 +2551,16 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_up_cong_lvl\")\n |> filter(fn: (r) => r[\"_field\"] == \"up_cong_lvl\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_current_pkts\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_current_pkts\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], - "title": "Upstream congestion level", + "title": "Congestion window current packets", "type": "timeseries" }, { "datasource": null, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -2829,8 +2583,7 @@ "lineWidth": 1, "pointSize": 2, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -2857,17 +2610,17 @@ } ] }, - "unit": "bytes" + "unit": "none" }, "overrides": [] }, "gridPos": { - "h": 10, + "h": 11, "w": 6, - "x": 12, - "y": 73 + "x": 18, + "y": 69 }, - "id": 24, + "id": 25, "options": { "legend": { "calcs": [], @@ -2880,7 +2633,253 @@ }, "targets": [ { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_current_bytes\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_current_bytes\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_down_pkt_ctr\")\n |> filter(fn: (r) => r[\"_field\"] == \"down_pkt_ctr\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Downstream packet counter", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 2, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "displayName": "${__field.labels.ipcp}, ${__field.labels.flow_id}", + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 6, + "x": 0, + "y": 80 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_size_bytes\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_size_bytes\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Congestion window size (Bytes)", + "type": "timeseries" + }, + { + "datasource": null, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 2, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "displayName": "${__field.labels.ipcp}, ${__field.labels.flow_id}", + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 6, + "x": 6, + "y": 80 + }, + "id": 29, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_up_cong_lvl\")\n |> filter(fn: (r) => r[\"_field\"] == \"up_cong_lvl\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Upstream congestion level", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 2, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "displayName": "${__field.labels.ipcp}, ${__field.labels.flow_id}", + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 6, + "x": 12, + "y": 80 + }, + "id": 24, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_flow_allocator_cong_wnd_current_bytes\")\n |> filter(fn: (r) => r[\"_field\"] == \"cong_wnd_current_bytes\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> aggregateWindow(every: ${_interval}, fn: last, createEmpty: false)\n |> yield(name: \"last\")", "refId": "A" } ], @@ -2947,7 +2946,7 @@ "h": 10, "w": 6, "x": 18, - "y": 73 + "y": 80 }, "id": 16, "options": { @@ -3028,7 +3027,7 @@ "h": 10, "w": 6, "x": 0, - "y": 83 + "y": 90 }, "id": 80, "options": { @@ -3109,7 +3108,7 @@ "h": 10, "w": 6, "x": 6, - "y": 83 + "y": 90 }, "id": 81, "options": { @@ -3132,1308 +3131,1307 @@ "type": "timeseries" }, { - "collapsed": true, + "collapsed": false, "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 93 + "y": 100 }, "id": 39, - "panels": [ - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 0, - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "binBps" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 0, - "y": 63 - }, - "id": 45, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT upstream bandwidth", - "type": "timeseries" + "panels": [], + "title": "Data Transfer Local Components", + "type": "row" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 0, + "y": 101 + }, + "id": 45, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT upstream bandwidth", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 6, + "y": 101 + }, + "id": 46, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT upstream packet rate", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 12, + "y": 101 + }, + "id": 47, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT sent bytes", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 18, + "y": 101 + }, + "id": 44, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT sent packets", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 0, + "y": 112 + }, + "id": 41, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT downstream bandwidth", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 6, + "y": 112 + }, + "id": 50, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT downstream packet rate", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 12, + "y": 112 + }, + "id": 51, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT received bytes", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 18, + "y": 112 + }, + "id": 48, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 0, - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "DHT received packets", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "unit": "none" + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 0, + "y": 123 + }, + "id": 53, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Flow Allocator upstream bandwidth", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - "overrides": [] + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] }, - "gridPos": { - "h": 11, - "w": 6, - "x": 6, - "y": 63 + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 6, + "y": 123 + }, + "id": 54, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Flow allocator upstream packet rate", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 46, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - "tooltip": { - "mode": "single" + "thresholdsStyle": { + "mode": "off" } }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT upstream packet rate", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 0, - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 12, - "y": 63 - }, - "id": 47, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } + { + "color": "red", + "value": 80 + } + ] }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT sent bytes", - "type": "timeseries" + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 12, + "y": 123 + }, + "id": 55, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 18, - "y": 63 + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Flow allocator sent bytes", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 44, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT sent packets", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "binBps" + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 0, - "y": 74 - }, - "id": 41, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - "tooltip": { - "mode": "single" + "thresholdsStyle": { + "mode": "off" } }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT downstream bandwidth", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 6, - "y": 74 - }, - "id": 50, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } + { + "color": "red", + "value": 80 + } + ] }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT downstream packet rate", - "type": "timeseries" + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 18, + "y": 123 + }, + "id": 52, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 12, - "y": 74 + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Flow allocator received packets", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 51, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - "tooltip": { - "mode": "single" + "thresholdsStyle": { + "mode": "off" } }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT received bytes", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "unit": "none" - }, - "overrides": [] + { + "color": "red", + "value": 80 + } + ] }, - "gridPos": { - "h": 11, - "w": 6, - "x": 18, - "y": 74 + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 0, + "y": 134 + }, + "id": 49, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Flow Allocator downstream bandwidth", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 48, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - "tooltip": { - "mode": "single" + "thresholdsStyle": { + "mode": "off" } }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"dht\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "DHT received packets", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "unit": "binBps" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 0, - "y": 85 - }, - "id": 53, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } + { + "color": "red", + "value": 80 + } + ] }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow Allocator upstream bandwidth", - "type": "timeseries" + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 6, + "y": 134 + }, + "id": 42, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 0, - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 6, - "y": 85 + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Flow allocator downstream packet rate", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 54, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow allocator upstream packet rate", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 12, - "y": 85 - }, - "id": 55, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - "tooltip": { - "mode": "single" + "thresholdsStyle": { + "mode": "off" } }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow allocator sent bytes", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 18, - "y": 85 - }, - "id": 52, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } + { + "color": "red", + "value": 80 + } + ] }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_sent_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow allocator received packets", - "type": "timeseries" + "unit": "bytes" }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 12, + "y": 134 + }, + "id": 43, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "binBps" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 0, - "y": 96 + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" + } + ], + "title": "Flow allocator received bytes", + "type": "timeseries" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 49, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow Allocator downstream bandwidth", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 10, + "type": "log" }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 6, - "y": 96 - }, - "id": 42, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - "tooltip": { - "mode": "single" + "thresholdsStyle": { + "mode": "off" } }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> derivative(unit: 1s)\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow allocator downstream packet rate", - "type": "timeseries" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 12, - "y": 96 - }, - "id": 43, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } + { + "color": "red", + "value": 80 + } + ] }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_bytes_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow allocator received bytes", - "type": "timeseries" + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 18, + "y": 134 + }, + "id": 56, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ { - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 6, - "x": 18, - "y": 96 - }, - "id": 56, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", - "refId": "A" - } - ], - "title": "Flow allocator received packets", - "type": "timeseries" + "query": "from(bucket: \"ouroboros-metrics\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r[\"_measurement\"] == \"ouroboros_data_transfer_local_recv_packets_total\")\n |> filter(fn: (r) => r[\"endpoint\"] == \"flow-allocator\")\n |> filter(fn: (r) => r[\"qos_cube\"] == \"QoS cube 0\")\n |> filter(fn: (r) => contains(value: r[\"ipcp\"], set: ${_ipcp:json}))\n |> filter(fn: (r) => contains(value: r[\"system\"], set: ${_system:json}))\n |> filter(fn: (r) => contains(value: r[\"layer\"], set: ${_layer:json}))\n |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)\n |> yield(name: \"last\")", + "refId": "A" } ], - "title": "Data Transfer Local Components", - "type": "row" + "title": "Flow allocator received packets", + "type": "timeseries" } ], - "refresh": false, + "refresh": "10s", "schemaVersion": 30, "style": "dark", "tags": [], @@ -4666,12 +4664,12 @@ ] }, "time": { - "from": "now-30m", + "from": "now-5m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Ouroboros General Dashboard", "uid": "hbIO3HR7z", - "version": 93 + "version": 95 } -- cgit v1.2.3