From 89c0c0f0ce048ee1065ea813781d12a3aea6cc0b Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Tue, 13 Aug 2024 16:38:35 -0700 Subject: [PATCH] feat(net): Add panel for dropped egress cap messages (#10275) --- etc/grafana/dashboards/reth-mempool.json | 750 +++++++++++++---------- 1 file changed, 421 insertions(+), 329 deletions(-) diff --git a/etc/grafana/dashboards/reth-mempool.json b/etc/grafana/dashboards/reth-mempool.json index b2baf9975..41be1dc41 100644 --- a/etc/grafana/dashboards/reth-mempool.json +++ b/etc/grafana/dashboards/reth-mempool.json @@ -15,7 +15,7 @@ "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "10.3.3" + "version": "11.1.3" }, { "type": "panel", @@ -100,8 +100,7 @@ "value": null } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -117,6 +116,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -131,7 +131,7 @@ "textMode": "name", "wideLayout": true }, - "pluginVersion": "10.3.3", + "pluginVersion": "11.1.3", "targets": [ { "datasource": { @@ -170,8 +170,7 @@ "value": null } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -187,6 +186,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -201,7 +201,7 @@ "textMode": "name", "wideLayout": true }, - "pluginVersion": "10.3.3", + "pluginVersion": "11.1.3", "targets": [ { "datasource": { @@ -240,8 +240,7 @@ "value": null } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -257,6 +256,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -271,7 +271,7 @@ "textMode": "name", "wideLayout": true }, - "pluginVersion": "10.3.3", + "pluginVersion": "11.1.3", "targets": [ { "datasource": { @@ -310,8 +310,7 @@ "value": null } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -327,6 +326,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -341,7 +341,7 @@ "textMode": "name", "wideLayout": true }, - "pluginVersion": "10.3.3", + "pluginVersion": "11.1.3", "targets": [ { "datasource": { @@ -380,8 +380,7 @@ "value": null } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -397,6 +396,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -411,7 +411,7 @@ "textMode": "name", "wideLayout": true }, - "pluginVersion": "10.3.3", + "pluginVersion": "11.1.3", "targets": [ { "datasource": { @@ -450,8 +450,7 @@ "value": null } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -467,6 +466,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -481,7 +481,7 @@ "textMode": "name", "wideLayout": true }, - "pluginVersion": "10.3.3", + "pluginVersion": "11.1.3", "targets": [ { "datasource": { @@ -573,8 +573,7 @@ } ] }, - "unit": "bytes", - "unitScale": true + "unit": "bytes" }, "overrides": [] }, @@ -726,8 +725,7 @@ } ] }, - "unit": "bytes", - "unitScale": true + "unit": "bytes" }, "overrides": [] }, @@ -858,8 +856,7 @@ } ] }, - "unit": "bytes", - "unitScale": true + "unit": "bytes" }, "overrides": [] }, @@ -1010,8 +1007,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1142,8 +1138,7 @@ } ] }, - "unit": "ops", - "unitScale": true + "unit": "ops" }, "overrides": [ { @@ -1304,8 +1299,7 @@ "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1402,8 +1396,7 @@ } ] }, - "unit": "reqps", - "unitScale": true + "unit": "mps" }, "overrides": [ { @@ -1498,7 +1491,7 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "description": "Currently active outgoing GetPooledTransactions requests.", + "description": "Egress RLPx capability traffic (default only `eth` capability)\n\nDropped - session channels are bounded, if there's no capacity, the message will be dropped.", "fieldConfig": { "defaults": { "color": { @@ -1550,7 +1543,7 @@ } ] }, - "unitScale": true + "unit": "mps" }, "overrides": [] }, @@ -1560,7 +1553,7 @@ "x": 12, "y": 29 }, - "id": 104, + "id": 217, "options": { "legend": { "calcs": [], @@ -1579,15 +1572,19 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "disableTextWrap": false, "editorMode": "builder", - "expr": "reth_network_inflight_transaction_requests{instance=~\"$instance\"}", - "hide": false, - "legendFormat": "Inflight Transaction Requests", + "expr": "rate(reth_network_total_outgoing_peer_messages_dropped{instance=\"$instance\"}[$__rate_interval])", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "Dropped", "range": true, - "refId": "C" + "refId": "A", + "useBackend": false } ], - "title": "Inflight Transaction Requests", + "title": "Outgoing Capability Messages", "type": "timeseries" }, { @@ -1638,15 +1635,15 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1741,6 +1738,221 @@ "title": "All Transactions metrics", "type": "timeseries" }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Currently active outgoing GetPooledTransactions requests.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "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 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 37 + }, + "id": 104, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "builder", + "expr": "reth_network_inflight_transaction_requests{instance=~\"$instance\"}", + "hide": false, + "legendFormat": "Inflight Transaction Requests", + "range": true, + "refId": "C" + } + ], + "title": "Inflight Transaction Requests", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Total number of times a transaction is sent/announced that is already in the local pool.\n\nThis reflects the redundancy in the mempool.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "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": "cps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 45 + }, + "id": 213, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "rate(reth_network_occurrences_hashes_already_in_pool{instance=\"$instance\"}[$__rate_interval])", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": false, + "instant": false, + "legendFormat": "Freq Announced Transactions Already in Pool", + "range": true, + "refId": "A", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "rate(reth_network_occurrences_transactions_already_in_pool{instance=\"$instance\"}[$__rate_interval])", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": false, + "instant": false, + "legendFormat": "Freq Received Transactions Already in Pool ", + "range": true, + "refId": "B", + "useBackend": false + } + ], + "title": "Frequency of Transactions Already in Pool", + "type": "timeseries" + }, { "datasource": { "type": "prometheus", @@ -1789,15 +2001,15 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -1805,7 +2017,7 @@ "h": 8, "w": 12, "x": 12, - "y": 37 + "y": 45 }, "id": 199, "options": { @@ -1871,244 +2083,6 @@ "title": "Transaction Fetcher Hashes", "type": "timeseries" }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Total number of times a transaction is sent/announced that is already in the local pool.\n\nThis reflects the redundancy in the mempool.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "cps", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 45 - }, - "id": 213, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "rate(reth_network_occurrences_hashes_already_in_pool{instance=\"$instance\"}[$__rate_interval])", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": false, - "instant": false, - "legendFormat": "Freq Announced Transactions Already in Pool", - "range": true, - "refId": "A", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "rate(reth_network_occurrences_transactions_already_in_pool{instance=\"$instance\"}[$__rate_interval])", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": false, - "instant": false, - "legendFormat": "Freq Received Transactions Already in Pool ", - "range": true, - "refId": "B", - "useBackend": false - } - ], - "title": "Frequency of Transactions Already in Pool", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Frequency of a peer sending a transaction that has already been marked as seen by that peer. This could for example be the case if a transaction is sent/announced to the peer at the same time that the peer sends/announces the same transaction to us.\n\nThis reflects the latency in the mempool.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "cps", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 45 - }, - "id": 208, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "rate(reth_network_occurrences_hash_already_seen_by_peer{instance=\"$instance\"}[$__rate_interval])", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": false, - "instant": false, - "legendFormat": "Freq Announced Transactions Already Seen by Peer", - "range": true, - "refId": "A", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "rate(reth_network_occurrences_of_transaction_already_seen_by_peer{instance=\"$instance\"}[$__rate_interval])", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": false, - "instant": false, - "legendFormat": "Freq Received Transactions Already Seen by Peer", - "range": true, - "refId": "B", - "useBackend": false - } - ], - "title": "Frequency of Transactions Already Marked as Seen by Peer", - "type": "timeseries" - }, { "datasource": { "type": "prometheus", @@ -2157,7 +2131,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2165,8 +2140,7 @@ } ] }, - "unit": "s", - "unitScale": true + "unit": "s" }, "overrides": [] }, @@ -2336,7 +2310,7 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "description": "Duration of one call to `TransactionFetcher::on_fetch_pending_hashes`.\n\nFind Peer - find an idle fallback peer for a hash pending fetch.\n\nFill Request - fill `GetPooledTransactions` request, for the found peer, with more hashes from cache of hashes pending fetch. ", + "description": "Frequency of a peer sending a transaction that has already been marked as seen by that peer. This could for example be the case if a transaction is sent/announced to the peer at the same time that the peer sends/announces the same transaction to us.\n\nThis reflects the latency in the mempool.", "fieldConfig": { "defaults": { "color": { @@ -2379,7 +2353,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2387,8 +2362,7 @@ } ] }, - "unit": "s", - "unitScale": true + "unit": "cps" }, "overrides": [] }, @@ -2398,7 +2372,7 @@ "x": 12, "y": 53 }, - "id": 215, + "id": 208, "options": { "legend": { "calcs": [], @@ -2419,14 +2393,14 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "reth_network_duration_find_idle_fallback_peer_for_any_pending_hash{instance=\"$instance\"}", + "expr": "rate(reth_network_occurrences_hash_already_seen_by_peer{instance=\"$instance\"}[$__rate_interval])", "fullMetaSearch": false, "hide": false, - "includeNullMetadata": true, + "includeNullMetadata": false, "instant": false, - "legendFormat": "Find Idle Peer", + "legendFormat": "Freq Announced Transactions Already Seen by Peer", "range": true, - "refId": "C", + "refId": "A", "useBackend": false }, { @@ -2436,18 +2410,18 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "reth_network_duration_fill_request_from_hashes_pending_fetch{instance=\"$instance\"}", + "expr": "rate(reth_network_occurrences_of_transaction_already_seen_by_peer{instance=\"$instance\"}[$__rate_interval])", "fullMetaSearch": false, "hide": false, - "includeNullMetadata": true, + "includeNullMetadata": false, "instant": false, - "legendFormat": "Fill Request", + "legendFormat": "Freq Received Transactions Already Seen by Peer", "range": true, "refId": "B", "useBackend": false } ], - "title": "Fetch Hashes Pending Fetch Duration", + "title": "Frequency of Transactions Already Marked as Seen by Peer", "type": "timeseries" }, { @@ -2498,7 +2472,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2506,8 +2481,7 @@ } ] }, - "unit": "s", - "unitScale": true + "unit": "s" }, "overrides": [] }, @@ -2586,6 +2560,125 @@ "title": "Network Manager Poll Duration", "type": "timeseries" }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Duration of one call to `TransactionFetcher::on_fetch_pending_hashes`.\n\nFind Peer - find an idle fallback peer for a hash pending fetch.\n\nFill Request - fill `GetPooledTransactions` request, for the found peer, with more hashes from cache of hashes pending fetch. ", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "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": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 61 + }, + "id": 215, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "reth_network_duration_find_idle_fallback_peer_for_any_pending_hash{instance=\"$instance\"}", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "Find Idle Peer", + "range": true, + "refId": "C", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "reth_network_duration_fill_request_from_hashes_pending_fetch{instance=\"$instance\"}", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "Fill Request", + "range": true, + "refId": "B", + "useBackend": false + } + ], + "title": "Fetch Hashes Pending Fetch Duration", + "type": "timeseries" + }, { "datasource": { "type": "prometheus", @@ -2634,7 +2727,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2642,8 +2736,7 @@ } ] }, - "unit": "cps", - "unitScale": true + "unit": "cps" }, "overrides": [] }, @@ -2651,7 +2744,7 @@ "h": 8, "w": 12, "x": 12, - "y": 61 + "y": 69 }, "id": 214, "options": { @@ -2745,7 +2838,7 @@ "h": 1, "w": 24, "x": 0, - "y": 69 + "y": 77 }, "id": 6, "panels": [], @@ -2802,15 +2895,15 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2818,7 +2911,7 @@ "h": 8, "w": 8, "x": 0, - "y": 70 + "y": 78 }, "id": 18, "options": { @@ -2897,15 +2990,15 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -2913,7 +3006,7 @@ "h": 8, "w": 8, "x": 8, - "y": 70 + "y": 78 }, "id": 16, "options": { @@ -3039,7 +3132,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -3047,8 +3141,7 @@ } ] }, - "unit": "cps", - "unitScale": true + "unit": "cps" }, "overrides": [] }, @@ -3056,7 +3149,7 @@ "h": 8, "w": 8, "x": 16, - "y": 70 + "y": 78 }, "id": 8, "options": { @@ -3131,8 +3224,7 @@ "viz": false } }, - "mappings": [], - "unitScale": true + "mappings": [] }, "overrides": [] }, @@ -3140,7 +3232,7 @@ "h": 8, "w": 8, "x": 0, - "y": 78 + "y": 86 }, "id": 54, "options": { @@ -3346,15 +3438,15 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - }, - "unitScale": true + } }, "overrides": [] }, @@ -3362,7 +3454,7 @@ "h": 8, "w": 14, "x": 8, - "y": 78 + "y": 86 }, "id": 103, "options": {