SPIRE Telemetry Configuration

Configure SPIRE Agent and Server metrics output to supported sinks

If telemetry is desired, it may be configured by using a dedicated telemetry { ... } section. The following metrics collectors are currently supported:

  • Prometheus
  • Statsd
  • DogStatsd
  • M3
  • In-Memory

You may use all, some, or none of the collectors. The following collectors support multiple declarations in the event that you want to send metrics to more than one collector:

  • Statsd
  • DogStatsd
  • M3

Telemetry configuration syntax

Configuration Type Description Default
InMem InMem In-memory configuration running
Prometheus Prometheus Prometheus configuration
DogStatsd []DogStatsd List of DogStatsd configurations
Statsd []Statsd List of Statsd configurations
M3 []M3 List of M3 configurations
MetricPrefix string Prefix to add to all emitted metrics spire_server/spire_agent
EnableHostnameLabel bool Enable adding hostname to labels true
AllowedPrefixes []string A list of metric prefixes to allow, with ‘.’ as the separator
AllowedPrefixes []string A list of metric prefixes to allow, with ‘.’ as the separator
BlockedPrefixes []string A list of metric prefixes to block, with ‘.’ as the separator
AllowedLabels []string A list of metric labels to allow, with ‘.’ as the separator
BlockedLabels []string A list of metric labels to block, with ‘.’ as the separator

Prometheus

Configuration Type Description
host string Prometheus server host
port int Prometheus server port

DogStatsd

Configuration Type Description
address string DogStatsd address

Statsd

Configuration Type Description
address string Statsd address

M3

Configuration Type Description
address string M3 address
env string M3 environment, e.g. production, staging

Here is a sample configuration:

telemetry {
        Prometheus {
                port = 9988
        }

        DogStatsd = [
            { address = "localhost:8125" },
        ]

        Statsd = [
            { address = "localhost:1337" },
            { address = "collector.example.org:8125" },
        ]

        M3 = [
            { address = "localhost:9000" env = "prod" },
        ]

        InMem {}

        AllowedLabels = []
        BlockedLabels = []
        AllowedPrefixes = []
        BlockedPrefixes = []
}

Supported metrics

See the Telemetry document for a list of all the supported metrics.