StatsD · Controlled Vocabulary
StatsD Vocabulary
Domain vocabulary for the StatsD ecosystem — the original Etsy daemon and its line-protocol descendants (DogStatsD, Telegraf StatsD, Veneur, gostatsd, brubeck, statsite, bioyino). Covers wire-protocol primitives, aggregation semantics, transport, dialect extensions, server architecture, and operational concepts.
22 Terms
Updated
StatsD Vocabulary is a controlled vocabulary published by StatsD on the APIs.io network, defining 22 terms.
Defined terms include Metric Bucket, Counter Metric, Gauge Metric, Timer Metric, and Histogram Metric.
A controlled vocabulary pins the words an API’s schemas, parameters and documentation use to one agreed definition each — the shared language a human or an agent needs to read the API the same way its authors do.
Terms
Metric Bucket
Bucket
The dotted-path name of a metric (e.g. `app.requests.completed`). StatsD aggregates values by bucket and emits derived series under `stats...` on flush.
Counter Metric
Counter
Wire type `|c`. An integer increment (or decrement) of a named bucket. Counters reset to zero on every flush interval. Emit with `@sample_rate` on hot paths so the daemon can scale the contribution.
Gauge Metric
Gauge
Wire type `|g`. A retained value that persists across flushes. A `+`/`-` prefix marks the value as a delta against the current gauge rather than a replacement.
Timer Metric
Timer
Wire type `|ms`. A duration in milliseconds. The daemon computes count, sum, mean, lower, upper, and configured percentiles per flush. Default `percentThreshold` is 90.
Histogram Metric
Histogram
Wire type `|h` in DogStatsD/Telegraf; in vanilla StatsD configured via `histogram` config bins. Records observation counts per bin boundary; aggregated locally before flush.
Distribution Metric
Distribution
Wire type `|d` — DogStatsD-only. Raw values are forwarded to Datadog for global aggregation, enabling cross-host percentiles. Distinct from `|h` (local) aggregation.
Set Metric
Set
Wire type `|s`. Counts the cardinality of unique values observed in the bucket since the last flush. Common for counting unique users, IPs, or request IDs.
Meter Metric
Meter
Wire type `|m`. Event-rate metric defined in the b/statsd_spec community spec. Functionally equivalent to a per-second counter; many modern servers fold meters into counters.
Sample Rate
SampleRate
`@` clause in the wire line, between 0 and 1. The sender emits only a fraction of observations; the daemon scales the contribution by `1 / sample_rate` on aggregation.
Metric Tag
Tag
`|#k:v,k:v` clause appended to a metric line. A DogStatsD/Telegraf extension; vanilla Etsy StatsD ignores it. Tags add dimensions to a metric (env, service, region, customer, etc.).
StatsD Wire Protocol
WireProtocol
The canonical contract of the ecosystem — a UTF-8 line-oriented text format carried over UDP (default port 8125) or TCP. The wire protocol, not any specific server, is what every client library targets.
Flush Interval
FlushInterval
The cadence (in milliseconds; default 10000) at which the daemon aggregates buffered observations and emits derived series to its configured backends.
StatsD Admin Interface
AdminInterface
Plain-text management TCP service on `mgmt_port` (default 8126). Supports `stats`, `counters`, `gauges`, `timers`, `delcounters`, `delgauges`, `deltimers`, `health [up|down]`, `config`, and `quit` commands.
Backend Plugin
Backend
A pluggable sink to which the daemon flushes aggregated series. Bundled backends are `graphite`, `console`, and `repeater`; 30+ third-party backends ship for AWS CloudWatch, InfluxDB, Datadog, OpenTSDB, Stackdriver, Elasticsearch, and more.
Repeater Backend
Repeater
Bundled backend that forwards every raw inbound packet to one or more downstream StatsD instances. Used to fan out, mirror, or tier aggregation hierarchies.
Percent Threshold
PercentThreshold
`percentThreshold` config — an array of percentiles to compute for timer metrics. Default `[90]`. The daemon emits `upper_NN`, `mean_NN`, and `sum_NN` series for each threshold.
Delete Idle Stats
DeleteIdleStats
`deleteIdleStats` (and per-type variants `deleteCounters`, `deleteGauges`, `deleteTimers`, `deleteSets`) — when true, the daemon omits buckets that received no input during the flush interval rather than emitting zeroes.
Multi-Metric Packet
MultiMetricPacket
A single datagram carrying multiple metric lines separated by `\n`. The canonical batching mechanism on UDP; senders SHOULD keep total packet size below the network MTU to avoid IP fragmentation.
DogStatsD Event
Event
`_e{title.len,text.len}:title|text|...` payload — surfaces in Datadog's event timeline. Optional fields cover timestamp, hostname, priority, alert type, source, aggregation key, and tags.
DogStatsD Service Check
ServiceCheck
`_sc|name|status|...` payload, where status 0/1/2/3 maps to OK/WARNING/CRITICAL/UNKNOWN. The trailing `m:` message field, when present, MUST be last.
Unix Domain Socket
UnixDomainSocket
Alternative DogStatsD transport that eliminates UDP packet loss when client and agent share a host. Common pattern in Kubernetes via a hostPath-mounted socket.
Global Aggregation
GlobalAggregation
Aggregation strategy — practiced by Stripe Veneur, DogStatsD distributions, and Wayfair statsdcc — where observations from multiple hosts are combined into a single global view, typically via t-digest (for percentiles) and HyperLogLog (for sets).