From 45bc298e1094854ea4149e6bfb21480165c8b459 Mon Sep 17 00:00:00 2001 From: Nico Flaig Date: Sat, 7 Oct 2023 11:03:41 +0200 Subject: [PATCH] feat: add rated.network score to validator monitor dashboard (#6027) * Add rated.network score panel * Move rated.network panel near the top * Display rated.network effectiveness rating in % --- dashboards/lodestar_validator_monitor.json | 504 ++++++++++++--------- 1 file changed, 301 insertions(+), 203 deletions(-) diff --git a/dashboards/lodestar_validator_monitor.json b/dashboards/lodestar_validator_monitor.json index b3c3a2a67835..5bc844a639fc 100644 --- a/dashboards/lodestar_validator_monitor.json +++ b/dashboards/lodestar_validator_monitor.json @@ -89,7 +89,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "9.3.2", + "pluginVersion": "10.1.1", "targets": [ { "datasource": { @@ -140,9 +140,10 @@ "fields": "", "values": false }, - "showUnfilled": true + "showUnfilled": true, + "valueMode": "color" }, - "pluginVersion": "9.3.2", + "pluginVersion": "10.1.1", "targets": [ { "datasource": { @@ -184,6 +185,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -251,7 +253,9 @@ }, "custom": { "align": "auto", - "displayMode": "auto", + "cellOptions": { + "type": "auto" + }, "inspect": false }, "mappings": [] @@ -266,7 +270,9 @@ }, "id": 4, "options": { + "cellHeight": "sm", "footer": { + "countRows": false, "fields": "", "reducer": [ "sum" @@ -276,7 +282,7 @@ "frameIndex": 0, "showHeader": true }, - "pluginVersion": "9.3.2", + "pluginVersion": "10.1.1", "targets": [ { "datasource": { @@ -384,7 +390,7 @@ "unit": "s" } }, - "pluginVersion": "9.3.2", + "pluginVersion": "10.1.1", "targets": [ { "datasource": { @@ -410,6 +416,7 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "description": "Metric based on formula used by rated.network", "fieldConfig": { "defaults": { "color": { @@ -422,21 +429,22 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 10, + "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, - "showPoints": "never", - "spanNulls": true, + "showPoints": "auto", + "spanNulls": false, "stacking": { "group": "A", "mode": "none" @@ -446,7 +454,7 @@ } }, "mappings": [], - "unit": "none" + "unit": "percentunit" }, "overrides": [] }, @@ -456,35 +464,33 @@ "x": 12, "y": 9 }, - "id": 6, + "id": 33, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", - "showLegend": false + "showLegend": true }, "tooltip": { - "mode": "multi", + "mode": "single", "sort": "none" } }, - "pluginVersion": "8.4.0-beta1", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "exemplar": false, - "expr": "avg(\n rate(validator_monitor_prev_epoch_on_chain_balance[32m])\n)", - "hide": false, - "interval": "", - "legendFormat": "balance_delta", + "editorMode": "code", + "expr": "5/8\n*\n(\n 1 -\n sum(rate(validator_monitor_prev_epoch_on_chain_source_attester_miss_total[$rate_interval]))\n /\n sum(\n rate(validator_monitor_prev_epoch_on_chain_source_attester_miss_total[$rate_interval])\n +\n rate(validator_monitor_prev_epoch_on_chain_source_attester_hit_total[$rate_interval])\n )\n)\n*\n(\n (\n 1 -\n sum(rate(validator_monitor_prev_epoch_on_chain_head_attester_miss_total[$rate_interval]))\n /\n sum(\n rate(validator_monitor_prev_epoch_on_chain_head_attester_miss_total[$rate_interval])\n +\n rate(validator_monitor_prev_epoch_on_chain_head_attester_hit_total[$rate_interval])\n )\n ) \n + \n (\n 1 -\n sum(rate(validator_monitor_prev_epoch_on_chain_target_attester_miss_total[$rate_interval]))\n /\n sum(\n rate(validator_monitor_prev_epoch_on_chain_target_attester_miss_total[$rate_interval])\n +\n rate(validator_monitor_prev_epoch_on_chain_target_attester_hit_total[$rate_interval])\n )\n )\n +\n (\n 1\n -\n sum(rate(validator_monitor_prev_epoch_on_chain_source_attester_miss_total[$rate_interval]))\n /\n sum(\n rate(validator_monitor_prev_epoch_on_chain_source_attester_miss_total[$rate_interval])\n +\n rate(validator_monitor_prev_epoch_on_chain_source_attester_hit_total[$rate_interval])\n )\n )\n) \n*\n1/3\n*\n1/(\n sum(rate(validator_monitor_prev_epoch_on_chain_inclusion_distance_sum[$rate_interval]))\n /\n sum(rate(validator_monitor_prev_epoch_on_chain_inclusion_distance_count[$rate_interval]))\n)\n+\n3/8 * 1 - 0.17/100", + "legendFormat": "Effectiveness Rating", + "range": true, "refId": "A" } ], - "title": "balance delta prev epoch", + "title": "rated.network score", "type": "timeseries" }, { @@ -512,6 +518,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -592,6 +599,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -609,7 +617,7 @@ } }, "mappings": [], - "unit": "short" + "unit": "none" }, "overrides": [] }, @@ -619,7 +627,7 @@ "x": 12, "y": 17 }, - "id": 10, + "id": 6, "options": { "legend": { "calcs": [], @@ -640,25 +648,14 @@ "uid": "${DS_PROMETHEUS}" }, "exemplar": false, - "expr": "avg(validator_monitor_prev_epoch_on_chain_inclusion_distance)", - "interval": "", - "legendFormat": "inclusion distance", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": false, - "expr": "rate(validator_monitor_prev_epoch_on_chain_inclusion_distance_sum[$rate_interval])\n/\nrate(validator_monitor_prev_epoch_on_chain_inclusion_distance_count[$rate_interval])", + "expr": "avg(\n rate(validator_monitor_prev_epoch_on_chain_balance[32m])\n)", "hide": false, "interval": "", - "legendFormat": "inclusion distance new", - "refId": "B" + "legendFormat": "balance_delta", + "refId": "A" } ], - "title": "Avg inclusion distance", + "title": "balance delta prev epoch", "type": "timeseries" }, { @@ -686,6 +683,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 4, @@ -773,7 +771,6 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "description": "Min delay from when the validator should send an object and when it was received", "fieldConfig": { "defaults": { "color": { @@ -793,6 +790,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -810,7 +808,7 @@ } }, "mappings": [], - "unit": "s" + "unit": "short" }, "overrides": [] }, @@ -820,13 +818,13 @@ "x": 12, "y": 25 }, - "id": 18, + "id": 10, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", - "showLegend": true + "showLegend": false }, "tooltip": { "mode": "multi", @@ -841,22 +839,10 @@ "uid": "${DS_PROMETHEUS}" }, "exemplar": false, - "expr": "sum(rate(validator_monitor_prev_epoch_attestations_min_delay_seconds_sum[$rate_interval]))\n/\nsum(rate(validator_monitor_prev_epoch_attestations_min_delay_seconds_count[$rate_interval]))", - "hide": false, - "interval": "", - "legendFormat": "attestations", - "refId": "Attestations" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": false, - "expr": "sum(rate(validator_monitor_prev_epoch_aggregates_min_delay_seconds_sum[$rate_interval]))\n/\nsum(rate(validator_monitor_prev_epoch_aggregates_min_delay_seconds_count[$rate_interval]))", + "expr": "avg(validator_monitor_prev_epoch_on_chain_inclusion_distance)", "interval": "", - "legendFormat": "aggregates", - "refId": "Aggregates" + "legendFormat": "inclusion distance", + "refId": "A" }, { "datasource": { @@ -864,14 +850,14 @@ "uid": "${DS_PROMETHEUS}" }, "exemplar": false, - "expr": "sum(rate(validator_monitor_prev_epoch_beacon_blocks_min_delay_seconds_sum[$rate_interval]))\n/\nsum(rate(validator_monitor_prev_epoch_beacon_blocks_min_delay_seconds_count[$rate_interval]))", + "expr": "rate(validator_monitor_prev_epoch_on_chain_inclusion_distance_sum[$rate_interval])\n/\nrate(validator_monitor_prev_epoch_on_chain_inclusion_distance_count[$rate_interval])", "hide": false, "interval": "", - "legendFormat": "", - "refId": "Blocks" + "legendFormat": "inclusion distance new", + "refId": "B" } ], - "title": "Prev epoch min delay", + "title": "Avg inclusion distance", "type": "timeseries" }, { @@ -953,7 +939,7 @@ "unit": "short" } }, - "pluginVersion": "9.3.2", + "pluginVersion": "10.1.1", "reverseYBuckets": false, "targets": [ { @@ -992,6 +978,7 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "description": "Min delay from when the validator should send an object and when it was received", "fieldConfig": { "defaults": { "color": { @@ -1011,6 +998,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1021,14 +1009,14 @@ "spanNulls": true, "stacking": { "group": "A", - "mode": "normal" + "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], - "unit": "percentunit" + "unit": "s" }, "overrides": [] }, @@ -1038,13 +1026,13 @@ "x": 12, "y": 33 }, - "id": 14, + "id": 18, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", - "showLegend": false + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1059,23 +1047,11 @@ "uid": "${DS_PROMETHEUS}" }, "exemplar": false, - "expr": "count(validator_monitor_prev_epoch_on_chain_inclusion_distance == 1) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", - "hide": false, - "interval": "", - "legendFormat": "1", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": false, - "expr": "count(validator_monitor_prev_epoch_on_chain_inclusion_distance == 2) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", + "expr": "sum(rate(validator_monitor_prev_epoch_attestations_min_delay_seconds_sum[$rate_interval]))\n/\nsum(rate(validator_monitor_prev_epoch_attestations_min_delay_seconds_count[$rate_interval]))", "hide": false, "interval": "", - "legendFormat": "2", - "refId": "C" + "legendFormat": "attestations", + "refId": "Attestations" }, { "datasource": { @@ -1083,11 +1059,10 @@ "uid": "${DS_PROMETHEUS}" }, "exemplar": false, - "expr": "count(5 > validator_monitor_prev_epoch_on_chain_inclusion_distance >= 3) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", - "hide": false, + "expr": "sum(rate(validator_monitor_prev_epoch_aggregates_min_delay_seconds_sum[$rate_interval]))\n/\nsum(rate(validator_monitor_prev_epoch_aggregates_min_delay_seconds_count[$rate_interval]))", "interval": "", - "legendFormat": "3-5", - "refId": "E" + "legendFormat": "aggregates", + "refId": "Aggregates" }, { "datasource": { @@ -1095,25 +1070,14 @@ "uid": "${DS_PROMETHEUS}" }, "exemplar": false, - "expr": "count(10 > validator_monitor_prev_epoch_on_chain_inclusion_distance >= 5) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", + "expr": "sum(rate(validator_monitor_prev_epoch_beacon_blocks_min_delay_seconds_sum[$rate_interval]))\n/\nsum(rate(validator_monitor_prev_epoch_beacon_blocks_min_delay_seconds_count[$rate_interval]))", "hide": false, "interval": "", - "legendFormat": "5-10", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": false, - "expr": "count(validator_monitor_prev_epoch_on_chain_inclusion_distance >= 10) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", - "interval": "", - "legendFormat": "+10", - "refId": "A" + "legendFormat": "", + "refId": "Blocks" } ], - "title": "Inclusion distance distribution", + "title": "Prev epoch min delay", "type": "timeseries" }, { @@ -1195,7 +1159,7 @@ "unit": "short" } }, - "pluginVersion": "9.3.2", + "pluginVersion": "10.1.1", "reverseYBuckets": false, "targets": [ { @@ -1246,32 +1210,32 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 8, - "gradientMode": "opacity", + "fillOpacity": 10, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", - "mode": "none" + "mode": "normal" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], - "unit": "short" + "unit": "percentunit" }, "overrides": [] }, @@ -1281,13 +1245,13 @@ "x": 12, "y": 41 }, - "id": 20, + "id": 14, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", - "showLegend": true + "showLegend": false }, "tooltip": { "mode": "multi", @@ -1301,30 +1265,62 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "editorMode": "code", "exemplar": false, - "expr": "validator_monitor_prev_epoch_attestations_count / validator_monitor_validators", + "expr": "count(validator_monitor_prev_epoch_on_chain_inclusion_distance == 1) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", + "hide": false, "interval": "", - "legendFormat": "attestations_sent", - "range": true, - "refId": "A" + "legendFormat": "1", + "refId": "D" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "editorMode": "code", "exemplar": false, - "expr": "rate(validator_monitor_prev_epoch_aggregates_count[$rate_interval]) / validator_monitor_validators", + "expr": "count(validator_monitor_prev_epoch_on_chain_inclusion_distance == 2) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", "hide": false, "interval": "", - "legendFormat": "aggregates_sent", - "range": true, - "refId": "D" + "legendFormat": "2", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": false, + "expr": "count(5 > validator_monitor_prev_epoch_on_chain_inclusion_distance >= 3) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", + "hide": false, + "interval": "", + "legendFormat": "3-5", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": false, + "expr": "count(10 > validator_monitor_prev_epoch_on_chain_inclusion_distance >= 5) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", + "hide": false, + "interval": "", + "legendFormat": "5-10", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": false, + "expr": "count(validator_monitor_prev_epoch_on_chain_inclusion_distance >= 10) / count(validator_monitor_prev_epoch_on_chain_inclusion_distance)", + "interval": "", + "legendFormat": "+10", + "refId": "A" } ], - "title": "Attestater sent per epoch per validator", + "title": "Inclusion distance distribution", "type": "timeseries" }, { @@ -1351,6 +1347,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1422,6 +1419,188 @@ "title": "Attestation inclusions epoch per validator", "type": "timeseries" }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 49 + }, + "id": 20, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.4.0-beta1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "validator_monitor_prev_epoch_attestations_count / validator_monitor_validators", + "interval": "", + "legendFormat": "attestations_sent", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(validator_monitor_prev_epoch_aggregates_count[$rate_interval]) / validator_monitor_validators", + "hide": false, + "interval": "", + "legendFormat": "aggregates_sent", + "range": true, + "refId": "D" + } + ], + "title": "Attestater sent per epoch per validator", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "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": [], + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 57 + }, + "id": 32, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.3.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "rate(validator_monitor_unaggregated_attestation_submitted_sent_peers_count_bucket{le=\"0\"} [$rate_interval])\n/ on(instance)\nrate(validator_monitor_unaggregated_attestation_submitted_sent_peers_count_count [$rate_interval])", + "format": "time_series", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Unaggregated attestations submitted to zero peers", + "type": "timeseries" + }, { "datasource": { "type": "prometheus", @@ -1446,6 +1625,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1533,7 +1713,7 @@ "h": 8, "w": 12, "x": 12, - "y": 49 + "y": 57 }, "id": 22, "options": { @@ -1600,92 +1780,10 @@ ], "title": "Block proposer balance delta", "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "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" - } - }, - "mappings": [], - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 57 - }, - "id": 32, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "rate(validator_monitor_unaggregated_attestation_submitted_sent_peers_count_bucket{le=\"0\"} [$rate_interval])\n/ on(instance)\nrate(validator_monitor_unaggregated_attestation_submitted_sent_peers_count_count [$rate_interval])", - "format": "time_series", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Unaggregated attestations submitted to zero peers", - "type": "timeseries" } ], "refresh": "10s", - "schemaVersion": 37, + "schemaVersion": 38, "style": "dark", "tags": [ "lodestar"