You are currently viewing an older version of the documentation. You can find the latest documentation here.

StatsD Collection Agent plug-in

Overview

StatsD Collection Agent plug-in collects metrics from StatsD clients.

Note: This plugin requires both Netprobe and Gateway 5.1.x or higher.If you are using a Netprobe 5.2.x or higher (contains Collection Agent 2.1.0 or higher) when using this plugin, then you must upgrade to Gateway 5.2.x or higher.

This plugin also requires an additional licence to use. Please contact your ITRS Account Manager or ITRS Sales.

StatsD configuration

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.

Protocols

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 StatsD libraries

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:

Supported metrics

The following StatsD metric types are provided by the ITRS StatsD libraries plug-in:

Metric type Description
Counter

Integer count that can be incremented or decremented.

You can use this to track events such as logins.

Gauge

Numerical value that can be set arbitrarily.

You can use this to record measured values such as percentage memory usage.

Timer

Time duration.

You can use this to record the time elapsed between events or the duration of processes.

Set Counter of unique events that can be incremented or decremented.
Event Custom type used to generate Geneos events.
Attribute

Static value.

You can use this for data that changes inadequately, such as the core count of a host.

 

Configuration reference

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