Skip to content

StatsD ​

Skipprd binds listen_address and turns incoming StatsD lines into records. Use it to keep a copy of application metrics next to business data.

Before you begin ​

  • A free UDP bind address on the host (for example 0.0.0.0:8125).
  • Applications that can send StatsD to that address.

Configure ​

python
from skippr import Config, DataSourceStatsd, Pipeline

cfg = Config.discover()
src = cfg.data_source(
    "metrics",
    DataSourceStatsd(listen_address="0.0.0.0:8125", format="statsd"),
)
cfg.pipeline("metrics", Pipeline(data_source=src))
cfg.save()
bash
skipprd connect data-source statsd \
  --pipeline metrics \
  --name metrics \
  --listen-address 0.0.0.0:8125 \
  --format statsd
yaml
data_sources:
  metrics:
    Statsd:
      listen_address: "0.0.0.0:8125"
      format: statsd

Run skipprd sync without --once so the listener stays up.

Options ​

KeyTypeRequired/DefaultDescription
listen_addressstringRequiredBind host:port
formatstringNot setPayload format
batch_size_bytesintegerNot setMax bytes per batch
batch_size_secondsintegerNot setMax seconds per batch

What gets synced ​

Each metric line becomes a record. Metrics that arrive before the WAL commit can be lost if the process dies — senders should tolerate that. See Exactly-once delivery.

Troubleshooting ​

SymptomFix
Address in useStop the other StatsD listener or change the port
No rowsConfirm applications send to this host and port

Next steps ​