From 941a3fe6a012f63698e065300b0a707005b1e7c9 Mon Sep 17 00:00:00 2001 From: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com> Date: Tue, 24 Sep 2024 12:47:52 +0200 Subject: [PATCH] fix: px protocol decode - do not treat missing response field as error (#3055) * Fix missing response field of PeerExchange RPC treated as error. * Fix PX metrics from gauge to counter for better dashboard stats --- waku/waku_peer_exchange/protocol.nim | 5 +++-- waku/waku_peer_exchange/rpc_codec.nim | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/waku/waku_peer_exchange/protocol.nim b/waku/waku_peer_exchange/protocol.nim index 0374e1277..0d00cfb0f 100644 --- a/waku/waku_peer_exchange/protocol.nim +++ b/waku/waku_peer_exchange/protocol.nim @@ -20,9 +20,10 @@ declarePublicGauge waku_px_peers_received_total, "number of ENRs received via peer exchange" declarePublicGauge waku_px_peers_received_unknown, "number of previously unknown ENRs received via peer exchange" -declarePublicGauge waku_px_peers_sent, "number of ENRs sent to peer exchange requesters" +declarePublicCounter waku_px_peers_sent, + "number of ENRs sent to peer exchange requesters" declarePublicGauge waku_px_peers_cached, "number of peer exchange peer ENRs cached" -declarePublicGauge waku_px_errors, "number of peer exchange errors", ["type"] +declarePublicCounter waku_px_errors, "number of peer exchange errors", ["type"] logScope: topics = "waku peer_exchange" diff --git a/waku/waku_peer_exchange/rpc_codec.nim b/waku/waku_peer_exchange/rpc_codec.nim index e5e982938..c0288ae39 100644 --- a/waku/waku_peer_exchange/rpc_codec.nim +++ b/waku/waku_peer_exchange/rpc_codec.nim @@ -103,8 +103,9 @@ proc decode*(T: type PeerExchangeRpc, buffer: seq[byte]): ProtobufResult[T] = var responseBuffer: seq[byte] if not ?pb.getField(2, responseBuffer): - return err(ProtobufError.missingRequiredField("response")) - - rpc.response = ?PeerExchangeResponse.decode(responseBuffer) + rpc.response = + PeerExchangeResponse(status_code: PeerExchangeResponseStatusCode.UNKNOWN) + else: + rpc.response = ?PeerExchangeResponse.decode(responseBuffer) ok(rpc)