89d89681a3
It adds support for metrics (expvar and Prometheus) along with docker-compose files to run a Whisper test cluster. |
||
---|---|---|
.. | ||
node | ||
whisper | ||
README.md | ||
metrics_expvar.go | ||
metrics_noop.go | ||
metrics_prometheus.go |
README.md
metrics
Currently, we aim to provide three options to two ways of collecting metrics:
- using
expvar
package for mobile device metrics collection using statusmonitor, - using Prometheus for nodes running locally or on servers.
Enable metrics
Metrics can be enabled with -stats
flag when running it from command line. -stats.addr
can be used to change metrics server address and port.
TBD: how to enable them when running status-go
as a library?
Build tags
To select how metrics are collected, status-go
must be compiled with proper build tags.
To enable expvar
metrics, compile it with metrics
build tag:
make statusgo BUILD_TAGS='metrics'
To enable Prometheus metrics, compile it with metrics
and prometheus
tags:
make statusgo BUILD_TAGS='metrics prometheus'
If no metrics
tag is provided, metrics won't be collected or will be printed as DEBUG
logs depending on implementation.
Current metrics
Currently, we have defined the following metrics.
Whisper
expvar
envelope_counter
-- number of envelopes,envelope_new_counter
-- number of new envelopes (arrived for the first time, not cached before),envelope_topic_counter
-- a map with envelopes counted per topic,envelope_peer_counter
-- a map with envelopes counted by peer,envelope_volume
-- volume of all envelopes (sum of each envelope's size).
Prometheus
envelope_counter
-- count envelopes with labels:topic
,source
(values arepeer
orp2p
),is_new
,peer
,envelope_volume
-- incremental sum of envelopes volume with labels:topic
,source
(values arepeer
orp2p
),is_new
,peer
.
Node and peers
expvar
node_info
-- ID of the current node,node_peers
-- marshaled list of all peers remote addresses.
Prometheus
Not available.