diff --git a/grafana/peers.json b/grafana/peers.json index 28a8232d..58950726 100644 --- a/grafana/peers.json +++ b/grafana/peers.json @@ -8,16 +8,24 @@ "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, "type": "dashboard" } ] }, "editable": true, + "fiscalYearStartMonth": 0, "gnetId": null, "graphTooltip": 0, - "id": 7, - "iteration": 1632966001778, + "id": 3, + "iteration": 1635278363376, "links": [], + "liveNow": false, "panels": [ { "aliasColors": {}, @@ -25,15 +33,11 @@ "dashLength": 10, "dashes": false, "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 9, - "w": 12, + "w": 24, "x": 0, "y": 0 }, @@ -59,18 +63,11 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.7", + "pluginVersion": "8.2.0", "pointradius": 2, "points": false, "renderer": "flot", "repeat": "job", - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-mainnet", - "value": "zebrad-mainnet" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -134,125 +131,11 @@ "dashLength": 10, "dashes": false, "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 12, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": false, - "hideZero": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1632966001778, - "repeatPanelId": 2, - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-testnet", - "value": "zebrad-testnet" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum by (remote_version, seed) (label_replace(zcash_net_peers_initial{job=\"$job\",seed=~\"$seed\"}, \"seed\", \"$1\", \"seed\", \"(.*):1?8233\") * on(remote_ip) group_left(remote_version) (count_values by (remote_ip) (\"remote_version\", zcash_net_peers_version_connected{job=\"$job\"})))", - "instant": false, - "interval": "", - "legendFormat": "{{remote_version}} - {{seed}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Compatible Seed Peers - $job", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:65", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:66", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 8, - "w": 12, + "w": 24, "x": 0, "y": 9 }, @@ -275,18 +158,11 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.7", + "pluginVersion": "8.2.0", "pointradius": 2, "points": false, "renderer": "flot", "repeat": "job", - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-mainnet", - "value": "zebrad-mainnet" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -350,122 +226,11 @@ "dashLength": 10, "dashes": false, "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 8, - "w": 12, - "x": 12, - "y": 9 - }, - "hiddenSeries": false, - "id": 13, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1632966001778, - "repeatPanelId": 11, - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-testnet", - "value": "zebrad-testnet" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum by (remote_version, seed) (label_replace(zcash_net_peers_initial{job=\"$job\",seed=~\"$seed\"}, \"seed\", \"$1\", \"seed\", \"(.*):1?8233\") * on(remote_ip) group_left(remote_version) (count_values by (remote_ip) (\"remote_version\", zcash_net_peers_version_obsolete{job=\"$job\"})))", - "instant": false, - "interval": "", - "legendFormat": "{{remote_version}} - {{seed}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Obsolete Seed Peers - $job", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:65", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:66", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, + "w": 24, "x": 0, "y": 17 }, @@ -487,18 +252,11 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.7", + "pluginVersion": "8.2.0", "pointradius": 2, "points": false, "renderer": "flot", "repeat": "job", - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-mainnet", - "value": "zebrad-mainnet" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -561,120 +319,11 @@ "dashLength": 10, "dashes": false, "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 8, - "w": 12, - "x": 12, - "y": 17 - }, - "hiddenSeries": false, - "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1632966001778, - "repeatPanelId": 4, - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-testnet", - "value": "zebrad-testnet" - } - }, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum by (remote_version) (zcash_net_peers_connected{job=\"$job\"})", - "interval": "", - "legendFormat": "{{remote_version}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Compatible Peers - $job", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:65", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:66", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, + "w": 24, "x": 0, "y": 25 }, @@ -696,18 +345,11 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.7", + "pluginVersion": "8.2.0", "pointradius": 2, "points": false, "renderer": "flot", "repeat": "job", - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-mainnet", - "value": "zebrad-mainnet" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -770,20 +412,16 @@ "dashLength": 10, "dashes": false, "datasource": null, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 8, - "w": 12, - "x": 12, - "y": 25 + "w": 24, + "x": 0, + "y": 33 }, "hiddenSeries": false, - "id": 15, + "id": 13, "legend": { "avg": false, "current": false, @@ -800,19 +438,10 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.7", + "pluginVersion": "8.2.0", "pointradius": 2, "points": false, "renderer": "flot", - "repeatIteration": 1632966001778, - "repeatPanelId": 7, - "scopedVars": { - "job": { - "selected": false, - "text": "zebrad-testnet", - "value": "zebrad-testnet" - } - }, "seriesOverrides": [], "spaceLength": 10, "stack": false, @@ -820,9 +449,9 @@ "targets": [ { "exemplar": true, - "expr": "sum by (remote_version) (zcash_net_peers_obsolete{job=\"$job\"})", + "expr": "sum by (user_agent) (zcash_net_peers_connected{job=\"$job\"})", "interval": "", - "legendFormat": "{{remote_version}}", + "legendFormat": "{{user_agent}}", "refId": "A" } ], @@ -830,7 +459,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Obsolete Peers - $job", + "title": "Peer User Agents - $job", "tooltip": { "shared": true, "sort": 0, @@ -846,7 +475,6 @@ }, "yaxes": [ { - "$$hashKey": "object:65", "format": "short", "label": null, "logBase": 1, @@ -855,7 +483,6 @@ "show": true }, { - "$$hashKey": "object:66", "format": "short", "label": null, "logBase": 1, @@ -871,7 +498,7 @@ } ], "refresh": "5s", - "schemaVersion": 27, + "schemaVersion": 31, "style": "dark", "tags": [], "templating": { @@ -879,7 +506,7 @@ { "allValue": null, "current": { - "selected": false, + "selected": true, "text": [ "All" ], @@ -906,7 +533,6 @@ "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false @@ -914,7 +540,7 @@ { "allValue": ".+", "current": { - "selected": false, + "selected": true, "text": [ "All" ], @@ -941,7 +567,6 @@ "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false @@ -956,5 +581,5 @@ "timezone": "", "title": "peers", "uid": "S29TgUH7k", - "version": 31 + "version": 6 } \ No newline at end of file diff --git a/zebra-network/src/peer/handshake.rs b/zebra-network/src/peer/handshake.rs index fda4493a..190e4f5e 100644 --- a/zebra-network/src/peer/handshake.rs +++ b/zebra-network/src/peer/handshake.rs @@ -543,12 +543,13 @@ pub async fn negotiate_version( // Check that we got a Version and destructure its fields into the local scope. debug!(?remote_msg, "got message from remote peer"); - let (remote_nonce, remote_services, remote_version, remote_canonical_addr) = + let (remote_nonce, remote_services, remote_version, remote_canonical_addr, user_agent) = if let Message::Version { version, services, address_from, nonce, + user_agent, .. } = remote_msg { @@ -561,7 +562,7 @@ pub async fn negotiate_version( ); } - (nonce, services, version, canonical_addr) + (nonce, services, version, canonical_addr, user_agent) } else { Err(HandshakeError::UnexpectedMessage(Box::new(remote_msg)))? }; @@ -603,6 +604,7 @@ pub async fn negotiate_version( "remote_ip" => their_addr.to_string(), "remote_version" => remote_version.to_string(), "min_version" => min_version.to_string(), + "user_agent" => user_agent, ); // the value is the remote version of the most recent rejected handshake from each peer @@ -633,6 +635,7 @@ pub async fn negotiate_version( "remote_version" => remote_version.to_string(), "negotiated_version" => negotiated_version.to_string(), "min_version" => min_version.to_string(), + "user_agent" => user_agent, ); // the value is the remote version of the most recent connected handshake from each peer