From bde065aa22a11924feae10cf7b49485a85a6126e Mon Sep 17 00:00:00 2001 From: Ralph Pichler Date: Mon, 7 Jun 2021 11:42:20 +0200 Subject: [PATCH] feat: track errors --- pkg/settlement/pseudosettle/metrics.go | 22 +++++++++++++++++---- pkg/settlement/pseudosettle/pseudosettle.go | 7 +++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/pkg/settlement/pseudosettle/metrics.go b/pkg/settlement/pseudosettle/metrics.go index b272c9a92f1..b3530500be0 100644 --- a/pkg/settlement/pseudosettle/metrics.go +++ b/pkg/settlement/pseudosettle/metrics.go @@ -13,10 +13,12 @@ type metrics struct { // all metrics fields must be exported // to be able to return them by Metrics() // using reflection - TotalReceivedPseudoSettlements prometheus.Counter - TotalSentPseudoSettlements prometheus.Counter - ReceivedPseudoSettlements prometheus.Counter - SentPseudoSettlements prometheus.Counter + TotalReceivedPseudoSettlements prometheus.Counter + TotalSentPseudoSettlements prometheus.Counter + ReceivedPseudoSettlements prometheus.Counter + SentPseudoSettlements prometheus.Counter + ReceivedPseudoSettlementsErrors prometheus.Counter + SentPseudoSettlementsErrors prometheus.Counter } func newMetrics() metrics { @@ -47,6 +49,18 @@ func newMetrics() metrics { Name: "sent_pseudosettlements", Help: "Number of time settlements sent to peers", }), + ReceivedPseudoSettlementsErrors: prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: m.Namespace, + Subsystem: subsystem, + Name: "received_pseudosettlements_errors", + Help: "Errors of time settlements received from peers", + }), + SentPseudoSettlementsErrors: prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: m.Namespace, + Subsystem: subsystem, + Name: "sent_pseudosettlements_errorss", + Help: "Errors of time settlements sent to peers", + }), } } diff --git a/pkg/settlement/pseudosettle/pseudosettle.go b/pkg/settlement/pseudosettle/pseudosettle.go index d1903baac2e..1eabdf75c49 100644 --- a/pkg/settlement/pseudosettle/pseudosettle.go +++ b/pkg/settlement/pseudosettle/pseudosettle.go @@ -163,6 +163,7 @@ func (s *Service) handler(ctx context.Context, p p2p.Peer, stream p2p.Stream) (e defer func() { if err != nil { _ = stream.Reset() + s.metrics.ReceivedPseudoSettlementsErrors.Inc() } else { go stream.FullClose() } @@ -241,6 +242,12 @@ func (s *Service) Pay(ctx context.Context, peer swarm.Address, amount *big.Int, var err error + defer func() { + if err != nil { + s.metrics.ReceivedPseudoSettlementsErrors.Inc() + } + }() + var lastTime lastPayment err = s.store.Get(totalKey(peer, SettlementSentPrefix), &lastTime) if err != nil {