Menu

Caution

Grafana Alloy is the new name for our distribution of the OTel collector. Grafana Agent has been deprecated and is in Long-Term Support (LTS) through October 31, 2025. Grafana Agent will reach an End-of-Life (EOL) on November 1, 2025. Read more about why we recommend migrating to Grafana Alloy.

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

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 will 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.