{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" }, { "name": "VAR_NODE_JOB", "type": "constant", "label": "node_job", "value": "lighthouse", "description": "" }, { "name": "VAR_VALIDATOR_JOB", "type": "constant", "label": "validator_job", "value": "lighthouse_validator", "description": "" } ], "__elements": [], "__requires": [ { "type": "panel", "id": "alertlist", "name": "Alert list", "version": "" }, { "type": "panel", "id": "bargauge", "name": "Bar gauge", "version": "" }, { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "8.3.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "1.0.0" }, { "type": "panel", "id": "stat", "name": "Stat", "version": "" }, { "type": "panel", "id": "table", "name": "Table", "version": "" }, { "type": "panel", "id": "text", "name": "Text", "version": "" }, { "type": "panel", "id": "timeseries", "name": "Time series", "version": "" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "limit": 100, "name": "Annotations & Alerts", "showIn": 0, "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "id": null, "iteration": 1640044002381, "links": [], "liveNow": false, "panels": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This panel shows the earning during the last hour, and the annualized % of the hourly earning.\n\nThose data won't be shown until the first validator is at least one hour old, or that you started prometheus at least one hour ago.\n\nAlso, the annualized % might be wrong if you have downtime while new validators are getting validated", "fieldConfig": { "defaults": { "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Annualized %" }, "properties": [ { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": 0 }, { "color": "dark-green", "value": 5 } ] } }, { "id": "unit", "value": "percent" } ] }, { "matcher": { "id": "byName", "options": "ETH" }, "properties": [ { "id": "decimals", "value": 4 }, { "id": "unit", "value": " Ξ" } ] }, { "matcher": { "id": "byName", "options": "btc" }, "properties": [ { "id": "decimals", "value": 6 }, { "id": "unit", "value": "currencyBTC" } ] }, { "matcher": { "id": "byName", "options": "cad" }, "properties": [ { "id": "unit", "value": "C$" } ] }, { "matcher": { "id": "byName", "options": "chf" }, "properties": [ { "id": "unit", "value": "CHf" } ] }, { "matcher": { "id": "byName", "options": "eur" }, "properties": [ { "id": "unit", "value": "currencyEUR" }, { "id": "displayName", "value": "EUR" } ] }, { "matcher": { "id": "byName", "options": "gbp" }, "properties": [ { "id": "unit", "value": "currencyGBP" } ] }, { "matcher": { "id": "byName", "options": "jpy" }, "properties": [ { "id": "unit", "value": "currencyJPY" } ] }, { "matcher": { "id": "byName", "options": "usd" }, "properties": [ { "id": "unit", "value": "currencyUSD" } ] } ] }, "gridPos": { "h": 3, "w": 4, "x": 0, "y": 0 }, "id": 80, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1h) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1h > 0)*32E9))/1E9", "instant": true, "interval": "", "legendFormat": "ETH", "refId": "A" }, { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1h) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1h > 0)*32E9)*sum(crypto_currency{pair=\"eth$fiat\"}))/1E9", "instant": true, "interval": "", "legendFormat": "$fiat", "refId": "C" }, { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1h) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1h > 0)*32E9)/(avg_over_time(count(validator_monitor_balance_gwei > 16E9)[1h:30s])*32E9/24/365)*100", "instant": true, "interval": "", "legendFormat": "Annualized %", "refId": "B" } ], "title": "Hourly earning", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This panel shows the earning during the last day, and the annualized % of the daily earning.\n\nThose data won't be shown until the first validator is at least one day old, or that you started prometheus at least one day ago.\n\nAlso, the annualized % might be wrong if you have downtime while new validators are getting validated", "fieldConfig": { "defaults": { "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Annualized %" }, "properties": [ { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": 0 }, { "color": "dark-green", "value": 5 } ] } }, { "id": "unit", "value": "percent" } ] }, { "matcher": { "id": "byName", "options": "ETH" }, "properties": [ { "id": "decimals", "value": 4 }, { "id": "unit", "value": "Ξ" } ] }, { "matcher": { "id": "byName", "options": "btc" }, "properties": [ { "id": "decimals", "value": 6 }, { "id": "unit", "value": "currencyBTC" } ] }, { "matcher": { "id": "byName", "options": "cad" }, "properties": [ { "id": "unit", "value": "C$" } ] }, { "matcher": { "id": "byName", "options": "chf" }, "properties": [ { "id": "unit", "value": "CHf" } ] }, { "matcher": { "id": "byName", "options": "eur" }, "properties": [ { "id": "unit", "value": "currencyEUR" }, { "id": "displayName", "value": "EUR" } ] }, { "matcher": { "id": "byName", "options": "gbp" }, "properties": [ { "id": "unit", "value": "currencyGBP" } ] }, { "matcher": { "id": "byName", "options": "jpy" }, "properties": [ { "id": "unit", "value": "currencyJPY" } ] }, { "matcher": { "id": "byName", "options": "usd" }, "properties": [ { "id": "unit", "value": "currencyUSD" } ] } ] }, "gridPos": { "h": 3, "w": 4, "x": 4, "y": 0 }, "id": 79, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1d) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1d > 0)*32E9))/1E9", "instant": true, "interval": "", "legendFormat": "ETH", "refId": "A" }, { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1d) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1d > 0)*32E9)*sum(crypto_currency{pair=\"eth$fiat\"}))/1E9", "instant": true, "interval": "", "legendFormat": "$fiat", "refId": "C" }, { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1d) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1d > 0)*32E9)/(avg_over_time(count(validator_monitor_balance_gwei > 16E9)[1d:12m])*32E9/365)*100", "instant": true, "interval": "", "legendFormat": "Annualized %", "refId": "B" } ], "title": "Daily earning", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This panel shows the earning during the last week, and the annualized % of the weekly earning.\n\nThose data won't be shown until the first validator is at least one week old, or that you started prometheus at least one week ago.\n\nAlso, the annualized % might be wrong if you have downtime while new validators are getting validated", "fieldConfig": { "defaults": { "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Annualized %" }, "properties": [ { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": 0 }, { "color": "dark-green", "value": 5 } ] } }, { "id": "unit", "value": "percent" } ] }, { "matcher": { "id": "byName", "options": "ETH" }, "properties": [ { "id": "decimals", "value": 4 }, { "id": "unit", "value": "Ξ" } ] }, { "matcher": { "id": "byName", "options": "btc" }, "properties": [ { "id": "decimals", "value": 6 }, { "id": "unit", "value": "currencyBTC" } ] }, { "matcher": { "id": "byName", "options": "cad" }, "properties": [ { "id": "unit", "value": "C$" } ] }, { "matcher": { "id": "byName", "options": "chf" }, "properties": [ { "id": "unit", "value": "CHf" } ] }, { "matcher": { "id": "byName", "options": "eur" }, "properties": [ { "id": "unit", "value": "currencyEUR" }, { "id": "displayName", "value": "EUR" } ] }, { "matcher": { "id": "byName", "options": "gbp" }, "properties": [ { "id": "unit", "value": "currencyGBP" } ] }, { "matcher": { "id": "byName", "options": "jpy" }, "properties": [ { "id": "unit", "value": "currencyJPY" } ] }, { "matcher": { "id": "byName", "options": "usd" }, "properties": [ { "id": "unit", "value": "currencyUSD" } ] } ] }, "gridPos": { "h": 3, "w": 4, "x": 8, "y": 0 }, "id": 78, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1w) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1w > 0)*32E9))/1E9", "instant": true, "interval": "", "legendFormat": "ETH", "refId": "A" }, { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1w) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1w > 0)*32E9)*sum(crypto_currency{pair=\"eth$fiat\"}))/1E9", "instant": true, "interval": "", "legendFormat": "$fiat", "refId": "C" }, { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1w) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1w > 0)*32E9)/(avg_over_time(count(validator_monitor_balance_gwei > 16E9)[1w:84m])*32E9*7/365)*100", "instant": true, "interval": "", "legendFormat": "Annualized %", "refId": "B" } ], "title": "Weekly earning", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This panel shows the earning during the last month, and the annualized % of the monthly earning.\n\nThose data won't be shown until the first validator is at least one month old, or that you started prometheus at least one month ago. Ensure to run Prometheus with the flag `--storage.tsdb.retention.time=31d` if you want this panel to get enough data\n\nAlso, the annualized % might be wrong if you have downtime while new validators are getting validated", "fieldConfig": { "defaults": { "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Annualized %" }, "properties": [ { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": 0 }, { "color": "dark-green", "value": 5 } ] } }, { "id": "unit", "value": "percent" } ] }, { "matcher": { "id": "byName", "options": "ETH" }, "properties": [ { "id": "decimals", "value": 4 }, { "id": "unit", "value": "Ξ" } ] }, { "matcher": { "id": "byName", "options": "btc" }, "properties": [ { "id": "decimals", "value": 6 }, { "id": "unit", "value": "currencyBTC" } ] }, { "matcher": { "id": "byName", "options": "cad" }, "properties": [ { "id": "unit", "value": "C$" } ] }, { "matcher": { "id": "byName", "options": "chf" }, "properties": [ { "id": "unit", "value": "CHf" } ] }, { "matcher": { "id": "byName", "options": "eur" }, "properties": [ { "id": "unit", "value": "currencyEUR" }, { "id": "displayName", "value": "EUR" } ] }, { "matcher": { "id": "byName", "options": "gbp" }, "properties": [ { "id": "unit", "value": "currencyGBP" } ] }, { "matcher": { "id": "byName", "options": "jpy" }, "properties": [ { "id": "unit", "value": "currencyJPY" } ] }, { "matcher": { "id": "byName", "options": "usd" }, "properties": [ { "id": "unit", "value": "currencyUSD" } ] } ] }, "gridPos": { "h": 3, "w": 4, "x": 12, "y": 0 }, "id": 77, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 30d) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 30d > 0)*32E9))/1E9", "instant": true, "interval": "", "legendFormat": "ETH", "refId": "A" }, { "expr": "((sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 30d) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 30d > 0)*32E9)*sum(crypto_currency{pair=\"eth$fiat\"}))/1E9", "instant": true, "interval": "", "legendFormat": "$fiat", "refId": "C" }, { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 30d) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 30d > 0)*32E9)/(avg_over_time(count(validator_monitor_balance_gwei > 16E9)[30d:6h])*32E9/12)*100", "instant": true, "interval": "", "legendFormat": "Annualized %", "refId": "B" } ], "title": "Monthly earning", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null } ] }, "unit": "locale" }, "overrides": [ { "matcher": { "id": "byName", "options": "btc" }, "properties": [ { "id": "decimals", "value": 6 }, { "id": "unit", "value": "currencyBTC" } ] }, { "matcher": { "id": "byName", "options": "ETH" }, "properties": [ { "id": "decimals", "value": 4 } ] }, { "matcher": { "id": "byName", "options": "ROI" }, "properties": [ { "id": "decimals", "value": 4 }, { "id": "unit", "value": "percent" } ] }, { "matcher": { "id": "byName", "options": "cad" }, "properties": [ { "id": "unit", "value": "C$" } ] }, { "matcher": { "id": "byName", "options": "ETH" }, "properties": [ { "id": "unit", "value": "Ξ" } ] }, { "matcher": { "id": "byName", "options": "chf" }, "properties": [ { "id": "unit", "value": "CHf" } ] }, { "matcher": { "id": "byName", "options": "eur" }, "properties": [ { "id": "unit", "value": "currencyEUR" }, { "id": "displayName", "value": "EUR" } ] }, { "matcher": { "id": "byName", "options": "gbp" }, "properties": [ { "id": "unit", "value": "currencyGBP" } ] }, { "matcher": { "id": "byName", "options": "jpy" }, "properties": [ { "id": "unit", "value": "currencyJPY" } ] }, { "matcher": { "id": "byName", "options": "usd" }, "properties": [ { "id": "unit", "value": "currencyUSD" } ] } ] }, "gridPos": { "h": 3, "w": 4, "x": 16, "y": 0 }, "id": 69, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "(sum(validator_monitor_balance_gwei) - count(validator_monitor_balance_gwei > 16E9 and validator_monitor_active == 1)*32E9)/1E9", "instant": true, "interval": "", "legendFormat": "ETH", "refId": "A" }, { "expr": "((sum(validator_monitor_balance_gwei) - count(validator_monitor_balance_gwei > 16E9 and validator_monitor_active == 1)*32E9)*sum(crypto_currency{pair=\"eth$fiat\"}))/1E9", "instant": true, "interval": "", "legendFormat": "$fiat", "refId": "C" }, { "expr": "(sum(validator_monitor_balance_gwei) - count(validator_monitor_balance_gwei > 16E9 and validator_monitor_active == 1)*32E9)*100/(count(validator_monitor_balance_gwei > 16E9 and validator_monitor_active == 1)*32E9)", "instant": true, "interval": "", "legendFormat": "ROI", "refId": "B" } ], "title": "Total earning", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "decimals": 1, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#EAB839", "value": 12 }, { "color": "dark-green", "value": 24 } ] }, "unit": "h" }, "overrides": [] }, "gridPos": { "h": 3, "w": 4, "x": 20, "y": 0 }, "id": 84, "links": [], "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "(time()-process_start_time_seconds{job=\"$node_job\"})/3600", "hide": false, "interval": "", "legendFormat": "Beacon", "refId": "B" }, { "expr": "(time()-process_start_time_seconds{job=\"$validator_job\"})/3600", "instant": false, "interval": "", "legendFormat": "Validator", "refId": "A" } ], "title": "Process Started", "transformations": [], "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "ETH", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 4, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "Total balance" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 3 }, "id": 4, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "(sum(validator_monitor_balance_gwei > 16E9))/1E9", "interval": "", "legendFormat": "Total balance", "refId": "A" } ], "title": "Total balance", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "ETH", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 4, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 3 }, "id": 87, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "(validator_monitor_balance_gwei > 16E9)/1E9", "format": "time_series", "hide": false, "instant": false, "interval": "", "intervalFactor": 1, "legendFormat": "{{validator}}", "refId": "A" } ], "title": "Validator balance", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "mem usage", "axisPlacement": "left", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 50, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineStyle": { "fill": "solid" }, "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "transparent", "value": null } ] }, "unit": "decbytes" }, "overrides": [ { "matcher": { "id": "byName", "options": "load avg lighthouse" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-orange", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "load avg lighthouse_validator" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-blue", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "memory lighthouse" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "memory lighthouse_validator" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byRegexp", "options": "/load avg */" }, "properties": [ { "id": "decimals", "value": 1 }, { "id": "custom.axisLabel", "value": "CPU usage rate" }, { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "transparent", "value": null }, { "color": "dark-red", "value": 5 } ] } }, { "id": "custom.axisPlacement", "value": "right" }, { "id": "unit", "value": "percentunit" } ] }, { "matcher": { "id": "byRegexp", "options": "/memory */" }, "properties": [ { "id": "custom.scaleDistribution", "value": { "log": 2, "type": "log" } } ] } ] }, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 3 }, "id": 32, "options": { "legend": { "calcs": [ "min", "max", "mean", "lastNotNull" ], "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "pluginVersion": "8.0.6", "targets": [ { "exemplar": false, "expr": "avg_over_time(process_resident_memory_bytes{job=\"$node_job\"}[1m:5s])", "hide": false, "instant": false, "interval": "", "legendFormat": "memory {{job}}", "refId": "A" }, { "exemplar": true, "expr": "avg_over_time(process_resident_memory_bytes{job=\"$validator_job\"}[1m:5s])", "hide": false, "instant": false, "interval": "", "legendFormat": "memory {{job}}", "refId": "C" }, { "expr": "system_loadavg_1", "hide": false, "instant": false, "interval": "", "legendFormat": "load avg {{job}}", "refId": "B" } ], "title": "Hardware usage", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This panel will count only the votes done since your validator process started", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "displayMode": "auto", "filterable": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "validator" }, "properties": [ { "id": "unit", "value": "string" }, { "id": "links", "value": [ { "targetBlank": true, "title": "https://beaconcha.in/validator/${__value.raw}", "url": "https://beaconcha.in/validator/${__value.raw}" } ] }, { "id": "custom.align", "value": "auto" } ] }, { "matcher": { "id": "byName", "options": "Value #A" }, "properties": [ { "id": "displayName", "value": "Attestation" }, { "id": "unit", "value": "short" }, { "id": "custom.displayMode", "value": "color-text" }, { "id": "custom.align", "value": "auto" }, { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "rgba(245, 54, 54, 0.9)", "value": null }, { "color": "rgba(237, 129, 40, 0.89)", "value": 5 }, { "color": "rgba(50, 172, 45, 0.97)", "value": 225 } ] } } ] }, { "matcher": { "id": "byName", "options": "Value #B" }, "properties": [ { "id": "displayName", "value": "Aggregate" }, { "id": "unit", "value": "short" }, { "id": "custom.align", "value": "auto" } ] }, { "matcher": { "id": "byName", "options": "Value #C" }, "properties": [ { "id": "displayName", "value": "Proposal" }, { "id": "unit", "value": "short" }, { "id": "custom.align", "value": "auto" } ] } ] }, "gridPos": { "h": 12, "w": 8, "x": 0, "y": 10 }, "id": 20, "options": { "footer": { "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": false, "displayName": "validator" } ] }, "pluginVersion": "8.3.0", "targets": [ { "expr": "max by (validator) (validator_monitor_unaggregated_attestation_total)", "format": "table", "hide": false, "instant": true, "interval": "", "intervalFactor": 1, "legendFormat": "", "refId": "A" }, { "expr": "max by (validator) (validator_monitor_aggregated_attestation_total)", "format": "table", "hide": false, "instant": true, "interval": "", "intervalFactor": 1, "legendFormat": "", "refId": "B" }, { "expr": "max by (validator) (validator_monitor_beacon_block_total)", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "", "refId": "C" } ], "title": "Validator vote summary", "transformations": [ { "id": "merge", "options": { "reducers": [] } }, { "id": "organize", "options": { "excludeByName": { "Time": true }, "indexByName": {}, "renameByName": {} } } ], "transparent": true, "type": "table" }, { "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "displayMode": "auto" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "validator" }, "properties": [ { "id": "unit", "value": "string" }, { "id": "links", "value": [ { "targetBlank": true, "title": "https://beaconcha.in/validator/${__value.raw}", "url": "https://beaconcha.in/validator/${__value.raw}" } ] }, { "id": "custom.align" } ] }, { "matcher": { "id": "byName", "options": "Value #A" }, "properties": [ { "id": "displayName", "value": "balance" }, { "id": "unit", "value": "short" }, { "id": "decimals", "value": 9 }, { "id": "custom.displayMode", "value": "color-text" }, { "id": "custom.align" }, { "id": "thresholds", "value": { "mode": "absolute", "steps": [ { "color": "rgba(245, 54, 54, 0.9)", "value": null }, { "color": "rgba(237, 129, 40, 0.89)", "value": 32 }, { "color": "rgba(50, 172, 45, 0.97)", "value": 32 } ] } } ] }, { "matcher": { "id": "byName", "options": "Status" }, "properties": [ { "id": "unit", "value": "short" }, { "id": "decimals", "value": 2 }, { "id": "custom.displayMode", "value": "color-text" }, { "id": "custom.align" }, { "id": "mappings", "value": [ { "options": { "0": { "color": "yellow", "index": 0, "text": "Pending" }, "1": { "color": "green", "index": 1, "text": "Active" }, "10": { "color": "blue", "index": 2, "text": "Exited" }, "110": { "color": "purple", "index": 3, "text": "Withdrawable" }, "1010": { "color": "red", "index": 4, "text": "Slashed" }, "1110": { "color": "orange", "index": 5, "text": "Slashed Withdrawable" } }, "type": "value" } ] }, { "id": "custom.width" } ] } ] }, "gridPos": { "h": 12, "w": 8, "x": 8, "y": 10 }, "id": 22, "options": { "footer": { "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "balance" } ] }, "pluginVersion": "8.3.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "exemplar": false, "expr": "max by(validator) (validator_monitor_balance_gwei/1E9)", "format": "table", "instant": true, "interval": "", "legendFormat": "", "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "exemplar": false, "expr": "max by(validator) (validator_monitor_active)", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "Active", "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "exemplar": false, "expr": "max by(validator) (validator_monitor_slashed*1000)", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "Slashed", "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "exemplar": false, "expr": "max by(validator) (validator_monitor_exited*10)", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "Exited", "refId": "D" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "exemplar": false, "expr": "max by(validator) (validator_monitor_withdrawable*100)", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "Withdrawable", "refId": "E" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "exemplar": false, "expr": "validator_monitor_validator_in_current_sync_committee{}", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "Sync Committee", "refId": "F" } ], "title": "Validator main info", "transformations": [ { "id": "seriesToColumns", "options": { "byField": "validator" } }, { "id": "calculateField", "options": { "alias": "Status", "binary": { "left": "Value #C", "operator": "+", "reducer": "sum", "right": "Value #D" }, "mode": "reduceRow", "reduce": { "include": [ "Value #B", "Value #C", "Value #D", "Value #E" ], "reducer": "sum" }, "replaceFields": false } }, { "id": "organize", "options": { "excludeByName": { "Time 1": true, "Time 2": true, "Time 3": true, "Time 4": true, "Time 5": true, "Time 6": true, "Value #B": true, "Value #C": true, "Value #D": true, "Value #E": true, "__name__": true, "instance": true, "job": true }, "indexByName": { "Status": 15, "Time 1": 1, "Time 2": 3, "Time 3": 5, "Time 4": 7, "Time 5": 11, "Time 6": 13, "Value #A": 2, "Value #B": 4, "Value #C": 6, "Value #D": 12, "Value #E": 14, "Value #F": 16, "__name__": 8, "instance": 9, "job": 10, "validator": 0 }, "renameByName": { "Time 5": "", "Value #F": "Sync Committee" } } } ], "transparent": true, "type": "table" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "ETH", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "bars", "fillOpacity": 100, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 4, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "Hourly earning" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Hourly loosing" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Total balance" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 10 }, "id": 81, "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1h))/1E9 >= 0", "format": "time_series", "instant": false, "interval": "1h", "legendFormat": "Hourly earning", "refId": "A" }, { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1h))/1E9 <= 0", "format": "time_series", "instant": false, "interval": "1h", "legendFormat": "Hourly loosing", "refId": "B" } ], "timeFrom": "now-1d", "title": "Hourly earning ETH last 24 hours", "transformations": [], "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "ETH", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "bars", "fillOpacity": 100, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 4, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "Total balance" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Daily earning" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-green", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 16 }, "hideTimeOverride": false, "id": 82, "interval": "", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1d))/1E9 >= 0", "format": "time_series", "instant": false, "interval": "1d", "legendFormat": "Daily earning", "refId": "A" }, { "expr": "(sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1d))/1E9 < 0", "format": "time_series", "instant": false, "interval": "1d", "legendFormat": "Daily loosing", "refId": "B" } ], "timeFrom": "now-7d", "title": "Daily earning ETH last 7 days", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "1": { "text": "" } }, "type": "value" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "#299c46", "value": null }, { "color": "rgba(237, 129, 40, 0.89)", "value": 0 }, { "color": "#1F60C4", "value": 0 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 1, "w": 11, "x": 0, "y": 22 }, "id": 30, "links": [], "maxDataPoints": 100, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "mean" ], "fields": "/^NODE$/", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "1", "interval": "", "legendFormat": "NODE", "refId": "A" } ], "title": "NODE", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "1": { "text": "" } }, "type": "value" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "#299c46", "value": null }, { "color": "rgba(237, 129, 40, 0.89)", "value": 0 }, { "color": "#8F3BB8", "value": 0 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 1, "w": 5, "x": 11, "y": 22 }, "id": 41, "links": [], "maxDataPoints": 100, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "1", "interval": "", "legendFormat": "", "refId": "A" } ], "title": "ALERTS", "type": "stat" }, { "gridPos": { "h": 5, "w": 8, "x": 16, "y": 22 }, "id": 86, "options": { "content": "# Lighthouse staking dashboard\nMade by Yoldark from Prysm lot of keys dashboard \n\neth donation : 0x945DF808617bDD3753237eCF0d5D2A8EEedE76d2 \nsource : https://github.com/Yoldark34/lighthouse-grafana-dashboard\n", "mode": "markdown" }, "pluginVersion": "8.3.0", "title": "Credits", "type": "text" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This graph is made for trading purpose mostly.\nSupposing that if a lot of validators are exiting, price is gonna dump.\n\nYoldark : Not working as supposed right now because lighthouse do not provide enough information on the state of the network\n\nAlso this can prevent to exit while exiting queue is too long, same for depositing while pending queue is too long.\n\n", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "ETH", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "Active" }, "properties": [ { "id": "color", "value": { "fixedColor": "dark-green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Exiting" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Participation rate" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }, { "id": "min", "value": 0 } ] }, { "matcher": { "id": "byName", "options": "Pending" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Participation rate" }, "properties": [ { "id": "custom.fillOpacity", "value": 0 }, { "id": "custom.lineWidth", "value": 2 }, { "id": "unit", "value": "percent" }, { "id": "max", "value": 100 } ] } ] }, "gridPos": { "h": 10, "w": 8, "x": 0, "y": 23 }, "hideTimeOverride": false, "id": 46, "options": { "legend": { "calcs": [ "lastNotNull" ], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "exemplar": true, "expr": "beacon_head_state_validator_balances_total / 1E9", "interval": "", "legendFormat": "", "refId": "A" }, { "exemplar": true, "expr": "(beacon_participation_prev_epoch_head_attesting_gwei_total/beacon_participation_prev_epoch_target_attesting_gwei_total)*100", "hide": false, "instant": false, "interval": "", "legendFormat": "Participation rate", "refId": "B" } ], "thresholds": [], "timeFrom": "30d", "title": "Balance validators status and participation rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "decimals": 1, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#FADE2A", "value": 0.17 }, { "color": "#299c46", "value": 11.9 } ] }, "unit": "h" }, "overrides": [] }, "gridPos": { "h": 2, "w": 3, "x": 8, "y": 23 }, "id": 56, "links": [], "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "(time()-process_start_time_seconds{job=\"$node_job\"})/3600", "instant": true, "interval": "", "legendFormat": "", "refId": "A" } ], "title": "Node process started", "transformations": [], "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 10, "w": 5, "x": 11, "y": 23 }, "id": 24, "options": { "alertName": "", "dashboardAlerts": true, "dashboardTitle": "", "maxItems": 10, "showOptions": "current", "sortOrder": 3, "stateFilter": { "alerting": true, "execution_error": true, "no_data": true, "ok": false, "paused": true, "pending": true }, "tags": [] }, "pluginVersion": "8.3.0", "title": "All alerts", "type": "alertlist" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "#299c46", "value": null }, { "color": "#eab839", "value": 5 }, { "color": "red", "value": 20 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 2, "w": 3, "x": 8, "y": 25 }, "id": 26, "links": [], "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "slotclock_present_slot-beacon_head_state_latest_block_slot", "instant": true, "interval": "", "legendFormat": "Slots behind", "refId": "A" } ], "title": "Slots behind", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "#F2CC0C", "value": 5 }, { "color": "#299c46", "value": 10 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 2, "w": 3, "x": 8, "y": 27 }, "id": 34, "links": [], "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "text": {}, "textMode": "auto" }, "pluginVersion": "8.3.0", "targets": [ { "expr": "libp2p_peers", "instant": true, "interval": "", "legendFormat": "", "refId": "A" } ], "title": "Peers connected", "type": "stat" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 66 ], "type": "lt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "10s", "now" ] }, "reducer": { "params": [], "type": "last" }, "type": "query" } ], "executionErrorState": "alerting", "for": "0m", "frequency": "1m", "handler": 1, "message": "NETWORK ALERT: THE PARTICIPATION RATE IS BELOW 66%! You won't get any reward until the participation rate rise up above 66% again. This alert doesn't require any action from you", "name": "NETWORK: Participation rate below 66%", "noDataState": "ok", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "I'm not sure about this one yet", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "transparent", "value": 66 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 1, "w": 4, "x": 16, "y": 27 }, "id": 65, "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "exemplar": true, "expr": "(beacon_participation_prev_epoch_head_attesting_gwei_total/beacon_participation_prev_epoch_target_attesting_gwei_total)*100", "interval": "", "legendFormat": "", "refId": "A" } ], "thresholds": [ { "colorMode": "critical", "op": "lt", "value": 66, "visible": true } ], "title": "Alert: Participation rate < 66%", "type": "timeseries" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 50 ], "type": "gt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "10s", "now" ] }, "reducer": { "params": [], "type": "avg" }, "type": "query" }, { "evaluator": { "params": [ 100 ], "type": "gt" }, "operator": { "type": "or" }, "query": { "params": [ "B", "10s", "now" ] }, "reducer": { "params": [], "type": "avg" }, "type": "query" } ], "executionErrorState": "alerting", "for": "0m", "frequency": "1m", "handler": 1, "message": "NODE ALERT: MORE THAN 50 ERRORS OR 100 WARNINGS IN THE LAST HOUR", "name": "NODE: 50 errors or 100 warns in 1h", "noDataState": "ok", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "transparent", "value": null }, { "color": "red", "value": 50 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 1, "w": 4, "x": 20, "y": 27 }, "id": 52, "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "error_total{job=\"lighthouse\"} - error_total{job=\"lighthouse\"} offset 1h", "instant": false, "interval": "", "legendFormat": "errors", "refId": "A" }, { "expr": "warn_total{job=\"lighthouse\"} - warn_total{job=\"lighthouse\"} offset 1h", "instant": false, "interval": "", "legendFormat": "warnings", "refId": "B" } ], "thresholds": [ { "colorMode": "critical", "op": "gt", "value": 50, "visible": true } ], "title": "Alert: 50 errors or 100 warns in 1h", "type": "timeseries" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 0.1 ], "type": "lt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "10s", "now" ] }, "reducer": { "params": [], "type": "last" }, "type": "query" }, { "evaluator": { "params": [ 0.1 ], "type": "lt" }, "operator": { "type": "or" }, "query": { "params": [ "B", "10s", "now" ] }, "reducer": { "params": [], "type": "last" }, "type": "query" } ], "executionErrorState": "alerting", "for": "0m", "frequency": "1m", "handler": 1, "message": "One of the two process just restarted.", "name": "WARN NODE/VALIDATOR: The process just restarted", "noDataState": "no_data", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This alert is useful only for people who has automatic restart of the process after crash. \nThis can be made for example by using the prysm.bat file on windows with \"set PRYSM_AUTORESTART=true&\", or with docker with \"--restart always\"", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "left", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineStyle": { "fill": "solid" }, "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "decimals": 1, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "transparent", "value": 0.1 } ] }, "unit": "h" }, "overrides": [] }, "gridPos": { "h": 1, "w": 4, "x": 16, "y": 28 }, "id": 61, "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "pluginVersion": "8.0.6", "targets": [ { "exemplar": true, "expr": "(time()-process_start_time_seconds{job=\"lighthouse\"})/3600", "interval": "", "legendFormat": "{{job}}", "refId": "A" }, { "exemplar": true, "expr": "(time()-process_start_time_seconds{job=\"lighthouse_validator\"})/3600", "hide": false, "interval": "", "legendFormat": "{{job}}", "refId": "B" } ], "thresholds": [ { "colorMode": "critical", "op": "lt", "value": 0.1, "visible": true } ], "title": "Warn: The process just restarted", "transformations": [], "type": "timeseries" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 50 ], "type": "gt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "5m", "now" ] }, "reducer": { "params": [], "type": "avg" }, "type": "query" } ], "executionErrorState": "alerting", "for": "0", "frequency": "1m", "handler": 1, "message": "NODE ALERT: MORE THAN 50 SLOTS BEHIND THAN THE CHAIN", "name": "NODE: 50 slots behind", "noDataState": "ok", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "transparent", "value": null }, { "color": "red", "value": 50 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 1, "w": 4, "x": 20, "y": 28 }, "id": 28, "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "beacon_head_state_latest_block_slot-beacon_head_state_slot", "interval": "", "legendFormat": "node slots behind", "refId": "A" } ], "thresholds": [ { "colorMode": "critical", "op": "gt", "value": 50, "visible": true } ], "title": "Alert: 50 slots behind", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "This panel won't have consistant values during the first hour of the node started process", "fieldConfig": { "defaults": { "decimals": 0, "displayName": "", "mappings": [ { "options": { "": { "color": "green", "text": "0" } }, "type": "value" } ], "max": 100, "min": 0, "noValue": "0", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "#EAB839", "value": 25 }, { "color": "red", "value": 50 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 4, "w": 3, "x": 8, "y": 29 }, "id": 40, "options": { "displayMode": "lcd", "orientation": "horizontal", "reduceOptions": { "calcs": [ "last" ], "fields": "", "values": false }, "showUnfilled": true, "text": {} }, "pluginVersion": "8.3.0", "targets": [ { "expr": "error_total{job=\"$node_job\"} - error_total{job=\"$node_job\"} offset 1h", "hide": false, "instant": false, "interval": "", "legendFormat": "Errors", "refId": "A" }, { "expr": "warn_total{job=\"$node_job\"} - warn_total{job=\"$node_job\"} offset 1h", "hide": false, "interval": "", "legendFormat": "Warns", "refId": "C" } ], "title": "Hourly log type counter", "transformations": [], "type": "bargauge" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 0 ], "type": "lt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "10s", "now" ] }, "reducer": { "params": [], "type": "last" }, "type": "query" } ], "executionErrorState": "alerting", "for": "0m", "frequency": "1m", "handler": 1, "message": "VALIDATOR ALERT: THE EARNING IN THE LAST HOUR IS LESS THAN 0", "name": "VALIDATOR: Hourly earning <= 0", "noDataState": "ok", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "decimals": 8, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "transparent", "value": 0 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 1, "w": 4, "x": 16, "y": 29 }, "id": 48, "interval": "", "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "sum(validator_monitor_balance_gwei) - sum(validator_monitor_balance_gwei offset 1h) - count(validator_monitor_balance_gwei > 16E9)*32E9 + count(validator_monitor_balance_gwei offset 1h > 0)*32E9", "instant": false, "interval": "", "legendFormat": "validators earning on 1h", "refId": "A" } ], "title": "Alert: Hourly earning <= 0", "type": "timeseries" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 0.9 ], "type": "lt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "5m", "now" ] }, "reducer": { "params": [], "type": "avg" }, "type": "query" }, { "evaluator": { "params": [ 0.9 ], "type": "lt" }, "operator": { "type": "or" }, "query": { "params": [ "B", "5m", "now" ] }, "reducer": { "params": [], "type": "avg" }, "type": "query" } ], "executionErrorState": "alerting", "for": "5m", "frequency": "1m", "handler": 1, "message": "NODE/VALIDATOR: THE NODE OR VALIDATOR IS DOWN FOR MORE THAN 1 MINUTE", "name": "NODE/VALIDATOR: Process down", "noDataState": "alerting", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "transparent", "value": 0.9 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 1, "w": 4, "x": 20, "y": 29 }, "id": 44, "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "up{job=\"lighthouse\"}", "hide": false, "interval": "", "intervalFactor": 1, "legendFormat": "beacon node", "refId": "A" }, { "expr": "up{job=\"lighthouse_validator\"}", "interval": "", "legendFormat": "validator", "refId": "B" } ], "thresholds": [ { "colorMode": "critical", "op": "lt", "value": 0.9, "visible": true } ], "title": "Alert: Process down", "type": "timeseries" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 0 ], "type": "gt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "10s", "now" ] }, "reducer": { "params": [], "type": "max" }, "type": "query" } ], "executionErrorState": "alerting", "for": "0m", "frequency": "1m", "handler": 1, "message": "VALIDATOR ALERT: YOUR VALIDATOR HAS BEEN SLASHED", "name": "VALIDATOR: Validator has been slashed", "noDataState": "ok", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "transparent", "value": null }, { "color": "red", "value": 0 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 1, "w": 4, "x": 16, "y": 30 }, "id": 50, "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "validator_monitor_slashed", "interval": "", "legendFormat": "{{validator}}", "refId": "A" } ], "title": "Alert: Validator has been slashed", "type": "timeseries" }, { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 0.01 ], "type": "lt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "10s", "now" ] }, "reducer": { "params": [], "type": "last" }, "type": "query" } ], "executionErrorState": "alerting", "for": "0m", "frequency": "1m", "handler": 1, "message": "Validator loosing money !", "name": "Validator loosing money Alert", "noDataState": "keep_state", "notifications": [] }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "ETH", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line+area" } }, "decimals": 4, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "transparent", "value": 0.01 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "0x8926562b" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "0xa92dcbcf" }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "0xafafbadf" }, "properties": [ { "id": "color", "value": { "fixedColor": "rgb(189, 181, 0)", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "0xb96135dd" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 1, "w": 4, "x": 20, "y": 30 }, "id": 2, "options": { "legend": { "calcs": [], "displayMode": "hidden", "placement": "bottom" }, "tooltip": { "mode": "single" } }, "pluginVersion": "8.0.6", "targets": [ { "expr": "rate(validator_monitor_balance_gwei[840s])", "interval": "", "legendFormat": "", "refId": "A" } ], "title": "Alert : Validator loosing money", "type": "timeseries" } ], "refresh": "10s", "schemaVersion": 33, "style": "dark", "tags": [], "templating": { "list": [ { "hide": 2, "name": "node_job", "query": "${VAR_NODE_JOB}", "skipUrlSync": false, "type": "constant", "current": { "value": "${VAR_NODE_JOB}", "text": "${VAR_NODE_JOB}", "selected": false }, "options": [ { "value": "${VAR_NODE_JOB}", "text": "${VAR_NODE_JOB}", "selected": false } ] }, { "hide": 2, "name": "validator_job", "query": "${VAR_VALIDATOR_JOB}", "skipUrlSync": false, "type": "constant", "current": { "value": "${VAR_VALIDATOR_JOB}", "text": "${VAR_VALIDATOR_JOB}", "selected": false }, "options": [ { "value": "${VAR_VALIDATOR_JOB}", "text": "${VAR_VALIDATOR_JOB}", "selected": false } ] }, { "allValue": "ETH", "current": {}, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "label_values(crypto_currency, pair)", "hide": 0, "includeAll": true, "label": "Currency converter", "multi": false, "name": "fiat", "options": [], "query": { "query": "label_values(crypto_currency, pair)", "refId": "Prometheus-fiat-Variable-Query" }, "refresh": 1, "regex": "eth([a-z]*)", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-7d", "to": "now" }, "timepicker": { "refresh_intervals": [ "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ] }, "timezone": "", "title": "ETH staking dashboard lot keys for lighthouse", "uid": "t2yHaa3Zz3lot", "version": 187, "weekStart": "" }