statsd is a network daemon for aggregating statistics, such as counters and timers, and shipping over UDP to backend services, such as Graphite or Datadog.
The most basic coverage of this plugin is that the ‘namespace’, ‘sender’, and ‘metric’ names are combined into the full metric path like so:
namespace.sender.metric
The general idea is that you send statsd count or latency data and every few seconds it will emit the aggregated values to the backend. Example aggregates are average, max, stddev, etc.
You can learn about statsd here:
A simple example usage of this is to count HTTP hits by response code; to learn more about that, check out the log metrics tutorial
The default final metric sent to statsd would look like this:
namespace.sender.metric
With regards to this plugin, the default namespace is “logstash”, the default sender is the ${host} field, and the metric name depends on what is set as the metric name in the increment, decrement, timing, count, set or gauge variable.
output {
statsd {
codec => ... # codec (optional), default: "plain"
count => ... # hash (optional), default: {}
decrement => ... # array (optional), default: []
gauge => ... # hash (optional), default: {}
host => ... # string (optional), default: "localhost"
increment => ... # array (optional), default: []
namespace => ... # string (optional), default: "logstash"
port => ... # number (optional), default: 8125
sample_rate => ... # number (optional), default: 1
sender => ... # string (optional), default: "%{host}"
set => ... # hash (optional), default: {}
timing => ... # hash (optional), default: {}
workers => ... # number (optional), default: 1
}
}
The codec used for output data. Output codecs are a convenient method for encoding your data before it leaves the output, without needing a separate filter in your Logstash pipeline.
A count metric. metric_name => count
as hash
Enable debugging.
A decrement metric. Metric names as array.
Only handle events without any of these tags. Note this check is additional to type and tags.
A gauge metric. metric_name => gauge
as hash.
The address of the statsd server.
An increment metric. Metric names as array.
The statsd namespace to use for this metric.
The port to connect to on your statsd server.
The sample rate for the metric.
The name of the sender. Dots will be replaced with underscores.
A set metric. metric_name => "string"
to append as hash
Only handle events with all of these tags. Note that if you specify a type, the event must also match that type. Optional.
A timing metric. metric_name => duration
as hash
The type to act on. If a type is given, then this output will only act on messages with the same type. See any input plugin’s “type” attribute for more. Optional.
The number of workers to use for this output. Note that this setting may not be useful for all outputs.