diff --git a/whisperv6/metrics.go b/whisperv6/metrics.go index b0e899d..c52f4bb 100644 --- a/whisperv6/metrics.go +++ b/whisperv6/metrics.go @@ -13,4 +13,6 @@ var ( envelopeErrLowPowCounter = metrics.NewRegisteredCounter("whisper/envelopeErrLowPow", nil) envelopeErrNoBloomMatchCounter = metrics.NewRegisteredCounter("whisper/envelopeErrNoBloomMatch", nil) envelopeSizeMeter = metrics.NewRegisteredMeter("whisper/envelopeSize", nil) + peerBundleRatio = metrics.NewRegisteredGaugeFloat64("whisper/bundleRatio", nil) + peerBlacklistMeter = metrics.NewRegisteredMeter("whisper/blacklistMeter", nil) ) diff --git a/whisperv6/peer.go b/whisperv6/peer.go index 16c98cb..d7b457d 100644 --- a/whisperv6/peer.go +++ b/whisperv6/peer.go @@ -233,7 +233,9 @@ func (peer *Peer) broadcast() error { } // bundle will be reduce according to a rate limiter // if rate limiter is nil - this operation is noop + original := len(bundle) bundle = peer.reduceBundle(bundle) + peerBundleRatio.Update(float64(len(bundle)) / float64(original)) if len(bundle) > 0 { // transmit the batch of envelopes if err := p2p.Send(peer.ws, messagesCode, bundle); err != nil { diff --git a/whisperv6/whisper.go b/whisperv6/whisper.go index 28727dd..88660a9 100644 --- a/whisperv6/whisper.go +++ b/whisperv6/whisper.go @@ -937,6 +937,7 @@ func (whisper *Whisper) runMessageLoop(p *Peer, rw p2p.MsgReadWriter) error { packet.Discard() if blacklist { + peerBlacklistMeter.Mark(1) whisper.ratelimiter.Ingress.Remove(p.peer, 10*time.Minute) return fmt.Errorf("peer %v reached traffic limit capacity", p.peer.ID()) }