stats
Nebula can provide stats for Graphite or Prometheus. Options
passed / required will depend on stats.type
.
stats:
type: graphite
prefix: nebula
protocol: tcp
host: 127.0.0.1:9999
interval: 10s
type: prometheus
listen: 127.0.0.1:8080
path: /metrics
namespace: prometheusns
subsystem: nebula
interval: 10s
message_metrics: false
lighthouse_metrics: false
stats.type
Choose your stats provider. Options are graphite
and prometheus
. If unset, nebula will not report statistics to a
provider. This will determine other available options. A difference between the two is that Prometheus is a polling
based system, whereas Graphite is push based.
stats.interval
RequiredThe speed at which Graphite will push stats updates to the consumer + the speed at which some internal services will push updates to the main stats service.
A golang Duration. Recommended to be set to 60s
.
stats.message_metrics
Default: FalseEnables counter metrics for meta packets, e.g.: messages.tx.handshake
. NOTE: message.{tx,rx}.recv_error
is always
emitted.
stats.lighthouse_metrics
Default: FalseEnables detailed counter metrics for lighthouse packets, e.g.: lighthouse.rx.HostQuery
.
Graphite options
Config options if stats.type
is chosen to be graphite
stats.prefix
Default: nebulaThe prefix for Graphite metrics that nebula will prepend: https://graphite.readthedocs.io/en/latest/feeding-carbon.html#step-1-plan-a-naming-hierarchy
stats.protocol
Default: tcpChoose which protocol is used for passing stats to Graphite. The options are tcp
and udp
.
stats.host
RequiredIP address of the host that Graphite should push stats updates to.
Prometheus options
Config options if stats.type
is chosen to be prometheus
stats.listen
RequiredInterface for the Prometheus stats server to listen on. TCP address of 0.0.0.0:8080
or :8080
or
192.168.14.12:1234
, for instance.
stats.path
RequiredPath to serve stats to, normally /metrics
.
stats.namespace
The prefix that nebula should add to stats to add context
within Prometheus. It's recommended to set this to nebula
by default. Must be in the shape:
https://prometheus.io/docs/concepts/data_model/
stats.subsystem
Describe which sort of subsystem these stats fall into: https://prometheus.io/docs/practices/instrumentation/#subsystems. Must be in the shape: https://prometheus.io/docs/concepts/data_model/