Influxdb

This plugin provides native InfluxDB instrumentation for monitoring and metrics collection, including: service health via `/ping`, running queries, and service metrics.

Sensu-Plugins-influxdb

Build Status Gem Version Code Climate Test Coverage Dependency Status

Functionality

Files

  • bin/check-influxdb.rb
  • bin/check-influxdb-query.rb
  • bin/metrics-influxdb.rb
  • bin/mutator-influxdb-line-protocol.rb

Usage - metrics-influxdb.rb

Add the following to /etc/sensu/conf.d/influx.json "plugin expects influxdb to be a top level node in the json metrics-influxdb

{
    "influxdb": {
        "hosts"         : ["influxdb.familyguy.com"],
        "host"          : "influxdb.familyguy.com",
        "port"          : "8086",
        "username"      : "root",
        "password"      : "root",
        "database"      : "stats",
        # OPTIONAL
        "time_precision": "s",
        "use_ssl"       : false,
        "verify_ssl"    : true,
        "ssl_ca_cert"   : "path to the ca certificate file",
        "auth_method"   : "params",
        "initial_delay" : 0.01,
        "max_delay"     : 30,
        "open_timeout"  : 5,
        "read_timeout"  : 300,
        "retry"         : null,
        "prefix"        : "",
        "denormalize"   : true,
        "status"        : true
    }
}

Then add the following to your /etc/sensu/conf.d/handlers.json:

{
  "handlers": {
     "influx-tcp": {
       "type": "pipe",
       "command": "/opt/sensu/embedded/bin/metrics-influxdb.rb"
     }
   }
}

Setting "status" to true will store the metric using the status as the value and the check name as the series

Usage - mutator-influxdb-line-protocol.rb

Add the mutator-influxdb-line-protocol.rb file into /etc/sensu/extensions/

Then add the following to your /etc/sensu/conf.d/handlers.json:

{
  "handlers": {
    "influxdb_udp": {
      "type": "udp",
      "socket": {
        "host": "localhost",
        "port": 8090
      },
      "mutator": "influxdb_line_protocol"
    }
  }
}

Check configuration

To ship additional tags to your metrics via mutator-influxdb-line-protocol.rb (only available in influxdb >= 0.9), just add a tags block inside your check.

{
  "checks": {
    "cpu-metrics": {
      "command": "/opt/sensu/embedded/bin/metrics-cpu-pcnt-usage.rb",
      "handlers": [
        "influxdb_udp"
      ],
      "interval": 60,
      "subscribers": [
        "base"
      ],
      "type": "metric",
      "standalone": false,
      "tags": {
        "group": "operations"
      }
    }
  }
}

Installation

Installation and Setup

Notes

Get Integration

Stats

14 stars on GitHub
12 open issues on GitHub
32 open forks on GitHub

Sensu Integrations

Sensu integrations and extensions are available for dozens of modern applications and services.