From c9ddfbf290b80a63e2084bf301b4fae5af8bb1cb Mon Sep 17 00:00:00 2001 From: Rafael Sampaio <5679073+r4f4ss@users.noreply.github.com> Date: Fri, 18 Oct 2024 00:19:22 -0300 Subject: [PATCH] content validation metrics --- p2p/discover/portal_protocol.go | 9 +++++++++ p2p/discover/portal_protocol_metrics.go | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/p2p/discover/portal_protocol.go b/p2p/discover/portal_protocol.go index 0b6136611d..8cb95ec77e 100644 --- a/p2p/discover/portal_protocol.go +++ b/p2p/discover/portal_protocol.go @@ -1410,12 +1410,18 @@ func (p *PortalProtocol) handleOffer(id enode.ID, addr *net.UDPAddr, request *po func (p *PortalProtocol) handleOfferedContents(id enode.ID, keys [][]byte, payload []byte) error { contents, err := decodeContents(payload) if err != nil { + if metrics.Enabled { + p.portalMetrics.contentInvalidated.Inc(1) + } return err } keyLen := len(keys) contentLen := len(contents) if keyLen != contentLen { + if metrics.Enabled { + p.portalMetrics.contentInvalidated.Inc(1) + } return fmt.Errorf("content keys len %d doesn't match content values len %d", keyLen, contentLen) } @@ -1427,6 +1433,9 @@ func (p *PortalProtocol) handleOfferedContents(id enode.ID, keys [][]byte, paylo p.contentQueue <- contentElement + if metrics.Enabled { + p.portalMetrics.contentValidated.Inc(1) + } return nil } diff --git a/p2p/discover/portal_protocol_metrics.go b/p2p/discover/portal_protocol_metrics.go index 1fc2d13bf1..86c02663a2 100644 --- a/p2p/discover/portal_protocol_metrics.go +++ b/p2p/discover/portal_protocol_metrics.go @@ -30,6 +30,9 @@ type portalMetrics struct { utpOutFailTx metrics.Counter utpOutFailShutdown metrics.Counter utpOutSuccess metrics.Counter + + contentValidated metrics.Counter + contentInvalidated metrics.Counter } func newPortalMetrics(protocolName string) *portalMetrics { @@ -58,5 +61,7 @@ func newPortalMetrics(protocolName string) *portalMetrics { utpOutFailTx: metrics.NewRegisteredCounter("portal/"+protocolName+"/utp/outbound/fail_tx", nil), utpOutFailShutdown: metrics.NewRegisteredCounter("portal/"+protocolName+"/utp/outbound/fail_shutdown", nil), utpOutSuccess: metrics.NewRegisteredCounter("portal/"+protocolName+"/utp/outbound/success", nil), + contentValidated: metrics.NewRegisteredCounter("portal/"+protocolName+"/content/validated", nil), + contentInvalidated: metrics.NewRegisteredCounter("portal/"+protocolName+"/content/invalidated", nil), } }