From 0961ffd4e279c4afb0ce04050eb7077740fc6638 Mon Sep 17 00:00:00 2001 From: Vladimir Gorkavenko <32727352+vgorkavenko@users.noreply.github.com> Date: Tue, 4 Apr 2023 14:01:53 +0500 Subject: [PATCH] feat: change dashboards for withdrawals (#137) * feat: change dashboards for withdrawals * fix: query * fix: remove goerli --- .../provisioning/dashboards/operators.json | 1228 ++++- .../provisioning/dashboards/rewards.json | 655 ++- .../provisioning/dashboards/validators.json | 4851 ++++++++++------- .../clickhouse/clickhouse.constants.ts | 2 +- 4 files changed, 4524 insertions(+), 2212 deletions(-) diff --git a/docker/grafana/provisioning/dashboards/operators.json b/docker/grafana/provisioning/dashboards/operators.json index 2744b4bd..e245c6b9 100644 --- a/docker/grafana/provisioning/dashboards/operators.json +++ b/docker/grafana/provisioning/dashboards/operators.json @@ -24,8 +24,7 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 14, - "iteration": 1675248006214, + "iteration": 1680503579227, "links": [ { "asDropdown": false, @@ -64,6 +63,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Difference between `Now` and timestamp of last slot of processed epoch ", "fieldConfig": { "defaults": { "color": { @@ -201,6 +201,68 @@ "title": "Epoch", "type": "stat" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "text", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 14, + "x": 10, + "y": 1 + }, + "id": 1725, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "name" + }, + "pluginVersion": "8.5.15", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{nos_name=\"${nos_name_var}\"})", + "interval": "", + "legendFormat": "🏖️ ${nos_name_var}", + "refId": "A" + } + ], + "title": "Node operator", + "type": "stat" + }, { "collapsed": false, "datasource": { @@ -287,6 +349,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Alias for `pending_queued` and `pending_initialized` statuses", "fieldConfig": { "defaults": { "color": { @@ -351,26 +414,20 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Alias for `active_exiting`, `exited_unslashed`, `exited_slashed` and `withdrawal_possible` statuses", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "fixedColor": "yellow", + "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { - "color": "text", + "color": "super-light-blue", "value": null - }, - { - "color": "super-light-red", - "value": 0 - }, - { - "color": "red", - "value": 1 } ] }, @@ -384,7 +441,7 @@ "x": 10, "y": 6 }, - "id": 1721, + "id": 1776, "options": { "colorMode": "value", "graphMode": "area", @@ -408,13 +465,78 @@ "uid": "PBFA97CFB590B2093" }, "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"slashed\",nos_name=\"${nos_name_var}\"})", + "expr": "sum(ethereum_validators_monitoring_user_validators{nos_name=\"${nos_name_var}\",status=\"withdrawal_pending\"})", "interval": "", "legendFormat": "{{owner}}", "refId": "A" } ], - "title": "Slashed validators", + "title": "Full withdrawal pending", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "Alias for `withdrawal_done`, and `withdrawal_possible` statuses. `withdrawal_possible` is considered fully withdrawn when the validator balance is `0`.", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "text", + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "super-light-blue", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 15, + "y": 6 + }, + "id": 1780, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.5.15", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{nos_name=\"${nos_name_var}\",status=\"withdrawal_done\"})", + "interval": "", + "legendFormat": "{{owner}}", + "refId": "A" + } + ], + "title": "Full withdrawn", "type": "stat" }, { @@ -422,6 +544,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Alias for `active_slashed`, `exited_slashed` or any validator status with `slashed = true` in state", "fieldConfig": { "defaults": { "color": { @@ -434,22 +557,31 @@ { "color": "text", "value": null + }, + { + "color": "super-light-red", + "value": 0 + }, + { + "color": "red", + "value": 1 } ] - } + }, + "unit": "locale" }, "overrides": [] }, "gridPos": { - "h": 10, - "w": 9, - "x": 15, + "h": 3, + "w": 4, + "x": 20, "y": 6 }, - "id": 1725, + "id": 1721, "options": { "colorMode": "value", - "graphMode": "none", + "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { @@ -460,7 +592,7 @@ "values": false }, "text": {}, - "textMode": "name" + "textMode": "auto" }, "pluginVersion": "8.5.15", "targets": [ @@ -470,13 +602,13 @@ "uid": "PBFA97CFB590B2093" }, "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{nos_name=\"${nos_name_var}\"})", + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"slashed\",nos_name=\"${nos_name_var}\"})", "interval": "", - "legendFormat": "🏖️ ${nos_name_var}", + "legendFormat": "{{owner}}", "refId": "A" } ], - "title": "Node operator", + "title": "Slashed validators", "type": "stat" }, { @@ -524,7 +656,638 @@ { "id": "color", "value": { - "fixedColor": "super-light-green", + "fixedColor": "super-light-green", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 0, + "y": 9 + }, + "id": 1715, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"ongoing\",nos_name=\"${nos_name_var}\"})", + "interval": "", + "legendFormat": "Selected", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"ongoing\",nos_name!=\"${nos_name_var}\"})", + "hide": false, + "interval": "", + "legendFormat": "User (other)", + "refId": "B" + } + ], + "title": "Ongoing validators share", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "Alias for `pending_queued` and `pending_initialized` statuses", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "locale" + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "A" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-blue", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 5, + "y": 9 + }, + "id": 1719, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"pending\",nos_name=\"${nos_name_var}\"})", + "interval": "", + "legendFormat": "Selected", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"pending\",nos_name!=\"${nos_name_var}\"})", + "hide": false, + "interval": "", + "legendFormat": "User (other)", + "refId": "B" + } + ], + "title": "Pending validators share", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "Alias for `active_exiting`, `exited_unslashed`, `exited_slashed` and `withdrawal_possible` statuses", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "locale" + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "A" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-yellow", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 10, + "y": 9 + }, + "id": 1778, + "options": { + "displayLabels": [], + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "asc" + } + }, + "pluginVersion": "8.1.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"withdrawal_pending\",nos_name=\"${nos_name_var}\"})", + "interval": "", + "legendFormat": "Selected", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"withdrawal_pending\",nos_name!=\"${nos_name_var}\"})", + "hide": false, + "interval": "", + "legendFormat": "User (other)", + "range": true, + "refId": "B" + } + ], + "title": "Full withdrawal pending", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "Alias for `withdrawal_done`, and `withdrawal_possible` statuses. `withdrawal_possible` is considered fully withdrawn when the validator balance is `0`.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "locale" + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "A" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "text", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#ffffff", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 15, + "y": 9 + }, + "id": 1782, + "options": { + "displayLabels": [], + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "asc" + } + }, + "pluginVersion": "8.1.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{nos_name=\"${nos_name_var}\",status=\"withdrawal_done\"})", + "interval": "", + "legendFormat": "Selected", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{nos_name!=\"${nos_name_var}\",status=\"withdrawal_done\"})", + "hide": false, + "interval": "", + "legendFormat": "User (other)", + "range": true, + "refId": "B" + } + ], + "title": "Full withdrawn", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "Alias for `active_slashed`, `exited_slashed` or any validator status with `slashed = true` in state", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "locale" + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "A" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-red", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 20, + "y": 9 + }, + "id": 1723, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"slashed\",nos_name=\"${nos_name_var}\"})", + "interval": "", + "legendFormat": "Selected", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"slashed\",nos_name!=\"${nos_name_var}\"})", + "hide": false, + "interval": "", + "legendFormat": "User (other)", + "refId": "B" + } + ], + "title": "Slashed validators share", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "text", + "mode": "fixed" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 15, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 3, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "text", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "ongoing" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "pending" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "withdrawal_pending" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "withdrawal_done" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "text", "mode": "fixed" } } @@ -533,205 +1296,225 @@ ] }, "gridPos": { - "h": 7, - "w": 5, + "h": 5, + "w": 13, "x": 0, - "y": 9 + "y": 16 }, - "id": 1715, + "id": 1784, "options": { "legend": { - "displayMode": "table", - "placement": "bottom", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, - "pluginVersion": "8.1.5", + "pluginVersion": "8.5.15", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"ongoing\",nos_name=\"${nos_name_var}\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum by (status) (ethereum_validators_monitoring_user_validators{status=~\"ongoing|pending|withdrawal_pending|withdrawal_done\",nos_name=\"${nos_name_var}\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0", + "instant": false, "interval": "", - "legendFormat": "Selected", + "legendFormat": "{{status}}", + "range": true, "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"ongoing\",nos_name!=\"${nos_name_var}\"})", - "hide": false, - "interval": "", - "legendFormat": "User (other)", - "refId": "B" } ], - "title": "Ongoing validators share", - "type": "piechart" + "title": "Status progress", + "transformations": [], + "type": "timeseries" }, { "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" }, "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" + "mode": "thresholds" }, "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } + "align": "center", + "displayMode": "auto", + "inspect": false }, "mappings": [], - "unit": "locale" + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } }, "overrides": [ { "matcher": { - "id": "byFrameRefID", - "options": "A" + "id": "byName", + "options": "Validator" }, "properties": [ { - "id": "color", - "value": { - "fixedColor": "blue", - "mode": "fixed" - } + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "blockcha.in", + "url": "https://beaconcha.in/validator/${__value.raw}" + } + ] } ] }, { "matcher": { - "id": "byFrameRefID", - "options": "B" + "id": "byName", + "options": "Status" }, "properties": [ { - "id": "color", - "value": { - "fixedColor": "super-light-blue", - "mode": "fixed" - } + "id": "custom.displayMode", + "value": "json-view" + }, + { + "id": "custom.filterable", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Balance" + }, + "properties": [ + { + "id": "unit", + "value": "ETH" } ] } ] }, "gridPos": { - "h": 7, - "w": 5, - "x": 5, - "y": 9 + "h": 10, + "w": 11, + "x": 13, + "y": 16 }, - "id": 1719, + "id": 1788, "options": { - "legend": { - "displayMode": "table", - "placement": "bottom", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" + "footer": { + "enablePagination": true, + "fields": [ + "Balance" ], - "fields": "", - "values": false + "reducer": [ + "sum" + ], + "show": true }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "showHeader": true }, - "pluginVersion": "8.1.5", + "pluginVersion": "8.5.15", "targets": [ { "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"pending\",nos_name=\"${nos_name_var}\"})", - "interval": "", - "legendFormat": "Selected", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" }, - "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"pending\",nos_name!=\"${nos_name_var}\"})", - "hide": false, - "interval": "", - "legendFormat": "User (other)", - "refId": "B" + "dateTimeType": "DATETIME", + "extrapolate": true, + "format": "table", + "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", + "intervalFactor": 1, + "query": "SELECT\n val_id as Validator,\n val_status as Status,\n val_balance / pow(10,9) as Balance\nFROM\n validators_summary\nWHERE val_nos_name = '${nos_name_var}' AND epoch = ${epoch_number_var} AND (val_status in ['active_exiting','exited_unslashed', 'exited_slashed'] or val_status == 'withdrawal_possible' and val_balance != 0)\nORDER BY val_id, val_balance\nLIMIT 1 by val_id", + "rawQuery": "SELECT\n val_id as Validator,\n val_status as Status,\n val_balance / pow(10,9) as Balance\nFROM\n validators_summary\nWHERE val_nos_name = 'cryptomanufaktur.io' AND epoch = 166657 AND (val_status in ['active_exiting','exited_unslashed', 'exited_slashed'] or val_status == 'withdrawal_possible' and val_balance != 0)\nORDER BY val_id, val_balance\nLIMIT 1 by val_id", + "refId": "A", + "round": "0s", + "skip_comments": true } ], - "title": "Pending validators share", - "type": "piechart" + "title": "On exit validators", + "type": "table" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" + "fixedColor": "text", + "mode": "fixed" }, "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 15, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 3, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } }, + "links": [], "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "text", + "value": null + } + ] + }, "unit": "locale" }, "overrides": [ { "matcher": { - "id": "byFrameRefID", - "options": "A" + "id": "byName", + "options": "full" }, "properties": [ { "id": "color", "value": { - "fixedColor": "red", + "fixedColor": "yellow", "mode": "fixed" } } @@ -739,14 +1522,29 @@ }, { "matcher": { - "id": "byFrameRefID", - "options": "B" + "id": "byName", + "options": "partial" }, "properties": [ { "id": "color", "value": { - "fixedColor": "super-light-red", + "fixedColor": "dark-orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "full" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", "mode": "fixed" } } @@ -755,61 +1553,43 @@ ] }, "gridPos": { - "h": 7, - "w": 5, - "x": 10, - "y": 9 + "h": 5, + "w": 13, + "x": 0, + "y": 21 }, - "id": 1723, + "id": 1786, "options": { "legend": { - "displayMode": "table", - "placement": "bottom", - "values": [ - "value" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, - "pluginVersion": "8.1.5", + "pluginVersion": "8.5.15", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"slashed\",nos_name=\"${nos_name_var}\"})", + "editorMode": "code", + "exemplar": false, + "expr": "(ethereum_validators_monitoring_operator_withdrawals_count{nos_name=\"${nos_name_var}\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0", + "instant": false, "interval": "", - "legendFormat": "Selected", + "legendFormat": "{{type}}", + "range": true, "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_user_validators{status=\"slashed\",nos_name!=\"${nos_name_var}\"})", - "hide": false, - "interval": "", - "legendFormat": "User (other)", - "refId": "B" } ], - "title": "Slashed validators share", - "type": "piechart" + "title": "Total withdrawals count by type", + "transformations": [], + "type": "timeseries" }, { "collapsed": false, @@ -821,7 +1601,7 @@ "h": 1, "w": 24, "x": 0, - "y": 16 + "y": 26 }, "id": 1753, "panels": [], @@ -913,7 +1693,7 @@ "h": 8, "w": 8, "x": 0, - "y": 17 + "y": 27 }, "id": 1759, "options": { @@ -1034,7 +1814,7 @@ "h": 8, "w": 8, "x": 8, - "y": 17 + "y": 27 }, "id": 1761, "options": { @@ -1167,7 +1947,7 @@ "h": 8, "w": 8, "x": 16, - "y": 17 + "y": 27 }, "id": 1762, "options": { @@ -1268,7 +2048,7 @@ "h": 8, "w": 8, "x": 0, - "y": 25 + "y": 35 }, "id": 1760, "options": { @@ -1380,7 +2160,7 @@ "h": 8, "w": 8, "x": 8, - "y": 25 + "y": 35 }, "id": 1773, "options": { @@ -1493,7 +2273,7 @@ "h": 8, "w": 8, "x": 16, - "y": 25 + "y": 35 }, "id": 1774, "options": { @@ -1593,7 +2373,7 @@ "h": 8, "w": 8, "x": 0, - "y": 33 + "y": 43 }, "id": 1758, "options": { @@ -1645,7 +2425,7 @@ "h": 1, "w": 24, "x": 0, - "y": 41 + "y": 51 }, "id": 1727, "panels": [ @@ -1723,7 +2503,7 @@ "h": 5, "w": 24, "x": 0, - "y": 42 + "y": 53 }, "id": 1729, "options": { @@ -1821,7 +2601,7 @@ "h": 6, "w": 12, "x": 0, - "y": 47 + "y": 58 }, "id": 2, "options": { @@ -1916,7 +2696,7 @@ "h": 6, "w": 12, "x": 12, - "y": 47 + "y": 58 }, "id": 6, "options": { @@ -2023,7 +2803,7 @@ "h": 7, "w": 8, "x": 0, - "y": 53 + "y": 64 }, "id": 1733, "options": { @@ -2055,8 +2835,8 @@ "format": "table", "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, - "query": "SELECT\n current.val_balance - previous.val_balance AS GWei,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var} AND\n val_nos_name = '${nos_name_var}'\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var} - 6 AND\n val_nos_name = '${nos_name_var}'\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nORDER BY GWei ASC, Validator\nLIMIT 100", - "rawQuery": "SELECT\n current.val_balance - previous.val_balance AS GWei,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 178184 AND\n val_nos_name = 'Anyblock Analytics'\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 178184 - 6 AND\n val_nos_name = 'Anyblock Analytics'\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nORDER BY GWei ASC, Validator\nLIMIT 100", + "query": "SELECT\n current.val_balance - previous.val_balance + ifNull(withdrawals.withdrawn, 0) AS GWei,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var} AND\n val_nos_name = '${nos_name_var}'\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var} - 6 AND\n val_nos_name = '${nos_name_var}'\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nLEFT JOIN (\n SELECT\n sum(val_balance_withdrawn) as withdrawn, val_id, val_nos_id\n FROM (\n SELECT val_balance_withdrawn, val_id, val_nos_id\n FROM validators_summary\n WHERE\n val_nos_id IS NOT NULL AND\n epoch > (${epoch_number_var} - 6) AND epoch <= ${epoch_number_var} AND\n val_nos_name = '${nos_name_var}'\n LIMIT 1 BY epoch, val_id\n )\n GROUP BY val_id, val_nos_id\n) AS withdrawals\nON\n withdrawals.val_nos_id = current.val_nos_id AND\n withdrawals.val_id = current.val_id\nORDER BY GWei ASC, Validator\nLIMIT 100", + "rawQuery": "SELECT\n current.val_balance - previous.val_balance + ifNull(withdrawals.withdrawn, 0) AS GWei,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 5040 AND\n val_nos_name = 'Operator1'\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 5040 - 6 AND\n val_nos_name = 'Operator1'\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nLEFT JOIN (\n SELECT\n sum(val_balance_withdrawn) as withdrawn, val_id, val_nos_id\n FROM (\n SELECT val_balance_withdrawn, val_id, val_nos_id\n FROM validators_summary\n WHERE\n val_nos_id IS NOT NULL AND\n epoch > (5040 - 6) AND epoch <= 5040 AND\n val_nos_name = 'Operator1'\n LIMIT 1 BY epoch, val_id\n )\n GROUP BY val_id, val_nos_id\n) AS withdrawals\nON\n withdrawals.val_nos_id = current.val_nos_id AND\n withdrawals.val_id = current.val_id\nORDER BY GWei ASC, Validator\nLIMIT 100", "refId": "A", "round": "0s", "skip_comments": true @@ -2126,7 +2906,7 @@ "h": 7, "w": 16, "x": 8, - "y": 53 + "y": 64 }, "id": 5, "options": { @@ -2173,7 +2953,7 @@ "h": 1, "w": 24, "x": 0, - "y": 42 + "y": 52 }, "id": 1735, "panels": [ @@ -2199,8 +2979,7 @@ "mode": "absolute", "steps": [ { - "color": "red", - "value": null + "color": "red" } ] } @@ -2256,7 +3035,7 @@ "h": 8, "w": 8, "x": 0, - "y": 43 + "y": 69 }, "id": 1737, "options": { @@ -2343,8 +3122,7 @@ "mode": "absolute", "steps": [ { - "color": "semi-dark-green", - "value": null + "color": "semi-dark-green" } ] } @@ -2355,7 +3133,7 @@ "h": 8, "w": 16, "x": 8, - "y": 43 + "y": 69 }, "id": 1739, "options": { @@ -2404,7 +3182,7 @@ "h": 1, "w": 24, "x": 0, - "y": 43 + "y": 53 }, "id": 1711, "panels": [ @@ -2538,7 +3316,7 @@ "h": 6, "w": 24, "x": 0, - "y": 44 + "y": 54 }, "id": 1745, "options": { @@ -2604,7 +3382,7 @@ "type": "vertamedia-clickhouse-datasource", "uid": "PDEE91DDB90597936" }, - "description": "AVG", + "description": "AVG.\n`Bad` is considered when validator's sync is less than chain avg value (including `SYNC_PARTICIPATION_DISTANCE_DOWN_FROM_CHAIN_AVG`) ", "fieldConfig": { "defaults": { "color": { @@ -2710,7 +3488,7 @@ "h": 8, "w": 8, "x": 0, - "y": 50 + "y": 60 }, "id": 1747, "options": { @@ -2743,7 +3521,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "SELECT\n sync_percent as Percent,\n val_id as Validator\nFROM\n validators_summary\nWHERE is_sync = 1 AND val_nos_name = '${nos_name_var}' AND epoch = ${epoch_number_var} AND sync_percent < (${chain_sync_avg_participation} - ${sync_participation_distance_var})\nORDER BY sync_percent, val_id\nLIMIT 1 by val_id", - "rawQuery": "SELECT\n sync_percent as Percent,\n val_id as Validator\nFROM\n validators_summary\nWHERE is_sync = 1 AND val_nos_name = 'Anyblock Analytics' AND epoch = 178184 AND sync_percent < (95.67792267072946 - 10)\nORDER BY sync_percent, val_id\nLIMIT 1 by val_id", + "rawQuery": "SELECT\n sync_percent as Percent,\n val_id as Validator\nFROM\n validators_summary\nWHERE is_sync = 1 AND val_nos_name = 'cryptomanufaktur.io' AND epoch = 166650 AND sync_percent < (78.81673216633499 - 10)\nORDER BY sync_percent, val_id\nLIMIT 1 by val_id", "refId": "A", "round": "0s", "skip_comments": true @@ -2824,7 +3602,7 @@ "h": 8, "w": 16, "x": 8, - "y": 50 + "y": 60 }, "id": 1749, "options": { @@ -2873,7 +3651,7 @@ "h": 1, "w": 24, "x": 0, - "y": 44 + "y": 54 }, "id": 1751, "panels": [ @@ -2989,7 +3767,7 @@ "h": 8, "w": 8, "x": 0, - "y": 59 + "y": 56 }, "id": 1755, "options": { @@ -3088,7 +3866,7 @@ "h": 8, "w": 16, "x": 8, - "y": 59 + "y": 56 }, "id": 1757, "options": { @@ -3235,7 +4013,7 @@ "h": 8, "w": 8, "x": 0, - "y": 67 + "y": 64 }, "id": 1764, "options": { @@ -3334,7 +4112,7 @@ "h": 8, "w": 16, "x": 8, - "y": 67 + "y": 64 }, "id": 1765, "options": { @@ -3493,7 +4271,7 @@ "h": 8, "w": 8, "x": 0, - "y": 75 + "y": 72 }, "id": 1770, "options": { @@ -3592,7 +4370,7 @@ "h": 8, "w": 16, "x": 8, - "y": 75 + "y": 72 }, "id": 1766, "options": { @@ -3739,7 +4517,7 @@ "h": 8, "w": 8, "x": 0, - "y": 83 + "y": 80 }, "id": 1771, "options": { @@ -3838,7 +4616,7 @@ "h": 8, "w": 16, "x": 8, - "y": 83 + "y": 80 }, "id": 1767, "options": { @@ -3930,8 +4708,7 @@ "mode": "absolute", "steps": [ { - "color": "red", - "value": null + "color": "red" } ] } @@ -3985,7 +4762,7 @@ "h": 8, "w": 8, "x": 0, - "y": 91 + "y": 88 }, "id": 1772, "options": { @@ -4072,8 +4849,7 @@ "mode": "absolute", "steps": [ { - "color": "red", - "value": null + "color": "red" } ] } @@ -4084,7 +4860,7 @@ "h": 8, "w": 16, "x": 8, - "y": 91 + "y": 88 }, "id": 1768, "options": { @@ -4133,8 +4909,8 @@ { "current": { "selected": true, - "text": "Allnodes", - "value": "Allnodes" + "text": "cryptomanufaktur.io", + "value": "cryptomanufaktur.io" }, "datasource": { "type": "prometheus", @@ -4161,8 +4937,8 @@ { "current": { "selected": false, - "text": "178184", - "value": "178184" + "text": "166657", + "value": "166657" }, "datasource": { "type": "prometheus", @@ -4289,8 +5065,8 @@ { "current": { "selected": false, - "text": "95.67792267072946", - "value": "95.67792267072946" + "text": "69.30803390266374", + "value": "69.30803390266374" }, "datasource": { "type": "prometheus", @@ -4317,8 +5093,8 @@ { "current": { "selected": false, - "text": "9", - "value": "9" + "text": "12", + "value": "12" }, "datasource": { "type": "prometheus", @@ -4354,6 +5130,6 @@ "timezone": "", "title": "NodeOperators", "uid": "3wimU2H7h", - "version": 5, + "version": 23, "weekStart": "" } diff --git a/docker/grafana/provisioning/dashboards/rewards.json b/docker/grafana/provisioning/dashboards/rewards.json index 1b1ab1e6..bdac8297 100644 --- a/docker/grafana/provisioning/dashboards/rewards.json +++ b/docker/grafana/provisioning/dashboards/rewards.json @@ -24,8 +24,7 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 19, - "iteration": 1675098681978, + "iteration": 1679814772893, "links": [ { "asDropdown": false, @@ -316,8 +315,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -329,7 +327,7 @@ "h": 4, "w": 8, "x": 0, - "y": 6 + "y": 2 }, "id": 1765, "options": { @@ -410,8 +408,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -423,7 +420,7 @@ "h": 4, "w": 8, "x": 8, - "y": 6 + "y": 2 }, "id": 1766, "options": { @@ -504,8 +501,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -517,7 +513,7 @@ "h": 4, "w": 8, "x": 16, - "y": 6 + "y": 2 }, "id": 1767, "options": { @@ -599,8 +595,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -612,7 +607,7 @@ "h": 4, "w": 12, "x": 0, - "y": 10 + "y": 6 }, "id": 1768, "options": { @@ -694,8 +689,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -707,7 +701,7 @@ "h": 4, "w": 12, "x": 12, - "y": 10 + "y": 6 }, "id": 1769, "options": { @@ -789,8 +783,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -802,7 +795,7 @@ "h": 4, "w": 8, "x": 0, - "y": 14 + "y": 10 }, "id": 1770, "options": { @@ -884,8 +877,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -897,7 +889,7 @@ "h": 4, "w": 8, "x": 8, - "y": 14 + "y": 10 }, "id": 1771, "options": { @@ -979,8 +971,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] }, @@ -992,7 +983,7 @@ "h": 4, "w": 8, "x": 16, - "y": 14 + "y": 10 }, "id": 1772, "options": { @@ -1378,7 +1369,7 @@ "mode": "palette-classic" }, "custom": { - "axisLabel": "", + "axisLabel": "Percent", "axisPlacement": "right", "barAlignment": 0, "drawStyle": "line", @@ -1445,7 +1436,9 @@ "id": 1776, "options": { "legend": { - "calcs": [], + "calcs": [ + "lastNotNull" + ], "displayMode": "list", "placement": "bottom" }, @@ -1467,7 +1460,7 @@ "refId": "A" } ], - "title": "Total reward effectiveness", + "title": "Total reward effectiveness progress", "transparent": true, "type": "timeseries" }, @@ -1514,8 +1507,8 @@ "overrides": [] }, "gridPos": { - "h": 4, - "w": 10, + "h": 3, + "w": 8, "x": 0, "y": 19 }, @@ -1541,11 +1534,11 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "expr": "((sum by () (ethereum_validators_monitoring_operator_reward{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)) / (((sum by () (ethereum_validators_monitoring_operator_reward{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)) + ((sum by () (ethereum_validators_monitoring_operator_penalty{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)) + (sum by () (ethereum_validators_monitoring_operator_missed_reward{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)) * 100", + "expr": "(sum_over_time((sum by () (ethereum_validators_monitoring_operator_reward{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])) / ((sum_over_time((sum by () (ethereum_validators_monitoring_operator_reward{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])) + (sum_over_time((sum by () (ethereum_validators_monitoring_operator_penalty{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])) + sum_over_time((sum by () (ethereum_validators_monitoring_operator_missed_reward{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])) * 100", "refId": "A" } ], - "title": "Rew. eff.", + "title": "Total reward eff. (${epochs_range} epochs range)", "type": "bargauge" }, { @@ -1676,10 +1669,22 @@ "value": 125 }, { - "id": "color", + "id": "color" + }, + { + "id": "thresholds", "value": { - "fixedColor": "green", - "mode": "fixed" + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 0 + } + ] } } ] @@ -1731,13 +1736,32 @@ "value": "color-background-solid" } ] + }, + { + "matcher": { + "id": "byName", + "options": "Withdrawn" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + }, + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + } + ] } ] }, "gridPos": { "h": 13, - "w": 14, - "x": 10, + "w": 16, + "x": 8, "y": 19 }, "id": 1758, @@ -1760,7 +1784,7 @@ "showHeader": true, "sortBy": [ { - "desc": true, + "desc": false, "displayName": "Rew. eff." } ] @@ -1853,6 +1877,21 @@ "legendFormat": "{{nos_name}}", "range": false, "refId": "effectiveness" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_operator_withdrawals_sum{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) / 10^9", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{nos_name}}", + "range": false, + "refId": "withdrawn" } ], "title": "Total summary (${epochs_range} epochs range)", @@ -1939,6 +1978,12 @@ ], "operation": "aggregate" }, + "Value #withdrawn": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, "nos_name": { "aggregations": [], "operation": "groupby" @@ -1957,10 +2002,11 @@ "indexByName": { "Value #earned (sum)": 5, "Value #effectiveness (sum)": 1, - "Value #error (sum)": 6, + "Value #error (sum)": 7, "Value #missed (sum)": 4, "Value #penalty (sum)": 3, "Value #reward (sum)": 2, + "Value #withdrawn (sum)": 6, "nos_name": 0 }, "renameByName": { @@ -1977,9 +2023,28 @@ "Value #reward (sum)": "Rewards", "Value #sync (sum)": "Sync", "Value #total (sum)": "Total", + "Value #withdrawn (sum)": "Withdrawn", "nos_name": "Operator" } } + }, + { + "id": "filterByValue", + "options": { + "filters": [ + { + "config": { + "id": "greaterOrEqual", + "options": { + "value": 0 + } + }, + "fieldName": "Rew. eff." + } + ], + "match": "all", + "type": "include" + } } ], "type": "table" @@ -2018,7 +2083,7 @@ "h": 3, "w": 3, "x": 0, - "y": 23 + "y": 22 }, "id": 1727, "options": { @@ -2060,7 +2125,7 @@ "defaults": { "color": { "fixedColor": "green", - "mode": "fixed" + "mode": "thresholds" }, "decimals": 3, "mappings": [], @@ -2070,22 +2135,43 @@ { "color": "green", "value": null - }, - { - "color": "red", - "value": 80 } ] }, "unit": "ETH ⛏️" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Total sum" + }, + "properties": [ + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 0 + } + ] + } + } + ] + } + ] }, "gridPos": { - "h": 9, - "w": 7, + "h": 6, + "w": 5, "x": 3, - "y": 23 + "y": 22 }, "id": 1732, "options": { @@ -2155,7 +2241,7 @@ "h": 3, "w": 3, "x": 0, - "y": 26 + "y": 25 }, "id": 1730, "options": { @@ -2217,10 +2303,10 @@ "overrides": [] }, "gridPos": { - "h": 3, - "w": 3, + "h": 2, + "w": 8, "x": 0, - "y": 29 + "y": 28 }, "id": 1731, "options": { @@ -2251,6 +2337,71 @@ "title": "Total missed rewards", "type": "stat" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "yellow", + "mode": "fixed" + }, + "decimals": 3, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ETH" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 8, + "x": 0, + "y": 30 + }, + "id": 1779, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "8.5.15", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_operator_withdrawals_sum{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) / 10^9", + "refId": "A" + } + ], + "title": "Total withdrawn", + "type": "stat" + }, { "collapsed": true, "gridPos": { @@ -2366,7 +2517,7 @@ "h": 13, "w": 11, "x": 0, - "y": 27 + "y": 36 }, "id": 1754, "options": { @@ -2586,7 +2737,7 @@ "h": 13, "w": 13, "x": 11, - "y": 27 + "y": 36 }, "id": 1744, "options": { @@ -2732,7 +2883,7 @@ "h": 13, "w": 11, "x": 0, - "y": 41 + "y": 34 }, "id": 1755, "options": { @@ -2938,7 +3089,7 @@ "h": 13, "w": 13, "x": 11, - "y": 41 + "y": 34 }, "id": 1750, "options": { @@ -3092,7 +3243,7 @@ "h": 13, "w": 11, "x": 0, - "y": 55 + "y": 35 }, "id": 1756, "options": { @@ -3323,7 +3474,7 @@ "h": 13, "w": 13, "x": 11, - "y": 55 + "y": 35 }, "id": 1751, "options": { @@ -3361,6 +3512,372 @@ ], "title": "🟪 Missed rewards", "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 35 + }, + "id": 1783, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "center", + "displayMode": "color-text", + "filterable": false, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "light-yellow" + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Total" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "custom.width", + "value": 100 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Partial" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "custom.width", + "value": 100 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Full" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Operator" + }, + "properties": [ + { + "id": "custom.filterable", + "value": false + }, + { + "id": "color", + "value": { + "fixedColor": "text", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 13, + "w": 11, + "x": 0, + "y": 36 + }, + "id": 1780, + "options": { + "footer": { + "enablePagination": true, + "fields": [], + "reducer": [ + "sum" + ], + "show": true + }, + "frameIndex": 0, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Total" + } + ] + }, + "pluginVersion": "8.5.15", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_operator_withdrawals_sum{type=\"partial\", nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) / 10^9", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "partial" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_operator_withdrawals_sum{type=\"full\", nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) / 10^9", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "full" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_operator_withdrawals_sum{nos_name=~'${nos_name_array_var}'}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) / 10^9", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{nos_name}}", + "range": false, + "refId": "total" + } + ], + "title": "Withdrawals summary (${epochs_range} epochs range)", + "transformations": [ + { + "id": "groupBy", + "options": { + "fields": { + "Value #all": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #att": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #bad": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #full": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #good": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #partial": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #prop": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #sync": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #total": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "nos_name": { + "aggregations": [], + "operation": "groupby" + } + } + } + }, + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "Value #all (sum)": 3, + "Value #bad (sum)": 1, + "Value #good (sum)": 2, + "nos_name": 0 + }, + "renameByName": { + "Value #all (sum)": "All", + "Value #att (sum)": "Attestation", + "Value #bad (sum)": "Bad", + "Value #full (sum)": "Full", + "Value #good (sum)": "Good", + "Value #partial (sum)": "Partial", + "Value #prop (sum)": "Proposal", + "Value #sync (sum)": "Sync", + "Value #total (sum)": "Total", + "nos_name": "Operator" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 3, + "pointSize": 6, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 13, + "w": 13, + "x": 11, + "y": 36 + }, + "id": 1781, + "options": { + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "sortBy": "Last *", + "sortDesc": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.1.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum by (nos_name) (ethereum_validators_monitoring_operator_withdrawals_sum{nos_name=~'${nos_name_array_var}'}) / 10^9 and on() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0", + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "A" + } + ], + "title": "Per operator", + "type": "timeseries" + } + ], + "title": "🟨 Withdrawals", + "type": "row" } ], "refresh": "5m", @@ -3372,8 +3889,8 @@ { "current": { "selected": false, - "text": "178167", - "value": "178167" + "text": "164857", + "value": "164857" }, "datasource": { "type": "prometheus", @@ -3480,8 +3997,8 @@ { "current": { "selected": false, - "text": "97.314453125", - "value": "97.314453125" + "text": "76.69270841777325", + "value": "76.69270841777325" }, "datasource": { "type": "prometheus", @@ -3508,8 +4025,8 @@ { "current": { "selected": false, - "text": "10", - "value": "10" + "text": "8", + "value": "8" }, "datasource": { "type": "prometheus", @@ -3567,8 +4084,8 @@ { "current": { "selected": false, - "text": "Allnodes|Anyblock Analytics|Attestant \\(BVI\\) Limited|Blockdaemon|Blockscape|BridgeTower|Certus One|ChainLayer|ChainSafe|Chorus One|ConsenSys Codefi|CryptoManufaktur|DSRV|Everstake|Figment|HashQuark|InfStones|Kukis Global|Nethermind|P2P\\.ORG \\- P2P Validator|Prysmatic Labs|RockLogic GmbH|RockX|Sigma Prime|Simply Staking|SkillZ|Stakely|Stakin|Staking Facilities|stakefish", - "value": "Allnodes|Anyblock Analytics|Attestant \\(BVI\\) Limited|Blockdaemon|Blockscape|BridgeTower|Certus One|ChainLayer|ChainSafe|Chorus One|ConsenSys Codefi|CryptoManufaktur|DSRV|Everstake|Figment|HashQuark|InfStones|Kukis Global|Nethermind|P2P\\.ORG \\- P2P Validator|Prysmatic Labs|RockLogic GmbH|RockX|Sigma Prime|Simply Staking|SkillZ|Stakely|Stakin|Staking Facilities|stakefish" + "text": "Alex T|Allnodes|Anyblock Analytics|Artem\\.V|Attestant|Blockdaemon|BridgeTower Capital|Certus One|ChainLayer|ChainSafe|Chorus One|ConsenSys Software Inc \\(Codefi\\)|DKCSBES\\-Lido|DSRV|Denis|DmitIvh|Eugene\\.M|Everstake One|Figment|HCNS\\-Lido|HashQuark|InfStones|Infloop|KRogLA|Kiln|Kukis Global|Ledger|Lido x Obol\\: Clustery McClusterfaces|Lido x Obol\\: Group 4|Lido x Obol\\: Group 5 Rangers|Lido x Obol\\: Group 7|Lido x Obol\\: Group2 Guardians|Lido x Obol\\: Group9 Hunter|Lido x Obol\\: Mostly Harmless|Lido x Obol\\: Quadforce|Lido x Obol\\: SevenNodes|Lido x Obol\\: dvt2\\-g3|Nethermind|Nikita\\.L|Nikolay|P2P\\.ORG \\- P2P Validator|Prylabs|Psirex|QA Ledger 1|QA Ledger 2|QA Test|Raman S|RockLogic|RockX|SSV\\-DHRR|SSV\\-KCCA|Sigma Prime|Simply VC \\(Simply Staking\\)|Sjors|Stakely|Stakin|Staking Facilities|blockscape|cryptomanufaktur\\.io|qa\\-multisig|special_agent|stakefish", + "value": "Alex T|Allnodes|Anyblock Analytics|Artem\\.V|Attestant|Blockdaemon|BridgeTower Capital|Certus One|ChainLayer|ChainSafe|Chorus One|ConsenSys Software Inc \\(Codefi\\)|DKCSBES\\-Lido|DSRV|Denis|DmitIvh|Eugene\\.M|Everstake One|Figment|HCNS\\-Lido|HashQuark|InfStones|Infloop|KRogLA|Kiln|Kukis Global|Ledger|Lido x Obol\\: Clustery McClusterfaces|Lido x Obol\\: Group 4|Lido x Obol\\: Group 5 Rangers|Lido x Obol\\: Group 7|Lido x Obol\\: Group2 Guardians|Lido x Obol\\: Group9 Hunter|Lido x Obol\\: Mostly Harmless|Lido x Obol\\: Quadforce|Lido x Obol\\: SevenNodes|Lido x Obol\\: dvt2\\-g3|Nethermind|Nikita\\.L|Nikolay|P2P\\.ORG \\- P2P Validator|Prylabs|Psirex|QA Ledger 1|QA Ledger 2|QA Test|Raman S|RockLogic|RockX|SSV\\-DHRR|SSV\\-KCCA|Sigma Prime|Simply VC \\(Simply Staking\\)|Sjors|Stakely|Stakin|Staking Facilities|blockscape|cryptomanufaktur\\.io|qa\\-multisig|special_agent|stakefish" }, "datasource": { "type": "vertamedia-clickhouse-datasource", @@ -3609,6 +4126,6 @@ "timezone": "", "title": "Rewards & Penalties", "uid": "poBeaLaRD", - "version": 6, + "version": 8, "weekStart": "" } diff --git a/docker/grafana/provisioning/dashboards/validators.json b/docker/grafana/provisioning/dashboards/validators.json index 974a3e9d..eda2b5b7 100644 --- a/docker/grafana/provisioning/dashboards/validators.json +++ b/docker/grafana/provisioning/dashboards/validators.json @@ -24,7 +24,7 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "iteration": 1675248322516, + "iteration": 1680500392773, "links": [ { "asDropdown": false, @@ -63,6 +63,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Difference between `Now` and timestamp of last slot of processed epoch ", "fieldConfig": { "defaults": { "color": { @@ -478,6 +479,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Alias for `pending_queued` and `pending_initialized` statuses", "fieldConfig": { "defaults": { "color": { @@ -542,26 +544,20 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Alias for `active_exiting`, `exited_unslashed`, `exited_slashed` and `withdrawal_possible` statuses", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "fixedColor": "yellow", + "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { - "color": "text", + "color": "super-light-blue", "value": null - }, - { - "color": "super-light-red", - "value": 0 - }, - { - "color": "red", - "value": 1 } ] }, @@ -575,7 +571,7 @@ "x": 10, "y": 6 }, - "id": 17, + "id": 116, "options": { "colorMode": "value", "graphMode": "area", @@ -599,13 +595,13 @@ "uid": "PBFA97CFB590B2093" }, "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"slashed\"})", + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"withdrawal_pending\"})", "interval": "", "legendFormat": "{{owner}}", "refId": "A" } ], - "title": "Slashed User Validators", + "title": "Full withdrawal pending User", "type": "stat" }, { @@ -613,103 +609,48 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", + "description": "Alias for `withdrawal_done`, and `withdrawal_possible` statuses. `withdrawal_possible` is considered fully withdrawn when the validator balance is `0`.", "fieldConfig": { "defaults": { "color": { "fixedColor": "text", "mode": "fixed" }, - "custom": { - "align": "center", - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "decimals": 0, - "links": [], "mappings": [], - "min": 0, - "noValue": "0", "thresholds": { - "mode": "percentage", + "mode": "absolute", "steps": [ { - "color": "text", + "color": "super-light-blue", "value": null } ] }, "unit": "locale" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Ongoing" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - }, - { - "id": "custom.displayMode", - "value": "basic" - }, - { - "id": "color", - "value": { - "fixedColor": "green", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Pending" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - }, - { - "id": "custom.displayMode", - "value": "basic" - }, - { - "id": "color", - "value": { - "fixedColor": "blue", - "mode": "fixed" - } - } - ] - } - ] + "overrides": [] }, "gridPos": { - "h": 10, - "w": 9, + "h": 3, + "w": 5, "x": 15, "y": 6 }, - "id": 75, + "id": 118, "options": { - "footer": { - "enablePagination": true, - "fields": "", - "reducer": [ - "sum" + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "show": false + "fields": "", + "values": false }, - "frameIndex": 0, - "showHeader": true, - "sortBy": [] + "text": {}, + "textMode": "auto" }, "pluginVersion": "8.5.15", "targets": [ @@ -718,72 +659,87 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "(sort_desc(sum by (nos_name, status) (ethereum_validators_monitoring_user_validators{status=~\"ongoing|pending\"})))", - "instant": true, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"withdrawal_done\"})", "interval": "", - "legendFormat": "", + "legendFormat": "{{owner}}", "refId": "A" } ], - "title": "Ongoing and pending operators", - "transformations": [ - { - "id": "labelsToFields", - "options": { - "mode": "columns", - "valueLabel": "status" - } - }, - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": { - "Time": 0, - "nos_name": 1, - "ongoing": 2, - "pending": 3 - }, - "renameByName": { - "nos_name": "Name", - "ongoing": "Ongoing", - "pending": "Pending" - } - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ + "title": "Full withdrawn User", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "Alias for `active_slashed`, `exited_slashed` or any validator status with `slashed = true` in state", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ { - "desc": false, - "field": "Name" + "color": "text", + "value": null + }, + { + "color": "super-light-red", + "value": 0 + }, + { + "color": "red", + "value": 1 } ] - } + }, + "unit": "locale" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 20, + "y": 6 + }, + "id": 17, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.5.15", + "targets": [ { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "Ongoing" - } - ] - } + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"slashed\"})", + "interval": "", + "legendFormat": "{{owner}}", + "refId": "A" } ], - "type": "table" + "title": "Slashed User Validators", + "type": "stat" }, { "datasource": { @@ -901,6 +857,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Alias for `pending_queued` and `pending_initialized` statuses", "fieldConfig": { "defaults": { "color": { @@ -1013,6 +970,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "description": "Alias for `active_exiting`, `exited_unslashed`, `exited_slashed` and `withdrawal_possible` statuses", "fieldConfig": { "defaults": { "color": { @@ -1038,7 +996,7 @@ { "id": "color", "value": { - "fixedColor": "red", + "fixedColor": "yellow", "mode": "fixed" } } @@ -1053,7 +1011,7 @@ { "id": "color", "value": { - "fixedColor": "super-light-red", + "fixedColor": "super-light-yellow", "mode": "fixed" } } @@ -1067,14 +1025,15 @@ "x": 10, "y": 9 }, - "id": 16, + "id": 117, "options": { "displayLabels": [], "legend": { "displayMode": "table", "placement": "bottom", "values": [ - "value" + "value", + "percent" ] }, "pieType": "donut", @@ -1087,7 +1046,7 @@ }, "tooltip": { "mode": "single", - "sort": "none" + "sort": "asc" } }, "pluginVersion": "8.1.5", @@ -1098,7 +1057,7 @@ "uid": "PBFA97CFB590B2093" }, "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"slashed\"})", + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"withdrawal_pending\"})", "interval": "", "legendFormat": "User", "refId": "A" @@ -1109,39 +1068,22 @@ "uid": "PBFA97CFB590B2093" }, "exemplar": true, - "expr": "sum(ethereum_validators_monitoring_validators{owner=\"other\",status=\"slashed\"})", + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"other\",status=\"withdrawal_pending\"})", "hide": false, "interval": "", "legendFormat": "Other", "refId": "B" } ], - "title": "Slashed Validators", + "title": "Full withdrawal pending", "type": "piechart" }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 16 - }, - "id": 79, - "panels": [], - "title": "📒 Performance summary", - "type": "row" - }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", + "description": "Alias for `withdrawal_done`, and `withdrawal_possible` statuses. `withdrawal_possible` is considered fully withdrawn when the validator balance is `0`.", "fieldConfig": { "defaults": { "color": { @@ -1154,19 +1096,20 @@ "viz": false } }, - "mappings": [] + "mappings": [], + "unit": "locale" }, "overrides": [ { "matcher": { - "id": "byName", - "options": "Bad" + "id": "byFrameRefID", + "options": "A" }, "properties": [ { "id": "color", "value": { - "fixedColor": "red", + "fixedColor": "text", "mode": "fixed" } } @@ -1174,14 +1117,14 @@ }, { "matcher": { - "id": "byName", - "options": "Good" - }, + "id": "byFrameRefID", + "options": "B" + }, "properties": [ { "id": "color", "value": { - "fixedColor": "green", + "fixedColor": "#ffffff", "mode": "fixed" } } @@ -1191,12 +1134,13 @@ }, "gridPos": { "h": 7, - "w": 6, - "x": 0, - "y": 17 + "w": 5, + "x": 15, + "y": 9 }, - "id": 108, + "id": 119, "options": { + "displayLabels": [], "legend": { "displayMode": "table", "placement": "bottom", @@ -1215,60 +1159,36 @@ }, "tooltip": { "mode": "single", - "sort": "none" + "sort": "asc" } }, - "pluginVersion": "8.3.6", + "pluginVersion": "8.1.5", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"withdrawal_done\"})", "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "bad" + "legendFormat": "User", + "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"other\",status=\"withdrawal_done\"})", "hide": false, - "instant": true, "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "good" - } - ], - "title": "User Propose (${epochs_range} epochs range)", - "transformations": [ - { - "id": "seriesToColumns", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": {}, - "renameByName": { - "Value #bad": "Bad", - "Value #good": "Good" - } - } + "legendFormat": "Other", + "refId": "B" } ], + "title": "Full withdrawn", "type": "piechart" }, { @@ -1276,7 +1196,7 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", + "description": "Alias for `active_slashed`, `exited_slashed` or any validator status with `slashed = true` in state", "fieldConfig": { "defaults": { "color": { @@ -1289,13 +1209,14 @@ "viz": false } }, - "mappings": [] + "mappings": [], + "unit": "locale" }, "overrides": [ { "matcher": { - "id": "byName", - "options": "Bad" + "id": "byFrameRefID", + "options": "A" }, "properties": [ { @@ -1309,14 +1230,14 @@ }, { "matcher": { - "id": "byName", - "options": "Good" + "id": "byFrameRefID", + "options": "B" }, "properties": [ { "id": "color", "value": { - "fixedColor": "green", + "fixedColor": "super-light-red", "mode": "fixed" } } @@ -1326,18 +1247,18 @@ }, "gridPos": { "h": 7, - "w": 6, - "x": 6, - "y": 17 + "w": 4, + "x": 20, + "y": 9 }, - "id": 113, + "id": 16, "options": { + "displayLabels": [], "legend": { "displayMode": "table", "placement": "bottom", "values": [ - "value", - "percent" + "value" ] }, "pieType": "donut", @@ -1353,57 +1274,33 @@ "sort": "none" } }, - "pluginVersion": "8.3.6", + "pluginVersion": "8.1.5", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"user\",status=\"slashed\"})", "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "bad" + "legendFormat": "User", + "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", + "exemplar": true, + "expr": "sum(ethereum_validators_monitoring_validators{owner=\"other\",status=\"slashed\"})", "hide": false, - "instant": true, "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "good" - } - ], - "title": "Other Propose (${epochs_range} epochs range)", - "transformations": [ - { - "id": "seriesToColumns", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": {}, - "renameByName": { - "Value #bad": "Bad", - "Value #good": "Good" - } - } + "legendFormat": "Other", + "refId": "B" } ], + "title": "Slashed Validators", "type": "piechart" }, { @@ -1415,7 +1312,8 @@ "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "fixedColor": "text", + "mode": "fixed" }, "custom": { "align": "center", @@ -1423,113 +1321,150 @@ "filterable": false, "inspect": false }, + "decimals": 0, + "links": [], "mappings": [], + "min": 0, + "noValue": "0", "thresholds": { - "mode": "absolute", + "mode": "percentage", "steps": [ { - "color": "semi-dark-green", + "color": "text", "value": null } ] - } + }, + "unit": "locale" }, "overrides": [ { "matcher": { "id": "byName", - "options": "Bad" + "options": "Ongoing" }, "properties": [ + { + "id": "custom.width", + "value": 120 + }, { "id": "custom.displayMode", - "value": "color-text" + "value": "basic" }, { "id": "color", "value": { - "fixedColor": "red", - "mode": "thresholds" + "fixedColor": "green", + "mode": "fixed" } - }, + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pending" + }, + "properties": [ { "id": "custom.width", - "value": 90 + "value": 120 + }, + { + "id": "custom.displayMode", + "value": "basic" }, { - "id": "thresholds", + "id": "color", "value": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - }, - { - "color": "light-red", - "value": 1 - } - ] + "fixedColor": "blue", + "mode": "fixed" } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Withdrawal pending" + }, + "properties": [ + { + "id": "custom.width", + "value": 150 }, { "id": "custom.displayMode", - "value": "color-background-solid" + "value": "basic" + }, + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } } ] }, { "matcher": { "id": "byName", - "options": "Good" + "options": "Withdrawn" }, "properties": [ + { + "id": "custom.width", + "value": 120 + }, { "id": "custom.displayMode", - "value": "color-text" + "value": "basic" }, { "id": "color", "value": { - "fixedColor": "green", + "fixedColor": "text", "mode": "fixed" } - }, - { - "id": "custom.width", - "value": 90 } ] }, { "matcher": { "id": "byName", - "options": "All" + "options": "Operator" }, "properties": [ { - "id": "custom.width", - "value": 125 + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } ] }, "gridPos": { - "h": 14, + "h": 9, "w": 12, - "x": 12, - "y": 17 + "x": 0, + "y": 16 }, - "id": 110, + "id": 75, "options": { "footer": { "enablePagination": true, - "fields": [], + "fields": "", "reducer": [ "sum" ], - "show": true + "show": false }, "frameIndex": 0, "showHeader": true, @@ -1543,72 +1478,20 @@ "uid": "PBFA97CFB590B2093" }, "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "bad" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "good" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, + "expr": "(sort_desc(sum by (nos_name, status) (ethereum_validators_monitoring_user_validators{status=~\"ongoing|pending|withdrawal_pending|withdrawal_done\"})))", "instant": true, "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "all" + "legendFormat": "", + "refId": "A" } ], - "title": "Propose summary (${epochs_range} epochs range)", + "title": "Operator Statuses", "transformations": [ { - "id": "groupBy", + "id": "labelsToFields", "options": { - "fields": { - "Value #all": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #bad": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #good": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "nos_name": { - "aggregations": [], - "operation": "groupby" - } - } + "mode": "columns", + "valueLabel": "status" } }, { @@ -1618,18 +1501,23 @@ { "id": "organize", "options": { - "excludeByName": {}, + "excludeByName": { + "Time": true + }, "indexByName": { - "Value #all (sum)": 1, - "Value #bad (sum)": 3, - "Value #good (sum)": 2, - "nos_name": 0 + "Time": 0, + "nos_name": 1, + "ongoing": 2, + "pending": 3, + "withdrawal_done": 5, + "withdrawal_pending": 4 }, "renameByName": { - "Value #all (sum)": "All", - "Value #bad (sum)": "Bad", - "Value #good (sum)": "Good", - "nos_name": "Operator" + "nos_name": "Operator", + "ongoing": "Ongoing", + "pending": "Pending", + "withdrawal_done": "Withdrawn", + "withdrawal_pending": "Withdrawal pending" } } }, @@ -1639,7 +1527,8 @@ "fields": {}, "sort": [ { - "field": "Operator" + "desc": false, + "field": "Name" } ] } @@ -1650,7 +1539,8 @@ "fields": {}, "sort": [ { - "field": "Bad" + "desc": true, + "field": "Ongoing" } ] } @@ -1667,28 +1557,62 @@ "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" + "fixedColor": "text", + "mode": "fixed" }, "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 15, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 3, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } }, - "mappings": [] + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "text", + "value": null + } + ] + }, + "unit": "locale" }, "overrides": [ { "matcher": { "id": "byName", - "options": "User" + "options": "ongoing" }, "properties": [ { "id": "color", "value": { - "fixedColor": "purple", + "fixedColor": "green", "mode": "fixed" } } @@ -1697,135 +1621,28 @@ { "matcher": { "id": "byName", - "options": "Other" + "options": "pending" }, "properties": [ { "id": "color", "value": { - "fixedColor": "super-light-purple", + "fixedColor": "blue", "mode": "fixed" } } ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 24 - }, - "id": 109, - "options": { - "legend": { - "displayMode": "table", - "placement": "bottom", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "user" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "other" - } - ], - "title": "Propose sharing (${epochs_range} epochs range)", - "transformations": [ - { - "id": "seriesToColumns", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": {}, - "renameByName": { - "Value #bad": "Bad", - "Value #good": "Good", - "Value #other": "Other", - "Value #user": "User" - } - } - } - ], - "type": "piechart" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } }, - "mappings": [] - }, - "overrides": [ { "matcher": { "id": "byName", - "options": "Bad" + "options": "withdrawal_pending" }, "properties": [ { "id": "color", "value": { - "fixedColor": "red", + "fixedColor": "yellow", "mode": "fixed" } } @@ -1834,13 +1651,13 @@ { "matcher": { "id": "byName", - "options": "Good" + "options": "withdrawal_done" }, "properties": [ { "id": "color", "value": { - "fixedColor": "green", + "fixedColor": "text", "mode": "fixed" } } @@ -1849,118 +1666,108 @@ ] }, "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 31 + "h": 9, + "w": 12, + "x": 12, + "y": 16 }, - "id": 111, + "id": 120, "options": { "legend": { - "displayMode": "table", - "placement": "bottom", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, - "pluginVersion": "8.3.6", + "pluginVersion": "8.5.15", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "editorMode": "code", "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "bad" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, + "expr": "sum by (status) (ethereum_validators_monitoring_user_validators{status=~\"ongoing|pending|withdrawal_pending|withdrawal_done\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0", + "instant": false, "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "good" - } - ], - "title": "User Sync (${epochs_range} epochs range)", - "transformations": [ - { - "id": "seriesToColumns", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": {}, - "renameByName": { - "Value #bad": "Bad", - "Value #good": "Good" - } - } + "legendFormat": "{{status}}", + "range": true, + "refId": "A" } ], - "type": "piechart" + "title": "Total Status progress", + "transformations": [], + "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", + "description": "A validator is considered `fully` withdrawn if it has withdrawn a balance in a certain epoch and its balance is 0, otherwise it is considered `partially` withdrawn", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" + "fixedColor": "text", + "mode": "fixed" }, "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 15, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 3, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } }, - "mappings": [] + "links": [], + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "text", + "value": null + } + ] + }, + "unit": "locale" }, "overrides": [ { "matcher": { "id": "byName", - "options": "Bad" + "options": "full" }, "properties": [ { "id": "color", "value": { - "fixedColor": "red", + "fixedColor": "yellow", "mode": "fixed" } } @@ -1969,13 +1776,28 @@ { "matcher": { "id": "byName", - "options": "Good" + "options": "partial" }, "properties": [ { "id": "color", "value": { - "fixedColor": "green", + "fixedColor": "dark-orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "full" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", "mode": "fixed" } } @@ -1984,93 +1806,49 @@ ] }, "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 31 + "h": 8, + "w": 12, + "x": 0, + "y": 25 }, - "id": 114, + "id": 121, "options": { "legend": { - "displayMode": "table", - "placement": "bottom", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "calcs": [], + "displayMode": "list", + "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, - "pluginVersion": "8.3.6", + "pluginVersion": "8.5.15", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "editorMode": "code", "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "bad" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, + "expr": "sum by (type) (ethereum_validators_monitoring_operator_withdrawals_count) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0", + "instant": false, "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "good" - } - ], - "title": "Other Sync (${epochs_range} epochs range)", - "transformations": [ - { - "id": "seriesToColumns", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true - }, - "indexByName": {}, - "renameByName": { - "Value #bad": "Bad", - "Value #good": "Good" - } - } + "legendFormat": "{{type}}", + "range": true, + "refId": "A" } ], - "type": "piechart" + "title": "Total withdrawals count by type", + "transformations": [], + "type": "timeseries" }, { "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" }, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -2079,7 +1857,6 @@ "custom": { "align": "center", "displayMode": "auto", - "filterable": false, "inspect": false }, "mappings": [], @@ -2087,7 +1864,7 @@ "mode": "absolute", "steps": [ { - "color": "semi-dark-green", + "color": "green", "value": null } ] @@ -2097,1430 +1874,2574 @@ { "matcher": { "id": "byName", - "options": "Bad" + "options": "Validator" }, "properties": [ { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "thresholds" - } - }, - { - "id": "custom.width", - "value": 90 - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - }, - { - "color": "light-red", - "value": 1 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-background-solid" + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "blockcha.in", + "url": "https://beaconcha.in/validator/${__value.raw}" + } + ] } ] }, { "matcher": { "id": "byName", - "options": "Good" + "options": "Status" }, "properties": [ { "id": "custom.displayMode", - "value": "color-text" + "value": "json-view" }, { - "id": "color", - "value": { - "fixedColor": "green", - "mode": "fixed" - } - }, + "id": "custom.filterable", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Balance" + }, + "properties": [ { - "id": "custom.width", - "value": 90 + "id": "unit", + "value": "ETH" } ] }, { "matcher": { "id": "byName", - "options": "Avg participation" + "options": "Operator" }, "properties": [ { - "id": "custom.width", - "value": 125 + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] }, { - "id": "unit", - "value": "percent" + "id": "custom.filterable", + "value": true } ] } ] }, "gridPos": { - "h": 14, + "h": 8, "w": 12, "x": 12, - "y": 31 + "y": 25 }, - "id": 107, + "id": 123, "options": { "footer": { "enablePagination": true, "fields": [ - "Value #good (sum)", - "Value #bad (sum)" + "Balance" ], "reducer": [ "sum" ], "show": true }, - "frameIndex": 0, - "showHeader": true, - "sortBy": [] + "showHeader": true }, "pluginVersion": "8.5.15", "targets": [ { "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "bad" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "good" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "type": "vertamedia-clickhouse-datasource", + "uid": "PDEE91DDB90597936" }, - "exemplar": false, - "expr": "avg_over_time((sum by (nos_name) (ethereum_validators_monitoring_operator_sync_participation_avg_percent) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "dateTimeType": "DATETIME", + "extrapolate": true, "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "avg participation rate" - } - ], - "title": "Sync summary (${epochs_range} epochs range)", - "transformations": [ - { - "id": "groupBy", - "options": { - "fields": { - "Value": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #A": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #B": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #Total high inc.delay": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #Total missed": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #avg participation rate": { - "aggregations": [ - "mean" - ], - "operation": "aggregate" - }, - "Value #bad": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #good": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #high inc.delay": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #invalid head": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #invalid source": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #invalid target": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #missed": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #ongoing": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #perfect": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "nos_name": { - "aggregations": [], - "operation": "groupby" - } - } - } - }, - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Max bad": true, - "Value #ongoing (sum)": true - }, - "indexByName": { - "Value #avg participation rate (mean)": 1, - "Value #bad (sum)": 3, - "Value #good (sum)": 2, - "nos_name": 0 - }, - "renameByName": { - "Perfect": "", - "Value #avg participation rate (mean)": "Avg participation", - "Value #avg participation rate (sum)": "", - "Value #bad (sum)": "Bad", - "Value #good (sum)": "Good", - "Value #high inc.delay (sum)": "High inc.delay", - "Value #invalid head (sum)": "Bad head", - "Value #invalid source (sum)": "Bad source", - "Value #invalid target (sum)": "Bad target", - "Value #missed (sum)": "Missed", - "Value #ongoing (sum)": "", - "Value #perfect (sum)": "Perfect", - "nos_name": "Operator" - } - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": false, - "field": "Operator" - } - ] - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "desc": true, - "field": "Bad" - } - ] - } + "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", + "intervalFactor": 1, + "query": "SELECT\n val_id as Validator,\n val_nos_name as Operator,\n val_status as Status,\n val_balance / pow(10,9) as Balance\nFROM\n validators_summary\nWHERE val_nos_name is not NULL AND epoch = ${epoch_number_var} AND (val_status in ['active_exiting','exited_unslashed', 'exited_slashed'] or val_status == 'withdrawal_possible' and val_balance != 0)\nORDER BY val_id, val_balance\nLIMIT 1 by val_id", + "rawQuery": "SELECT\n val_id as Validator,\n val_nos_name as Operator,\n val_status as Status,\n val_balance / pow(10,9) as Balance\nFROM\n validators_summary\nWHERE val_nos_name is not NULL AND epoch = 166657 AND (val_status in ['active_exiting','exited_unslashed', 'exited_slashed'] or val_status == 'withdrawal_possible' and val_balance != 0)\nORDER BY val_id, val_balance\nLIMIT 1 by val_id", + "refId": "A", + "round": "0s", + "skip_comments": true } ], + "title": "Withdrawal pending User validators", "type": "table" }, { + "collapsed": true, "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "User" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "purple", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Other" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "super-light-purple", - "mode": "fixed" - } - } - ] - } - ] - }, "gridPos": { - "h": 7, - "w": 12, + "h": 1, + "w": 24, "x": 0, - "y": 38 - }, - "id": 112, - "options": { - "legend": { - "displayMode": "table", - "placement": "bottom", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "y": 33 }, - "pluginVersion": "8.3.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "user" - }, + "id": 79, + "panels": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "(sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]))", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "other" - } - ], - "title": "Sync sharing (${epochs_range} epochs range)", - "transformations": [ - { - "id": "seriesToColumns", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] }, - "indexByName": {}, - "renameByName": { - "Value #bad": "Bad", - "Value #good": "Good", - "Value #other": "Other", - "Value #user": "User" - } - } - } - ], - "type": "piechart" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Missed" - }, - "properties": [ + "overrides": [ { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } + "matcher": { + "id": "byName", + "options": "Bad" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Good" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] } ] }, - { - "matcher": { - "id": "byName", - "options": "Bad head" + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 34 + }, + "id": 108, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - { - "matcher": { - "id": "byName", - "options": "Bad target" + "pluginVersion": "8.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "bad" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "good" + } + ], + "title": "User Propose (${epochs_range} epochs range)", + "transformations": [ + { + "id": "seriesToColumns", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Value #bad": "Bad", + "Value #good": "Good" } } - ] + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "matcher": { - "id": "byName", - "options": "Bad source" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] }, - "properties": [ + "overrides": [ { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } + "matcher": { + "id": "byName", + "options": "Bad" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Good" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] } ] }, - { - "matcher": { - "id": "byName", - "options": "Perfect" + "gridPos": { + "h": 7, + "w": 6, + "x": 6, + "y": 34 + }, + "id": 113, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "green", - "mode": "fixed" - } - } - ] + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } }, - { - "matcher": { - "id": "byName", - "options": "High inc.delay" + "pluginVersion": "8.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "bad" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "good" + } + ], + "title": "Other Propose (${epochs_range} epochs range)", + "transformations": [ + { + "id": "seriesToColumns", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Value #bad": "Bad", + "Value #good": "Good" } } - ] - } - ] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 45 - }, - "id": 106, - "options": { - "legend": { - "displayMode": "table", - "placement": "right", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" + } ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.4.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"high_inclusion_delay\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "high inc.delay" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_head\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid head" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_target\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid target" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_source\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid source" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_miss_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "missed" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_user_validators{status=~\"ongoing\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "ongoing" + "type": "piechart" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_perfect_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "perfect" - } - ], - "title": "User Attestation (${epochs_range} epochs range)", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Max bad": true, - "Time": true, - "Value": false, - "Value #ongoing": true, - "Value #ongoing (sum)": true - }, - "indexByName": { - "Max bad": 1, - "Perfect": 0, - "Time": 2, - "Value #high inc.delay": 4, - "Value #invalid head": 5, - "Value #invalid source": 7, - "Value #invalid target": 6, - "Value #missed": 8, - "Value #ongoing": 3 - }, - "renameByName": { - "Perfect": "Perfect", - "Value": "Perfect", - "Value #high inc.delay": "High inc.delay", - "Value #high inc.delay (sum)": "High inc.delay", - "Value #invalid head": "Bad head", - "Value #invalid head (sum)": "Bad head", - "Value #invalid source": "Bad source", - "Value #invalid source (sum)": "Bad source", - "Value #invalid target": "Bad target", - "Value #invalid target (sum)": "Bad target", - "Value #missed": "Missed", - "Value #missed (sum)": "Missed", - "Value #ongoing (sum)": "", - "nos_name": "Operator" - } - } - } - ], - "type": "piechart" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "center", - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "semi-dark-green", - "value": null - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Missed" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } + "custom": { + "align": "center", + "displayMode": "auto", + "filterable": false, + "inspect": false }, - { - "id": "custom.width", - "value": 90 + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "semi-dark-green", + "value": null + } + ] } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Bad head" }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" - }, + "overrides": [ { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } + "matcher": { + "id": "byName", + "options": "Bad" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "thresholds" + } + }, + { + "id": "custom.width", + "value": 90 + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "light-green", + "value": null + }, + { + "color": "light-red", + "value": 1 + } + ] + } + }, + { + "id": "custom.displayMode", + "value": "color-background-solid" + } + ] }, { - "id": "custom.width", - "value": 90 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Bad target" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" + "matcher": { + "id": "byName", + "options": "Good" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] }, { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } + "matcher": { + "id": "byName", + "options": "All" + }, + "properties": [ + { + "id": "custom.width", + "value": 125 + } + ] }, { - "id": "custom.width", - "value": 90 + "matcher": { + "id": "byName", + "options": "Operator" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] + } + ] } ] }, - { - "matcher": { - "id": "byName", - "options": "Bad source" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.width", - "value": 90 - } - ] + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 34 }, - { - "matcher": { - "id": "byName", - "options": "Perfect" + "id": 110, + "options": { + "footer": { + "enablePagination": true, + "fields": [], + "reducer": [ + "sum" + ], + "show": true }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" + "frameIndex": 0, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "8.5.15", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "id": "color", - "value": { - "fixedColor": "green", - "mode": "fixed" - } + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "bad" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "id": "custom.width", - "value": 90 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "High inc.delay" + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "good" }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "all" + } + ], + "title": "Propose summary (${epochs_range} epochs range)", + "transformations": [ + { + "id": "groupBy", + "options": { + "fields": { + "Value #all": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #bad": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #good": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "nos_name": { + "aggregations": [], + "operation": "groupby" + } } - }, - { - "id": "custom.width", - "value": 115 } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 45 - }, - "id": 104, - "options": { - "footer": { - "enablePagination": true, - "fields": "", - "reducer": [ - "sum" + }, + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "Value #all (sum)": 1, + "Value #bad (sum)": 3, + "Value #good (sum)": 2, + "nos_name": 0 + }, + "renameByName": { + "Value #all (sum)": "All", + "Value #bad (sum)": "Bad", + "Value #good (sum)": "Good", + "nos_name": "Operator" + } + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "Operator" + } + ] + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "Bad" + } + ] + } + } ], - "show": true + "type": "table" }, - "frameIndex": 0, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.5.15", - "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"high_inclusion_delay\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "high inc.delay" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "User" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Other" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-purple", + "mode": "fixed" + } + } + ] + } + ] }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_head\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid head" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 41 }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_target\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid target" + "id": 109, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "user" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_miss_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_good_propose) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "other" + } + ], + "title": "Propose sharing (${epochs_range} epochs range)", + "transformations": [ + { + "id": "seriesToColumns", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Value #bad": "Bad", + "Value #good": "Good", + "Value #other": "Other", + "Value #user": "User" + } + } + } + ], + "type": "piechart" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_source\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid source" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "description": "`Bad` is considered when validator's sync is less than chain avg value (including `SYNC_PARTICIPATION_DISTANCE_DOWN_FROM_CHAIN_AVG`) ", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Bad" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Good" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] + } + ] }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_miss_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "missed" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 48 }, - "exemplar": false, - "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_perfect_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "perfect" - } - ], - "title": "Attestation duty summary (${epochs_range} epochs range)", - "transformations": [ - { - "id": "groupBy", + "id": 111, "options": { - "fields": { - "Value": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #A": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #B": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #Total high inc.delay": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #Total missed": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #high inc.delay": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #invalid head": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #invalid source": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #invalid target": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #missed": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #ongoing": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "Value #perfect": { - "aggregations": [ - "sum" - ], - "operation": "aggregate" - }, - "nos_name": { - "aggregations": [], - "operation": "groupby" - } + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" } - } - }, - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Max bad": true, - "Value #ongoing (sum)": true + }, + "pluginVersion": "8.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "bad" }, - "indexByName": { - "Value #high inc.delay (sum)": 2, - "Value #invalid head (sum)": 3, - "Value #invalid source (sum)": 5, - "Value #invalid target (sum)": 4, - "Value #missed (sum)": 6, - "Value #perfect (sum)": 1, - "nos_name": 0 + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "good" + } + ], + "title": "User Sync (${epochs_range} epochs range)", + "transformations": [ + { + "id": "seriesToColumns", + "options": {} }, - "renameByName": { - "Perfect": "", - "Value #high inc.delay (sum)": "High inc.delay", - "Value #invalid head (sum)": "Bad head", - "Value #invalid source (sum)": "Bad source", - "Value #invalid target (sum)": "Bad target", - "Value #missed (sum)": "Missed", - "Value #ongoing (sum)": "", - "Value #perfect (sum)": "Perfect", - "nos_name": "Operator" + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Value #bad": "Bad", + "Value #good": "Good" + } + } } - } + ], + "type": "piechart" }, { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "`Bad` is considered when validator's sync is less than chain avg value (including `SYNC_PARTICIPATION_DISTANCE_DOWN_FROM_CHAIN_AVG`) ", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [ { - "field": "Operator" - } - ] - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ + "matcher": { + "id": "byName", + "options": "Bad" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, { - "desc": true, - "field": "Missed" + "matcher": { + "id": "byName", + "options": "Good" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] } ] - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false + "gridPos": { + "h": 7, + "w": 6, + "x": 6, + "y": 48 + }, + "id": 114, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" } }, - "mappings": [] - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Missed" + "pluginVersion": "8.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "bad" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "good" + } + ], + "title": "Other Sync (${epochs_range} epochs range)", + "transformations": [ + { + "id": "seriesToColumns", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Value #bad": "Bad", + "Value #good": "Good" + } + } + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "`Bad` is considered when validator's sync is less than chain avg value (including `SYNC_PARTICIPATION_DISTANCE_DOWN_FROM_CHAIN_AVG`) ", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "center", + "displayMode": "auto", + "filterable": false, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "semi-dark-green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Bad" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "thresholds" + } + }, + { + "id": "custom.width", + "value": 90 + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "light-green", + "value": null + }, + { + "color": "light-red", + "value": 1 + } + ] + } + }, + { + "id": "custom.displayMode", + "value": "color-background-solid" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Good" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avg participation" + }, + "properties": [ + { + "id": "custom.width", + "value": 125 + }, + { + "id": "unit", + "value": "percent" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Operator" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 14, + "w": 12, + "x": 12, + "y": 48 + }, + "id": 107, + "options": { + "footer": { + "enablePagination": true, + "fields": [ + "Value #good (sum)", + "Value #bad (sum)" + ], + "reducer": [ + "sum" + ], + "show": true + }, + "frameIndex": 0, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "8.5.15", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "bad" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "good" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "avg_over_time((sum by (nos_name) (ethereum_validators_monitoring_operator_sync_participation_avg_percent) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "avg participation rate" + } + ], + "title": "Sync summary (${epochs_range} epochs range)", + "transformations": [ + { + "id": "groupBy", + "options": { + "fields": { + "Value": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #A": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #B": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #Total high inc.delay": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #Total missed": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #avg participation rate": { + "aggregations": [ + "mean" + ], + "operation": "aggregate" + }, + "Value #bad": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #good": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #high inc.delay": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #invalid head": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #invalid source": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #invalid target": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #missed": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #ongoing": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #perfect": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "nos_name": { + "aggregations": [], + "operation": "groupby" + } + } + } + }, + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Max bad": true, + "Value #ongoing (sum)": true + }, + "indexByName": { + "Value #avg participation rate (mean)": 1, + "Value #bad (sum)": 3, + "Value #good (sum)": 2, + "nos_name": 0 + }, + "renameByName": { + "Perfect": "", + "Value #avg participation rate (mean)": "Avg participation", + "Value #avg participation rate (sum)": "", + "Value #bad (sum)": "Bad", + "Value #good (sum)": "Good", + "Value #high inc.delay (sum)": "High inc.delay", + "Value #invalid head (sum)": "Bad head", + "Value #invalid source (sum)": "Bad source", + "Value #invalid target (sum)": "Bad target", + "Value #missed (sum)": "Missed", + "Value #ongoing (sum)": "", + "Value #perfect (sum)": "Perfect", + "nos_name": "Operator" + } + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": false, + "field": "Operator" + } + ] + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "Bad" + } + ] + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "User" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Other" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-purple", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 55 + }, + "id": 112, + "options": { + "legend": { + "displayMode": "table", + "placement": "bottom", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "user" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "(sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_sync_participation_less_avg) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]) + sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_with_good_sync_participation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:]))", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "other" + } + ], + "title": "Sync sharing (${epochs_range} epochs range)", + "transformations": [ + { + "id": "seriesToColumns", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Value #bad": "Bad", + "Value #good": "Good", + "Value #other": "Other", + "Value #user": "User" + } + } + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Missed" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad head" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad target" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad source" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Perfect" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "High inc.delay" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 62 + }, + "id": 106, + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.4.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"high_inclusion_delay\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "high inc.delay" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_head\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid head" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_target\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid target" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_source\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid source" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_miss_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "missed" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_user_validators{status=~\"ongoing\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "ongoing" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_validator_count_perfect_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "perfect" + } + ], + "title": "User Attestation (${epochs_range} epochs range)", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Max bad": true, + "Time": true, + "Value": false, + "Value #ongoing": true, + "Value #ongoing (sum)": true + }, + "indexByName": { + "Max bad": 1, + "Perfect": 0, + "Time": 2, + "Value #high inc.delay": 4, + "Value #invalid head": 5, + "Value #invalid source": 7, + "Value #invalid target": 6, + "Value #missed": 8, + "Value #ongoing": 3 + }, + "renameByName": { + "Perfect": "Perfect", + "Value": "Perfect", + "Value #high inc.delay": "High inc.delay", + "Value #high inc.delay (sum)": "High inc.delay", + "Value #invalid head": "Bad head", + "Value #invalid head (sum)": "Bad head", + "Value #invalid source": "Bad source", + "Value #invalid source (sum)": "Bad source", + "Value #invalid target": "Bad target", + "Value #invalid target (sum)": "Bad target", + "Value #missed": "Missed", + "Value #missed (sum)": "Missed", + "Value #ongoing (sum)": "", + "nos_name": "Operator" + } + } + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "center", + "displayMode": "auto", + "filterable": false, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "semi-dark-green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Missed" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad head" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad target" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad source" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Perfect" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "High inc.delay" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "color-text" + }, + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + }, + { + "id": "custom.width", + "value": 115 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Operator" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 12, + "w": 12, + "x": 12, + "y": 62 + }, + "id": 104, + "options": { + "footer": { + "enablePagination": true, + "fields": "", + "reducer": [ + "sum" + ], + "show": true + }, + "frameIndex": 0, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "8.5.15", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"high_inclusion_delay\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "high inc.delay" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_head\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid head" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_target\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid target" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Bad head" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_invalid_attestation{reason=\"invalid_source\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid source" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Bad target" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_miss_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "missed" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by (nos_name) (ethereum_validators_monitoring_validator_count_perfect_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "perfect" + } + ], + "title": "Attestation duty summary (${epochs_range} epochs range)", + "transformations": [ + { + "id": "groupBy", + "options": { + "fields": { + "Value": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #A": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #B": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #Total high inc.delay": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #Total missed": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #high inc.delay": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #invalid head": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #invalid source": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #invalid target": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #missed": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #ongoing": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Value #perfect": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "nos_name": { + "aggregations": [], + "operation": "groupby" + } } } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Bad source" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Max bad": true, + "Value #ongoing (sum)": true + }, + "indexByName": { + "Value #high inc.delay (sum)": 2, + "Value #invalid head (sum)": 3, + "Value #invalid source (sum)": 5, + "Value #invalid target (sum)": 4, + "Value #missed (sum)": 6, + "Value #perfect (sum)": 1, + "nos_name": 0 + }, + "renameByName": { + "Perfect": "", + "Value #high inc.delay (sum)": "High inc.delay", + "Value #invalid head (sum)": "Bad head", + "Value #invalid source (sum)": "Bad source", + "Value #invalid target (sum)": "Bad target", + "Value #missed (sum)": "Missed", + "Value #ongoing (sum)": "", + "Value #perfect (sum)": "Perfect", + "nos_name": "Operator" } } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Perfect" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "green", - "mode": "fixed" - } + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "field": "Operator" + } + ] } - ] - }, - { - "matcher": { - "id": "byName", - "options": "High inc.delay" }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "desc": true, + "field": "Missed" + } + ] } - ] - } - ] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 51 - }, - "id": 115, - "options": { - "legend": { - "displayMode": "table", - "placement": "right", - "values": [ - "value", - "percent" - ] - }, - "pieType": "donut", - "reduceOptions": { - "calcs": [ - "lastNotNull" + } ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.4.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"high_inclusion_delay\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "high inc.delay" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"invalid_head\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid head" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"invalid_target\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid target" + "type": "table" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"invalid_source\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "invalid source" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [] + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Missed" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad head" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad target" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Bad source" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Perfect" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "High inc.delay" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + } + ] + } + ] }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_miss_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "missed" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 68 }, - "exemplar": false, - "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_perfect_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{nos_name}}", - "refId": "perfect" - } - ], - "title": "Other Attestation (${epochs_range} epochs range)", - "transformations": [ - { - "id": "organize", + "id": 115, "options": { - "excludeByName": { - "Max bad": true, - "Time": true, - "Value": false, - "Value #ongoing": true, - "Value #ongoing (sum)": true + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value", + "percent" + ] }, - "indexByName": { - "Max bad": 1, - "Perfect": 0, - "Time": 2, - "Value #high inc.delay": 4, - "Value #invalid head": 5, - "Value #invalid source": 7, - "Value #invalid target": 6, - "Value #missed": 8, - "Value #ongoing": 3 + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "renameByName": { - "Perfect": "Perfect", - "Value": "Perfect", - "Value #high inc.delay": "High inc.delay", - "Value #high inc.delay (sum)": "High inc.delay", - "Value #invalid head": "Bad head", - "Value #invalid head (sum)": "Bad head", - "Value #invalid source": "Bad source", - "Value #invalid source (sum)": "Bad source", - "Value #invalid target": "Bad target", - "Value #invalid target (sum)": "Bad target", - "Value #missed": "Missed", - "Value #missed (sum)": "Missed", - "Value #ongoing (sum)": "", - "nos_name": "Operator" + "tooltip": { + "mode": "single", + "sort": "none" } - } + }, + "pluginVersion": "8.4.6", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"high_inclusion_delay\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "high inc.delay" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"invalid_head\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid head" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"invalid_target\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid target" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_invalid_attestation{reason=\"invalid_source\"}) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "invalid source" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_miss_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "missed" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "sum_over_time((sum by () (ethereum_validators_monitoring_other_validator_count_perfect_attestation) AND ON() changes(ethereum_validators_monitoring_epoch_number[25s]) > 0)[$__range:])", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{nos_name}}", + "refId": "perfect" + } + ], + "title": "Other Attestation (${epochs_range} epochs range)", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Max bad": true, + "Time": true, + "Value": false, + "Value #ongoing": true, + "Value #ongoing (sum)": true + }, + "indexByName": { + "Max bad": 1, + "Perfect": 0, + "Time": 2, + "Value #high inc.delay": 4, + "Value #invalid head": 5, + "Value #invalid source": 7, + "Value #invalid target": 6, + "Value #missed": 8, + "Value #ongoing": 3 + }, + "renameByName": { + "Perfect": "Perfect", + "Value": "Perfect", + "Value #high inc.delay": "High inc.delay", + "Value #high inc.delay (sum)": "High inc.delay", + "Value #invalid head": "Bad head", + "Value #invalid head (sum)": "Bad head", + "Value #invalid source": "Bad source", + "Value #invalid source (sum)": "Bad source", + "Value #invalid target": "Bad target", + "Value #invalid target (sum)": "Bad target", + "Value #missed": "Missed", + "Value #missed (sum)": "Missed", + "Value #ongoing (sum)": "", + "nos_name": "Operator" + } + } + } + ], + "type": "piechart" } ], - "type": "piechart" + "title": "📒 Performance summary", + "type": "row" }, { "collapsed": true, @@ -3532,7 +4453,7 @@ "h": 1, "w": 24, "x": 0, - "y": 57 + "y": 34 }, "id": 23, "panels": [ @@ -3610,7 +4531,7 @@ "h": 5, "w": 24, "x": 0, - "y": 58 + "y": 35 }, "id": 24, "options": { @@ -3697,7 +4618,7 @@ "h": 7, "w": 8, "x": 0, - "y": 63 + "y": 40 }, "id": 21, "options": { @@ -3793,7 +4714,7 @@ "h": 7, "w": 16, "x": 8, - "y": 63 + "y": 40 }, "id": 10, "options": { @@ -3920,6 +4841,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } @@ -3929,7 +4860,7 @@ "h": 7, "w": 8, "x": 0, - "y": 70 + "y": 47 }, "id": 28, "options": { @@ -3961,8 +4892,8 @@ "format": "table", "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, - "query": "SELECT\n current.val_balance - previous.val_balance AS GWei,\n current.val_nos_name as Operator,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var}\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var} - 6\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nORDER BY GWei ASC, Operator, Validator\nLIMIT 100", - "rawQuery": "SELECT\n current.val_balance - previous.val_balance AS GWei,\n current.val_nos_name as Operator,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 178187\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 178187 - 6\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nORDER BY GWei ASC, Operator, Validator\nLIMIT 100", + "query": "SELECT\n current.val_balance - previous.val_balance + ifNull(withdrawals.withdrawn, 0) AS GWei,\n current.val_nos_name as Operator,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var}\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = ${epoch_number_var} - 6\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nLEFT JOIN (\n SELECT\n sum(val_balance_withdrawn) as withdrawn, val_id, val_nos_id\n FROM (\n SELECT val_balance_withdrawn, val_id, val_nos_id\n FROM validators_summary\n WHERE\n val_nos_id IS NOT NULL AND\n epoch > (${epoch_number_var} - 6) AND epoch <= ${epoch_number_var}\n LIMIT 1 BY epoch, val_id\n )\n GROUP BY val_id, val_nos_id\n) AS withdrawals\nON\n withdrawals.val_nos_id = current.val_nos_id AND\n withdrawals.val_id = current.val_id\nORDER BY GWei ASC, Operator, Validator\nLIMIT 100", + "rawQuery": "SELECT\n current.val_balance - previous.val_balance + ifNull(withdrawals.withdrawn, 0) AS GWei,\n current.val_nos_name as Operator,\n current.val_id as Validator\nFROM \n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 166657\n LIMIT 1 by val_id\n ) AS current\nLEFT JOIN\n (\n SELECT val_balance, val_id, val_nos_id, val_nos_name \n FROM validators_summary \n WHERE \n val_status != 'pending_queued' AND \n val_nos_id IS NOT NULL AND\n epoch = 166657 - 6\n LIMIT 1 by val_id\n ) AS previous\nON\n previous.val_nos_id = current.val_nos_id AND \n previous.val_id = current.val_id\nLEFT JOIN (\n SELECT\n sum(val_balance_withdrawn) as withdrawn, val_id, val_nos_id\n FROM (\n SELECT val_balance_withdrawn, val_id, val_nos_id\n FROM validators_summary\n WHERE\n val_nos_id IS NOT NULL AND\n epoch > (166657 - 6) AND epoch <= 166657\n LIMIT 1 BY epoch, val_id\n )\n GROUP BY val_id, val_nos_id\n) AS withdrawals\nON\n withdrawals.val_nos_id = current.val_nos_id AND\n withdrawals.val_id = current.val_id\nORDER BY GWei ASC, Operator, Validator\nLIMIT 100", "refId": "A", "round": "0s", "skip_comments": true @@ -4040,7 +4971,7 @@ "h": 7, "w": 16, "x": 8, - "y": 70 + "y": 47 }, "id": 11, "options": { @@ -4089,7 +5020,7 @@ "h": 1, "w": 24, "x": 0, - "y": 58 + "y": 35 }, "id": 66, "panels": [ @@ -4182,6 +5113,24 @@ ] } ] + }, + { + "matcher": { + "id": "byName", + "options": "Operator" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] + } + ] } ] }, @@ -4189,7 +5138,7 @@ "h": 8, "w": 8, "x": 0, - "y": 59 + "y": 36 }, "id": 63, "options": { @@ -4222,7 +5171,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "SELECT\n block_to_propose as Block,\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE is_proposer = 1 AND val_nos_id IS NOT NULL AND block_proposed = 0 AND (epoch <= ${epoch_number_var} AND epoch >= (${epoch_number_var} - ${epochs_range}))\nORDER BY block_to_propose DESC, Operator, Validator\nLIMIT 1 by epoch, val_id", - "rawQuery": "SELECT\n block_to_propose as Block,\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE is_proposer = 1 AND val_nos_id IS NOT NULL AND block_proposed = 0 AND (epoch <= 178187 AND epoch >= (178187 - 10))\nORDER BY block_to_propose DESC, Operator, Validator\nLIMIT 1 by epoch, val_id", + "rawQuery": "SELECT\n block_to_propose as Block,\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE is_proposer = 1 AND val_nos_id IS NOT NULL AND block_proposed = 0 AND (epoch <= 166658 AND epoch >= (166658 - 226))\nORDER BY block_to_propose DESC, Operator, Validator\nLIMIT 1 by epoch, val_id", "refId": "A", "round": "0s", "skip_comments": true @@ -4287,7 +5236,7 @@ "h": 8, "w": 16, "x": 8, - "y": 59 + "y": 36 }, "id": 67, "options": { @@ -4336,7 +5285,7 @@ "h": 1, "w": 24, "x": 0, - "y": 59 + "y": 36 }, "id": 69, "panels": [ @@ -4388,7 +5337,7 @@ "mode": "absolute", "steps": [ { - "color": "red", + "color": "green", "value": null }, { @@ -4456,7 +5405,7 @@ "h": 6, "w": 24, "x": 0, - "y": 60 + "y": 37 }, "id": 92, "options": { @@ -4508,7 +5457,7 @@ "type": "vertamedia-clickhouse-datasource", "uid": "PDEE91DDB90597936" }, - "description": "AVG", + "description": "AVG.\n`Bad` is considered when validator's sync is less than chain avg value (including `SYNC_PARTICIPATION_DISTANCE_DOWN_FROM_CHAIN_AVG`) ", "fieldConfig": { "defaults": { "color": { @@ -4601,6 +5550,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] }, @@ -4630,7 +5589,7 @@ "h": 8, "w": 8, "x": 0, - "y": 66 + "y": 43 }, "id": 72, "options": { @@ -4663,7 +5622,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "SELECT\n sync_percent as Percent,\n val_nos_name as Operator,\n val_id as Validator\nFROM\n validators_summary\nWHERE is_sync = 1 AND val_nos_id IS NOT NULL AND epoch = ${epoch_number_var} AND sync_percent < (${chain_sync_avg_participation} - ${sync_participation_distance_var})\nORDER BY sync_percent, Operator, Validator\nLIMIT 1 by epoch, val_id", - "rawQuery": "SELECT\n sync_percent as Percent,\n val_nos_name as Operator,\n val_id as Validator\nFROM\n validators_summary\nWHERE is_sync = 1 AND val_nos_id IS NOT NULL AND epoch = 178187 AND sync_percent < (98.32409263867885 - 10)\nORDER BY sync_percent, Operator, Validator\nLIMIT 1 by epoch, val_id", + "rawQuery": "SELECT\n sync_percent as Percent,\n val_nos_name as Operator,\n val_id as Validator\nFROM\n validators_summary\nWHERE is_sync = 1 AND val_nos_id IS NOT NULL AND epoch = 166658 AND sync_percent < (70.671875 - 10)\nORDER BY sync_percent, Operator, Validator\nLIMIT 1 by epoch, val_id", "refId": "A", "round": "0s", "skip_comments": true @@ -4728,7 +5687,7 @@ "h": 8, "w": 16, "x": 8, - "y": 66 + "y": 43 }, "id": 73, "options": { @@ -4777,7 +5736,7 @@ "h": 1, "w": 24, "x": 0, - "y": 60 + "y": 37 }, "id": 62, "panels": [ @@ -4900,6 +5859,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } @@ -4909,7 +5878,7 @@ "h": 8, "w": 8, "x": 0, - "y": 61 + "y": 38 }, "id": 57, "options": { @@ -4942,7 +5911,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_happened = 0 AND val_nos_id IS NOT NULL AND epoch = ${epoch_number_var}\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", - "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_happened = 0 AND val_nos_id IS NOT NULL AND epoch = 178187\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", + "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_happened = 0 AND val_nos_id IS NOT NULL AND epoch = 166658\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", "refId": "A", "round": "0s", "skip_comments": true @@ -5007,7 +5976,7 @@ "h": 8, "w": 16, "x": 8, - "y": 61 + "y": 38 }, "id": 58, "options": { @@ -5162,6 +6131,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } @@ -5171,7 +6150,7 @@ "h": 8, "w": 8, "x": 0, - "y": 69 + "y": 46 }, "id": 99, "options": { @@ -5204,7 +6183,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_happened = 1 AND att_inc_delay > 1 AND val_nos_id IS NOT NULL AND epoch = ${epoch_number_var}\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", - "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_happened = 1 AND att_inc_delay > 1 AND val_nos_id IS NOT NULL AND epoch = 178187\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", + "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_happened = 1 AND att_inc_delay > 1 AND val_nos_id IS NOT NULL AND epoch = 166658\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", "refId": "A", "round": "0s", "skip_comments": true @@ -5269,7 +6248,7 @@ "h": 8, "w": 16, "x": 8, - "y": 69 + "y": 46 }, "id": 95, "options": { @@ -5423,6 +6402,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } @@ -5432,7 +6421,7 @@ "h": 8, "w": 8, "x": 0, - "y": 77 + "y": 54 }, "id": 100, "options": { @@ -5465,7 +6454,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_head = 0 AND val_nos_id IS NOT NULL AND epoch = ${epoch_number_var}\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", - "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_head = 0 AND val_nos_id IS NOT NULL AND epoch = 170497\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", + "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_head = 0 AND val_nos_id IS NOT NULL AND epoch = 166658\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", "refId": "A", "round": "0s", "skip_comments": true @@ -5530,7 +6519,7 @@ "h": 8, "w": 16, "x": 8, - "y": 77 + "y": 54 }, "id": 96, "options": { @@ -5684,6 +6673,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } @@ -5693,7 +6692,7 @@ "h": 8, "w": 8, "x": 0, - "y": 85 + "y": 62 }, "id": 101, "options": { @@ -5726,7 +6725,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "\nSELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_target = 0 AND val_nos_id IS NOT NULL AND epoch = ${epoch_number_var}\nORDER BY val_id\nLIMIT 100", - "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_target = 0 AND val_nos_id IS NOT NULL AND epoch = 178187\nORDER BY val_id\nLIMIT 100", + "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_target = 0 AND val_nos_id IS NOT NULL AND epoch = 166572\nORDER BY val_id\nLIMIT 100", "refId": "A", "round": "0s", "skip_comments": true @@ -5791,7 +6790,7 @@ "h": 8, "w": 16, "x": 8, - "y": 85 + "y": 62 }, "id": 97, "options": { @@ -5945,6 +6944,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } @@ -5954,7 +6963,7 @@ "h": 8, "w": 8, "x": 0, - "y": 93 + "y": 70 }, "id": 102, "options": { @@ -5987,7 +6996,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "\nSELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_source = 0 AND val_nos_id IS NOT NULL AND epoch = ${epoch_number_var}\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", - "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_source = 0 AND val_nos_id IS NOT NULL AND epoch = 170497\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", + "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE att_valid_source = 0 AND val_nos_id IS NOT NULL AND epoch = 166572\nORDER BY val_id\nLIMIT 1 by val_id\nLIMIT 100", "refId": "A", "round": "0s", "skip_comments": true @@ -6052,7 +7061,7 @@ "h": 8, "w": 16, "x": 8, - "y": 93 + "y": 70 }, "id": 98, "options": { @@ -6101,7 +7110,7 @@ "h": 1, "w": 24, "x": 0, - "y": 61 + "y": 38 }, "id": 50, "panels": [ @@ -6171,6 +7180,16 @@ { "id": "custom.filterable", "value": true + }, + { + "id": "links", + "value": [ + { + "targetBlank": true, + "title": "Operator's dashboard", + "url": "http://127.0.0.1:8082/d/3wimU2H7h/nodeoperators/?var-nos_name_var=${__value.raw}" + } + ] } ] } @@ -6180,7 +7199,7 @@ "h": 8, "w": 12, "x": 0, - "y": 62 + "y": 79 }, "id": 51, "options": { @@ -6207,7 +7226,7 @@ "formattedQuery": "SELECT $timeSeries as t, count() FROM $table WHERE $timeFilter GROUP BY t ORDER BY t", "intervalFactor": 1, "query": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE (val_status == 'active_slashed' OR val_status == 'exited_slashed' OR val_slashed == 1) AND val_nos_id IS NOT NULL and epoch = ${epoch_number_var}\nORDER by val_id\nLIMIT 1 by val_id", - "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE (val_status == 'active_slashed' OR val_status == 'exited_slashed' OR val_slashed == 1) AND val_nos_id IS NOT NULL and epoch = 178187\nORDER by val_id\nLIMIT 1 by val_id", + "rawQuery": "SELECT\n val_nos_name as Operator,\n val_id as Validator\nFROM validators_summary\nWHERE (val_status == 'active_slashed' OR val_status == 'exited_slashed' OR val_slashed == 1) AND val_nos_id IS NOT NULL and epoch = 166572\nORDER by val_id\nLIMIT 1 by val_id", "refId": "A", "round": "0s", "skip_comments": true @@ -6230,7 +7249,7 @@ "h": 1, "w": 24, "x": 0, - "y": 62 + "y": 39 }, "id": 32, "panels": [], @@ -6297,7 +7316,7 @@ "h": 4, "w": 4, "x": 0, - "y": 63 + "y": 40 }, "id": 34, "options": { @@ -6397,7 +7416,7 @@ "h": 4, "w": 4, "x": 4, - "y": 63 + "y": 40 }, "id": 36, "options": { @@ -6445,8 +7464,8 @@ { "current": { "selected": false, - "text": "178187", - "value": "178187" + "text": "166658", + "value": "166658" }, "datasource": { "type": "prometheus", @@ -6501,8 +7520,8 @@ { "current": { "selected": false, - "text": "98.32409263867885", - "value": "98.32409263867885" + "text": "70.671875", + "value": "70.671875" }, "datasource": { "type": "prometheus", @@ -6529,8 +7548,8 @@ { "current": { "selected": false, - "text": "9", - "value": "9" + "text": "29", + "value": "29" }, "datasource": { "type": "prometheus", @@ -6573,6 +7592,6 @@ "timezone": "", "title": "Validators", "uid": "HRgPmpNnz", - "version": 5, + "version": 18, "weekStart": "" } diff --git a/src/storage/clickhouse/clickhouse.constants.ts b/src/storage/clickhouse/clickhouse.constants.ts index 04f15586..3e58eeae 100644 --- a/src/storage/clickhouse/clickhouse.constants.ts +++ b/src/storage/clickhouse/clickhouse.constants.ts @@ -710,7 +710,7 @@ export const userNodeOperatorsWithdrawalsStats = (epoch: Epoch): string => ` epoch = ${epoch} LIMIT 1 BY val_id ) - GROUP BY val_id, val_nos_id + GROUP BY val_nos_id `; export const otherChainWithdrawalsStats = (epoch: Epoch): string => `