Menu
Open source

prometheus.exporter.statsd

The prometheus.exporter.statsd component embeds statsd_exporter for collecting StatsD-style metrics and exporting them as Prometheus metrics.

Usage

river
prometheus.exporter.statsd "LABEL" {
}

Arguments

The following arguments can be used to configure the exporter’s behavior. All arguments are optional. Omitted fields take their default values.

NameTypeDescriptionDefaultRequired
listen_udpstringThe UDP address on which to receive statsd metric lines. Use "" to disable it.:9125no
listen_tcpstringThe TCP address on which to receive statsd metric lines. Use "" to disable it.:9125no
listen_unixgramstringThe Unixgram socket path to receive statsd metric lines in datagram. Use "" to disable it.no
unix_socket_modestringThe permission mode of the unix socket.755no
mapping_config_pathstringThe path to a YAML mapping file used to translate specific dot-separated StatsD metrics into labeled Prometheus metrics.no
read_bufferintSize (in bytes) of the operating system’s transmit read buffer associated with the UDP or Unixgram connection.no
cache_sizeintMaximum size of your metric mapping cache. Relies on least recently used replacement policy if max size is reached.1000no
cache_typestringMetric mapping cache type. Valid options are “lru” and “random”.lruno
event_queue_sizeintSize of internal queue for processing events.10000no
event_flush_thresholdintNumber of events to hold in queue before flushing.1000no
event_flush_intervalstringMaximum time between event queue flushes.200msno
parse_dogstatsd_tagsstringParse DogStatsd style tags.trueno
parse_influxdb_tagsstringParse InfluxDB style tags.trueno
parse_librato_tagsstringParse Librato style tags.trueno
parse_signalfx_tagsstringParse SignalFX style tags.trueno
relay_addrstringRelay address configuration (UDP endpoint in the format ‘host:port’).no
relay_packet_lengthintMaximum relay output packet length to avoid fragmentation.1400no

At least one of listen_udp, listen_tcp, or listen_unixgram should be enabled. For details on how to use the mapping config file, please check the official statsd_exporter docs. Please make sure the kernel parameter net.core.rmem_max is set to a value greater than the value specified in read_buffer.

Blocks

The prometheus.exporter.statsd component does not support any blocks, and is configured fully through arguments.

Exported fields

The following fields are exported and can be referenced by other components.

NameTypeDescription
targetslist(map(string))The targets that can be used to collect exporter metrics.

For example, the targets can either be passed to a discovery.relabel component to rewrite the targets’ label sets or to a prometheus.scrape component that collects the exposed metrics.

The exported targets use the configured in-memory traffic address specified by the run command.

Component health

prometheus.exporter.statsd is only reported as unhealthy if given an invalid configuration. In those cases, exported fields retain their last healthy values.

Debug information

prometheus.exporter.statsd does not expose any component-specific debug information.

Debug metrics

prometheus.exporter.statsd does not expose any component-specific debug metrics.

Example

This example uses a prometheus.scrape component to collect metrics from prometheus.exporter.statsd:

river
prometheus.exporter.statsd "example" {
  listen_udp            = ""
  listen_tcp            = ":9125"
  listen_unixgram       = ""
  unix_socket_mode      = "755"
  mapping_config_path   = "mapTest.yaml"
  read_buffer           = 1
  cache_size            = 1000
  cache_type            = "lru"
  event_queue_size      = 10000
  event_flush_threshold = 1000
  event_flush_interval  = "200ms"
  parse_dogstatsd_tags  = true
  parse_influxdb_tags   = true
  parse_librato_tags    = true
  parse_signalfx_tags   = true
}

// Configure a prometheus.scrape component to collect statsd metrics.
prometheus.scrape "demo" {
  targets    = prometheus.exporter.statsd.example.targets
  forward_to = [prometheus.remote_write.demo.receiver]
}

prometheus.remote_write "demo" {
  endpoint {
    url = PROMETHEUS_REMOTE_WRITE_URL

    basic_auth {
      username = USERNAME
      password = PASSWORD
    }
  }
}

Replace the following:

  • PROMETHEUS_REMOTE_WRITE_URL: The URL of the Prometheus remote_write-compatible server to send metrics to.
  • USERNAME: The username to use for authentication to the remote_write API.
  • PASSWORD: The password to use for authentication to the remote_write API.

Compatible components

prometheus.exporter.statsd has exports that can be consumed by the following components:

Note

Connecting some components may not be sensible or components may require further configuration to make the connection work correctly. Refer to the linked documentation for more details.