StatsD Collection Agent plug-in collects metrics from StatsD clients.
This plugin also requires an additional licence to use. Please contact your ITRS Account Manager or ITRS Sales.
StatsD is a lightweight, industry standard daemon that allows you to collect and aggregate application metrics. Developers can instrument their applications using language specific libraries and communicate with the StatsD daemon using a simple protocol. Aggregated metrics from the StatsD daemon can be sent a variety of monitoring tools including the StatsDCollection Agent plug-in.
Using a StatsD monitoring solution has the following advantages:
- Low overhead.
- Decoupling of instrumentation and application.
- Richer instrumentation than log file based monitoring.
- Active open source community.
You can configure instrumented applications to communicate with the StatsD daemon using either the default User Datagram Protocol (UDP) or the Transmission Control Protocol (TCP).
Using UDP ensures a minimal footprint, and the decoupling of application and instrumentation since it operates on a connectionless fire and forget principle. However, since UDP is connectionless it cannot ensure all packets are delivered or provide congestion control.
Using TCP ensures all messages are delivered since it connection orientated and requires message acknowledgement. However, using TCP can have a performance impact.
ITRS provides custom StatsD libraries that allow you to instrument your applications.
Using ITRSStatsD libraries provides the following additional features:
- Dimensions, which are descriptive key-value pairs, can be added to any metric.
- Units of measure can be specified on a per metric basis.
- Custom event reporting.
- Attribute message type. This can be used to send static non-metric information.
The available StatsD libraries are:
The following StatsD metric types are provided by the ITRS StatsD libraries plug-in:
Integer count that can be incremented or decremented.
You can use this to track events such as logins.
Numerical value that can be set arbitrarily.
You can use this to record measured values such as percentage memory usage.
You can use this to record the time elapsed between events or the duration of processes.
||Counter of unique events that can be incremented or decremented.|
||Custom type used to generate Geneos events.|
You can use this for data that changes inadequately, such as the core count of a host.
Below is an example YAML file which may require some changes for your project’s configuration:
collectors: - name: statsd type: plugin class-name: StatsdServer # Transport protocol. Can be udp (default) or tcp. transport-protocol: udp # Number of milliseconds between reporting intervals. All metrics are aggregated and windowed per interval. # Defaults to 10 seconds. reporting-interval: 10000 # Listen port. Defaults to 8125. listen-port: 8125 # Size (in bytes) of the listening socket's receive buffer. If configured, an attempt will be made to re-size the # buffer, but it is not guaranteed to take the configured size. # Defaults to 5MB. receive-buffer-size: 5242880 # Maximum supported message size (in bytes). Messages over this size are dropped. # Should be configured in correlation with the statsd client max message size. # Defaults to 1432 for UDP and 4096 for TCP. max-message-size: 1432 # Number of milliseconds after which a metric will be purged if no updates have been received. # Defaults to 24 hours. stale-metrics-threshold: 86400000 # Optional settings for metric derived from collected metrics. derived-metrics: timers: # Defaults to false. enabled: false # Optional custom percentiles to publish. Default values shown. percentiles: - 99 - 95 - 90 - 75 - 50