2015-09-24 18:06:11 +00:00
|
|
|
# Telegraf Service Plugin: statsd
|
|
|
|
|
|
|
|
#### Plugin arguments:
|
|
|
|
|
|
|
|
- **service_address** string: Address to listen for statsd UDP packets on
|
|
|
|
- **delete_gauges** boolean: Delete gauges on every collection interval
|
|
|
|
- **delete_counters** boolean: Delete counters on every collection interval
|
|
|
|
- **delete_sets** boolean: Delete set counters on every collection interval
|
|
|
|
- **allowed_pending_messages** integer: Number of messages allowed to queue up
|
|
|
|
on the UDP listener before the next flush. NOTE: gauge, counter, and set
|
|
|
|
measurements are aggregated as they arrive, so this is not a straight counter of
|
|
|
|
the number of total messages that the listener can handle between flushes.
|
|
|
|
|
|
|
|
#### Statsd bucket -> InfluxDB Mapping
|
|
|
|
|
|
|
|
By default, statsd buckets are converted to measurement names with the rules:
|
|
|
|
- "." -> "_"
|
|
|
|
- "-" -> "__"
|
|
|
|
|
|
|
|
This plugin also accepts a list of config tables to describe a mapping of a statsd
|
|
|
|
bucket to an InfluxDB measurement name and tags.
|
|
|
|
|
|
|
|
Each mapping must specify a match glob pattern. It can optionally take a name
|
|
|
|
for the measurement and a map of bucket indices to tag names.
|
|
|
|
|
|
|
|
For example, the following configuration:
|
|
|
|
|
|
|
|
```
|
|
|
|
[[statsd.mappings]]
|
|
|
|
match = "users.current.*.*"
|
|
|
|
name = "current_users"
|
|
|
|
[statsd.mappings.tagmap]
|
|
|
|
unit = 0
|
|
|
|
server = 2
|
|
|
|
service = 3
|
|
|
|
|
|
|
|
[[statsd.mappings]]
|
|
|
|
match = "deploys.*.*"
|
|
|
|
name = "service_deploys"
|
|
|
|
[statsd.mappings.tagmap]
|
|
|
|
service_type = 1
|
|
|
|
service_name = 2
|
|
|
|
```
|
|
|
|
|
|
|
|
Will map statsd -> influx like so:
|
|
|
|
```
|
|
|
|
users.current.den001.myapp:32|g
|
|
|
|
=> [server="den001" service="myapp" unit="users"] statsd_current_users_gauge value=32
|
|
|
|
|
|
|
|
deploys.test.myservice:1|c
|
|
|
|
=> [service_name="myservice" service_type="test"] statsd_service_deploys_counter value=1
|
|
|
|
|
|
|
|
random.jumping-sheep:10|c
|
|
|
|
=> [] statsd_random_jumping__sheep_counter value=10
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Description
|
|
|
|
|
|
|
|
The statsd plugin is a special type of plugin which runs a backgrounded statsd
|
|
|
|
listener service while telegraf is running.
|
|
|
|
|
|
|
|
The format of the statsd messages was based on the format described in the
|
|
|
|
original [etsy statsd](https://github.com/etsy/statsd/blob/master/docs/metric_types.md)
|
|
|
|
implementation. In short, the telegraf statsd listener will accept:
|
|
|
|
|
|
|
|
- Gauges
|
|
|
|
- `users.current.den001.myapp:32|g` <- standard
|
|
|
|
- `users.current.den001.myapp:+10|g` <- additive
|
|
|
|
- `users.current.den001.myapp:-10|g`
|
|
|
|
- Counters
|
|
|
|
- `deploys.test.myservice:1|c` <- increments by 1
|
|
|
|
- `deploys.test.myservice:101|c` <- increments by 101
|
|
|
|
- `deploys.test.myservice:1|c|@0.1` <- sample rate, increments by 10
|
|
|
|
- Sets
|
|
|
|
- `users.unique:101|s`
|
|
|
|
- `users.unique:101|s`
|
|
|
|
- `users.unique:102|s` <- would result in a count of 2 for `users.unique`
|
2015-10-05 22:19:08 +00:00
|
|
|
- Timings
|
2015-09-24 18:06:11 +00:00
|
|
|
- TODO
|