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
This commit is contained in:
NagyZoltanPeter 2024-09-24 12:47:52 +02:00 committed by GitHub
parent e492c590e9
commit 9b445ac49f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 5 deletions

View File

@ -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"

View File

@ -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)