status-go/metrics/whisper/tracer_expvar.go
Adam Babik 89d89681a3
Add support for metrics (#558)
It adds support for metrics (expvar and Prometheus) along with docker-compose files to run a Whisper test cluster.
2018-01-30 12:51:48 +01:00

33 lines
837 B
Go

// +build metrics,!prometheus
// Package whisper collects Whisper envelope metrics using expvar.
package whisper
import (
"expvar"
whisper "github.com/ethereum/go-ethereum/whisper/whisperv5"
)
var (
counter = expvar.NewInt("envelope_counter")
counterNew = expvar.NewInt("envelope_new_counter")
counterTopic = expvar.NewMap("envelope_topic_counter")
counterPeer = expvar.NewMap("envelope_peer_counter")
volume = expvar.NewInt("envelope_volume")
)
// EnvelopeTracer traces incoming envelopes.
type EnvelopeTracer struct{}
// Trace is called for every incoming envelope.
func (t *EnvelopeTracer) Trace(envelope *whisper.EnvelopeMeta) {
counter.Add(1)
if envelope.IsNew {
counterNew.Add(1)
}
counterTopic.Add(envelope.Topic.String(), 1)
counterPeer.Add(envelope.Peer, 1)
volume.Add(int64(envelope.Size))
}