status-go/metrics
Pedro Pombeiro 6cdea4ef97
Update codebase to leverage Whisper v6 (#703)
* Update project to use Whisper v6. Part of #638

* Revert "Add patch to downgrade usage of Whisper v6 to v5 in some geth 1.8.1 vendor files. Part of #665" - this reverts commit 6aefb4c8fd02dbcfffac6b69e8bb22b13ef86b6b.

* Enable light mode on Whisper v6 for non-mail servers. Part of #638

* Fix race condition in whisperv6/peer.go. Part of #665 (PR already accepted upstream for 1.8.2)

* Update bootnode addresses in staticnodes.json. Part of #638

* Add `shh.lightclient` flag and tests for bloom filter setting logic. Part of #638

* Move MakeTestNodeConfig to utils. Part of #638

* Reduce PoW in `whisper_jail_test.go` to fix flaky test. Part of #638
2018-03-02 10:25:30 +01:00
..
node add node_peers Prometheus metric 2018-02-13 15:18:29 +01:00
whisper Update codebase to leverage Whisper v6 (#703) 2018-03-02 10:25:30 +01:00
README.md Add support for metrics (#558) 2018-01-30 12:51:48 +01:00
metrics_expvar.go Add support for metrics (#558) 2018-01-30 12:51:48 +01:00
metrics_noop.go Add support for metrics (#558) 2018-01-30 12:51:48 +01:00
metrics_prometheus.go Add support for metrics (#558) 2018-01-30 12:51:48 +01:00

README.md

metrics

Currently, we aim to provide three options to two ways of collecting metrics:

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 are peer or p2p), is_new, peer,
  • envelope_volume -- incremental sum of envelopes volume with labels: topic, source (values are peer or p2p), 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.