Docs » Integrations Guide » Integrations Reference » SignalFx plugin for collectd

SignalFx plugin for collectd

Metadata associated with the SignalFx plugin for collectd can be found here. The relevant code for the plugin can be found here.

DESCRIPTION

This SignalFx plugin for collectd configures collectd to aggregate metrics and send them to SignalFx. This plugin also handles the association to a specific SignalFx org to the data that is being sent through the org’s API token.

REQUIREMENTS AND DEPENDENCIES

This plugin requires:

Software Version
collectd 4.9+
Python plugin for collectd (included with SignalFx collectd agent)
Python 2.6+

INSTALLATION

  1. Download the Python module from the following URL:

    https://github.com/signalfx/signalfx-collectd-plugin
    
  2. Download SignalFxs sample configuration file.

  3. Modify the configuration file as follows:

    1. Modify the fields TypesDB and ModulePath to point to the location on disk where you downloaded the Python module in step 2.
    2. Provide values that make sense for your environment, as described below.
  4. Add the following line to /etc/collectd.conf, replacing the example path with the location of the configuration file you downloaded in step 4:

    include '/path/to/10-signalfx.conf'
    
  5. Restart collectd.

collectd will begin emitting metrics to SignalFx.

CONFIGURATION

Configuring the plugin

Before we can send metrics to SignalFx, we need to make sure you are sending them to
the correct SignalFx realm. To determine what realm you are in (YOUR_SIGNALFX_REALM), check your
profile page in the SignalFx web application (click the avatar in the upper right and click My Profile).
If you are not in the us0 realm, you will need to set the URL configuration option below
to use the correct realm, as shown below.
You will also need to set the Token configuration option to your SignalFx organization access token (YOUR_SIGNALFX_API_TOKEN).
For more information on authentication, see the API’s Authentication documentation.

Configuration options

configuration option definition default value
ModulePath Path on disk where collectd can find this module. “/opt/signalfx-collectd-plugin”
URL URL for where metrics are sent from collectd. If you are looking to limit the number of connections from your infrastructure to the SignalFx service you can optioally configure the use of the SignalFx metricproxy https://ingest.us0.signalfx.com/v1/collectd
Token Your SignalFx Organization Acess Token none
LogTraces Enable log traces true
Notifications Enable notification on this plugin true
NotifyLevel Set the notification level “OKAY”
PerCoreCPUUtil Enable cpu utilization per core metrics. This requires the `filtering.conf <../collectd-match\_regex/filtering.conf>`__ file false

USAGE

This plugin provides additional aggregated system metrics to SignalFx.

METRICS

Below is a list of all metrics.

Metric Name Brief Type
cpu.utilization Percent of CPU used on this host. gauge
cpu.utilization_per_core Percent of CPU used on each core. gauge
disk.summary_utilization Percent of disk space utilized on all volumes on this host. gauge
disk.utilization Percent of disk used on this volume. gauge
disk_ops.total Total number of disk read and write operations on this host. cumulative_counter
memory.utilization Percent of memory in use on this host. gauge
network.total Total amount of inbound and outbound network traffic on this host, in bytes. cumulative_counter

cpu.utilization

gauge

This metric shows the amount of CPU in use on this machine, as a percent of total CPU available.

The SignalFx metadata plugin computes this metric based on the CPU metrics output by the aggregation plugin for collectd or the cpu plugin for Telegraf. First, compute the ratio of cpu.idle to the sum of all CPU metrics. Next, subtract that number from 1 to yield the ratio of CPU that is not idle, and multiply by 100 to display as percent, as follows:

[1 - cpu.idle / sum(cpu.*)] * 100

cpu.utilization_per_core

gauge

This metric shows the amount of CPU in use on each core, as a percent of total CPU available per core.

The SignalFx metadata plugin computes this metric based on the CPU metrics output by the cpu plugin for collectd and Telegraf. First, compute the ratio of cpu.idle to the sum of all CPU metrics. Next, subtract that number from 1 to yield the ratio of CPU that is not idle, and multiply by 100 to display as percent, as follows:

[1 - cpu.idle / sum(cpu.*)] * 100

disk.summary_utilization

gauge

This metric shows the percent of disk space utilized on this host, aggregated across all volumes.

The SignalFx metadata plugin computes this metric based on the disk space metrics output by the df plugin for collectd and the disk plugin for Telegraf as follows, initially summing all metrics by host:

collectd

100 * [df_complex.used / (df_complex.free + df_complex.used)]

Telegraf

100 * disk.used / disk.total

disk.utilization

gauge

This metric shows the amount of disk space in use on this volume, as a percentage of total disk space available on the volume.

The SignalFx metadata plugin computes this metric based on the disk space metrics output by the df plugin for collectd, as follows:

collectd

100 * [df_complex.used / (df_complex.free + df_complex.used)]

On Telegraf, the SignalFx metadata plugin reports disk.utilization with the value of the disk plugin’s used_percent metric.

disk_ops.total

cumulative_counter

This metric shows the total number of disk read and write operations on this host, summed across all volumes. The SignalFx metadata plugin computes this metric based on the disk operations metrics output by the disk plugin for collectd and the diskio plugin for Telegraf as follows, initially summing all metrics by host:

collectd

disk_ops.read + disk_ops.write

Telegraf

diskio.reads + diskio.writes

memory.utilization

gauge

This metric shows the amount of memory in use on this machine, as a percent of total memory available.

The SignalFx metadata plugin computes this metric based on the metrics output by the memory plugin for collectd and the mem plugin for Telegraf. The calculation used is as follows:

collectd

1.0 * memory.used / sum (memory.*) * 100

Telegraf

1.0 * mem.used / sum (mem.*) * 100

network.total

cumulative_counter

This metric shows the total amount of inbound and outbound network traffic on this host, in bytes.

The SignalFx metadata plugin computes this metric based on the network traffic metrics output by the interface plugin for collectd and the net plugin for Telegraf as follows, initially summing all metrics by host:

collectd

if_octets.rx + if_octets.tx

Telegraf

net.bytes_recv + net.bytes_sent