From dc16d61ec53c433d2975d34f20a127f43e0388af Mon Sep 17 00:00:00 2001 From: vid277 Date: Tue, 24 Jun 2025 11:36:55 -0700 Subject: [PATCH 1/2] feature: add dkg metrics dashboard --- crates/node/src/handlers/dkg/handler.rs | 6 + crates/node/src/handlers/dkg/key_creation.rs | 6 +- crates/types/src/macros.rs | 21 ++ grafana/provisioning/dashboards/dashboard.yml | 13 +- .../dashboards/dkg_dashboards/dkg_routes.json | 335 ++++++++++++++++++ 5 files changed, 378 insertions(+), 3 deletions(-) create mode 100644 grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json diff --git a/crates/node/src/handlers/dkg/handler.rs b/crates/node/src/handlers/dkg/handler.rs index 2cb5e689..c63850a0 100644 --- a/crates/node/src/handlers/dkg/handler.rs +++ b/crates/node/src/handlers/dkg/handler.rs @@ -5,6 +5,7 @@ use types::network::network_event::{DirectMessage, NetworkEvent}; use types::network::network_protocol::Network; use types::proto::ProtoDecode; use types::proto::p2p_proto::{self, gossipsub_message::Message}; +use types::{dkg_round1_package_metrics, dkg_round2_package_metrics, dkg_start_metrics}; #[async_trait::async_trait] impl Handler for DkgState { @@ -27,9 +28,13 @@ impl Handler for DkgState { if let Some(Message::Dkg(inner_dkg)) = gossip_msg.message { match inner_dkg.message { Some(DkgInner::StartDkg(_)) => { + dkg_start_metrics!(node.network_handle.peer_name(&source_peer)); self.handle_dkg_start(node)?; } Some(DkgInner::Round1Package(_)) => { + dkg_round1_package_metrics!( + node.network_handle.peer_name(&source_peer) + ); self.handle_round1_payload(node, source_peer, inner_dkg)?; } _ => {} @@ -39,6 +44,7 @@ impl Handler for DkgState { } } NetworkEvent::MessageEvent((peer, DirectMessage::Round2Package(package))) => { + dkg_round2_package_metrics!(node.network_handle.peer_name(&peer)); self.handle_round2_payload(node, peer, package).await?; } _ => {} diff --git a/crates/node/src/handlers/dkg/key_creation.rs b/crates/node/src/handlers/dkg/key_creation.rs index 6bbdc8ef..6a04eb0b 100644 --- a/crates/node/src/handlers/dkg/key_creation.rs +++ b/crates/node/src/handlers/dkg/key_creation.rs @@ -216,6 +216,10 @@ impl DkgState { .map(|peer_id| node.network_handle.peer_name(peer_id)) .collect(); tracing::info!("Still waiting for round1 packages from: {:?}", waiting_for); + + for missing_peer in &waiting_for { + tracing::debug!("Missing round1 package from peer: {}", missing_peer); + } } if !self.dkg_started @@ -360,7 +364,7 @@ impl DkgState { .collect(); if self.round2_peer_packages.len() + 1 != max_signers { - tracing::info!("Still waiting for round1 packages from: {:?}", waiting_for); + tracing::info!("Still waiting for round2 packages from: {:?}", waiting_for); } if let Some(r2_secret_package) = self.r2_secret_package.as_ref() { diff --git a/crates/types/src/macros.rs b/crates/types/src/macros.rs index 7f6198c5..86fd303e 100644 --- a/crates/types/src/macros.rs +++ b/crates/types/src/macros.rs @@ -33,3 +33,24 @@ macro_rules! current_round_metrics { metrics::gauge!("current_round", "node_id" => $node_id.to_string()).set(f64::from($round)); }}; } + +#[macro_export] +macro_rules! dkg_start_metrics { + ($peer_from:expr) => {{ + metrics::counter!("dkg_start_dkg_initiated", "peer_from" => $peer_from.to_string()).increment(1); + }}; +} + +#[macro_export] +macro_rules! dkg_round1_package_metrics { + ($peer_from:expr) => {{ + metrics::counter!("dkg_round1_packages_received", "peer_from" => $peer_from.to_string()).increment(1); + }}; +} + +#[macro_export] +macro_rules! dkg_round2_package_metrics { + ($peer_from:expr) => {{ + metrics::counter!("dkg_round2_packages_received", "peer_from" => $peer_from.to_string()).increment(1); + }}; +} diff --git a/grafana/provisioning/dashboards/dashboard.yml b/grafana/provisioning/dashboards/dashboard.yml index 237ff99b..3f0cc2fa 100644 --- a/grafana/provisioning/dashboards/dashboard.yml +++ b/grafana/provisioning/dashboards/dashboard.yml @@ -6,7 +6,7 @@ providers: type: file disableDeletion: false editable: true - updateIntervalSeconds: 30 + updateIntervalSeconds: 5 options: path: /etc/grafana/provisioning/dashboards/grpc_dashboards/ - name: "Broadcast Dashboards" @@ -15,6 +15,15 @@ providers: type: file disableDeletion: false editable: true - updateIntervalSeconds: 30 + updateIntervalSeconds: 5 options: path: /etc/grafana/provisioning/dashboards/broadcast_dashboards/ + - name: "DKG Dashboards" + orgId: 1 + folder: "" + type: file + disableDeletion: false + editable: true + updateIntervalSeconds: 5 + options: + path: /etc/grafana/provisioning/dashboards/dkg_dashboards/ diff --git a/grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json b/grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json new file mode 100644 index 00000000..29a2192b --- /dev/null +++ b/grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json @@ -0,0 +1,335 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 3, + "links": [], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "sum by(peer_from) (dkg_start_dkg_initiated)", + "fullMetaSearch": false, + "includeNullMetadata": true, + "legendFormat": "{{peer_from}} - Total DKG Starts", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Total DKG Starts by Peer", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 8 + }, + "id": 5, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "expr": "sum by (peer_from) (dkg_round1_packages_received)", + "legendFormat": "{{peer_from}} - Total Round1", + "refId": "A" + } + ], + "title": "Total Round1 Packages Received by Peer", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "vis": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 8 + }, + "id": 6, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "expr": "sum by (peer_from) (dkg_round2_packages_received)", + "legendFormat": "{{peer_from}} - Total Round2", + "refId": "A" + } + ], + "title": "Total Round2 Packages Received by Peer", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "5s", + "schemaVersion": 41, + "tags": ["dkg", "threshold", "cryptography"], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "DKG Metrics Dashboard", + "uid": "dkg-metrics-dashboard", + "version": 2 +} From 8aef0ea4d1ff30613379c82b835fbb90834ebceb Mon Sep 17 00:00:00 2001 From: vid277 Date: Tue, 24 Jun 2025 12:28:28 -0700 Subject: [PATCH 2/2] feature: add sending stats for dkg --- crates/node/src/handlers/dkg/handler.rs | 8 +- crates/types/src/macros.rs | 16 +- .../dashboards/dkg_dashboards/dkg_routes.json | 1156 ++++++++++++++++- 3 files changed, 1158 insertions(+), 22 deletions(-) diff --git a/crates/node/src/handlers/dkg/handler.rs b/crates/node/src/handlers/dkg/handler.rs index c63850a0..72b92649 100644 --- a/crates/node/src/handlers/dkg/handler.rs +++ b/crates/node/src/handlers/dkg/handler.rs @@ -33,7 +33,8 @@ impl Handler for DkgState { } Some(DkgInner::Round1Package(_)) => { dkg_round1_package_metrics!( - node.network_handle.peer_name(&source_peer) + node.network_handle.peer_name(&source_peer), + node.network_handle.peer_name(&node.peer_id) ); self.handle_round1_payload(node, source_peer, inner_dkg)?; } @@ -44,7 +45,10 @@ impl Handler for DkgState { } } NetworkEvent::MessageEvent((peer, DirectMessage::Round2Package(package))) => { - dkg_round2_package_metrics!(node.network_handle.peer_name(&peer)); + dkg_round2_package_metrics!( + node.network_handle.peer_name(&peer), + node.network_handle.peer_name(&node.peer_id) + ); self.handle_round2_payload(node, peer, package).await?; } _ => {} diff --git a/crates/types/src/macros.rs b/crates/types/src/macros.rs index 86fd303e..048dee17 100644 --- a/crates/types/src/macros.rs +++ b/crates/types/src/macros.rs @@ -43,14 +43,22 @@ macro_rules! dkg_start_metrics { #[macro_export] macro_rules! dkg_round1_package_metrics { - ($peer_from:expr) => {{ - metrics::counter!("dkg_round1_packages_received", "peer_from" => $peer_from.to_string()).increment(1); + ($peer_from:expr, $peer_to:expr) => {{ + metrics::counter!("dkg_round1_packages_received", + "source" => $peer_from.to_string(), + "target" => $peer_to.to_string() + ) + .increment(1); }}; } #[macro_export] macro_rules! dkg_round2_package_metrics { - ($peer_from:expr) => {{ - metrics::counter!("dkg_round2_packages_received", "peer_from" => $peer_from.to_string()).increment(1); + ($peer_from:expr, $peer_to:expr) => {{ + metrics::counter!("dkg_round2_packages_received", + "source" => $peer_from.to_string(), + "target" => $peer_to.to_string() + ) + .increment(1); }}; } diff --git a/grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json b/grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json index 29a2192b..ef05dea8 100644 --- a/grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json +++ b/grafana/provisioning/dashboards/dkg_dashboards/dkg_routes.json @@ -21,6 +21,107 @@ "id": 3, "links": [], "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 23, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "refId": "A" + } + ], + "title": "New panel", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 8 + }, + "id": 21, + "panels": [], + "title": "Row title", + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -86,7 +187,7 @@ "h": 8, "w": 24, "x": 0, - "y": 0 + "y": 9 }, "id": 4, "options": { @@ -188,7 +289,7 @@ "h": 8, "w": 12, "x": 0, - "y": 8 + "y": 17 }, "id": 5, "options": { @@ -211,8 +312,10 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "expr": "sum by (peer_from) (dkg_round1_packages_received)", - "legendFormat": "{{peer_from}} - Total Round1", + "editorMode": "builder", + "expr": "sum by (source) (dkg_round1_packages_received)", + "legendFormat": "{{source}} - Total Round1", + "range": true, "refId": "A" } ], @@ -284,7 +387,7 @@ "h": 8, "w": 12, "x": 12, - "y": 8 + "y": 17 }, "id": 6, "options": { @@ -307,21 +410,1042 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "expr": "sum by (peer_from) (dkg_round2_packages_received)", - "legendFormat": "{{peer_from}} - Total Round2", + "expr": "sum by (source) (dkg_round2_packages_received)", + "legendFormat": "{{source}} - Total Round2", "refId": "A" } ], "title": "Total Round2 Packages Received by Peer", "type": "timeseries" - } - ], - "preload": false, - "refresh": "5s", - "schemaVersion": 41, - "tags": ["dkg", "threshold", "cryptography"], - "templating": { - "list": [] + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 25 + }, + "id": 20, + "panels": [], + "title": "Round 1 Node Sent Stats", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 16, + "y": 26 + }, + "id": 18, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round1_packages_received{source=\"node_5\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 5 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 0, + "y": 26 + }, + "id": 14, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round1_packages_received{source=\"node_1\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 1 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 4, + "y": 26 + }, + "id": 15, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round1_packages_received{source=\"node_2\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 2 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 8, + "y": 26 + }, + "id": 17, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round1_packages_received{source=\"node_3\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 3 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 26 + }, + "id": 16, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round1_packages_received{source=\"node_4\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 4 Sent Packages", + "type": "barchart" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 32 + }, + "id": 22, + "panels": [], + "title": "Round 2 Node Sent Stats", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 0, + "y": 33 + }, + "id": 24, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round2_packages_received{source=\"node_1\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 1 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 4, + "y": 33 + }, + "id": 25, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round2_packages_received{source=\"node_2\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 2 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 8, + "y": 33 + }, + "id": 26, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round2_packages_received{source=\"node_3\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 3 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 33 + }, + "id": 27, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round1_packages_received{source=\"node_4\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 4 Sent Packages", + "type": "barchart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "fillOpacity": 80, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineWidth": 1, + "scaleDistribution": { + "type": "linear" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 16, + "y": 33 + }, + "id": 29, + "interval": "5", + "options": { + "barRadius": 0, + "barWidth": 0.97, + "fullHighlight": false, + "groupWidth": 0.7, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + }, + "xTickLabelRotation": 0, + "xTickLabelSpacing": 0 + }, + "pluginVersion": "12.0.2", + "targets": [ + { + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "dkg_round2_packages_received{source=\"node_5\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "{{instance}}", + "range": false, + "refId": "A", + "useBackend": false + } + ], + "title": "Node 5 Sent Packages", + "type": "barchart" + } + ], + "preload": false, + "refresh": "5s", + "schemaVersion": 41, + "tags": ["dkg", "threshold", "cryptography"], + "templating": { + "list": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "definition": "label_values(dkg_round1_packages_received, source)", + "hide": 2, + "includeAll": false, + "label": "Source Node", + "name": "source", + "query": "label_values(dkg_round1_packages_received, source)", + "refresh": 1, + "type": "query" + } + ] }, "time": { "from": "now-1h", @@ -331,5 +1455,5 @@ "timezone": "", "title": "DKG Metrics Dashboard", "uid": "dkg-metrics-dashboard", - "version": 2 + "version": 1 }