/sensu-plugins-signifai

Sensu plugin for SignifAi REST API

Primary LanguageRubyMIT LicenseMIT

This is sensu-plugin-signifai, a sensu event handler for submitting your metrics to SignifAi via the REST API.

Installation

Assuming you have [installed Sensu for your platform] (https://sensuapp.org/docs/latest/installation/), and if you elect to use the "embedded" Ruby that comes with Sensu, you may want to (at least temporarily) add their Ruby to your PATH:

export EMBEDDED_RUBY="true"
export PATH="/opt/sensu/embedded/bin:$PATH"

Then, simply run:

sudo -E gem install sensu-plugins-signifai

Verify that which handler-signifai.rb gives you a valid path; if so, the plugin is installed and ready to use!

Configuration

The Signifai event handler is what Sensu calls a 'pipe' handler type, and you will need to configure it before it will forward events for you.

Write out a file, /etc/sensu/conf.d/signifai.json , that looks like this:

{
  "handlers": {
    "signifai": {
      "type": "pipe",
      "filter": "state_change_only",
      "command": "/opt/sensu/embedded/bin/handler-signifai.rb"
    }
  },
  "signifai": {
    "api_key": "YOUR_API_KEY"
  },
  "sensu_plugin": {
    "disable_deprecated_filtering": true
  },
  "filters": {
    "state_change_only": {
      "negate": false,
      "attributes": {
        "occurrences": "eval: value == 1 || ':::action:::' == 'resolve'"
      }
    }
  }
}

If you don't want to add the sensu_plugin setting because you are currently relying on the deprecated filtering ([more information] (https://blog.sensuapp.org/deprecating-event-filtering-in-sensu-plugin-b60c7c500be3)) you can, instead, set the "enable_deprecated_filtering": false per-check.

For any check whose results you want to forward to signifai, refer to this example:

{
  "checks": {
    "sleep": {
      "command": "/opt/sensu/embedded/bin/check-process.rb -p sleep",
      "subscribers": ["dev-sensu"],
      "handlers": ["signifai"],
      "interval": 60
    }
  }
}

You can use either the handler attribute with just the string "signifai" or you can use handlers with "signifai" alongside any other handlers you may need.

Building (for developers)

You will need to install dependencies (note that you will need the bundler gem if you are using your system's native Ruby):

bundle install

And it's always a safe bet to run tests:

bundle exec rake default

If the tests are okay, you can build your gem like so:

gem build sensu-plugin-signifai.gemspec

If you like, you can then install your newly-built gem using the instructions in the Installation section.

For more information on the tests/procedures the sensu-plugins authors use when determining if a plugin is ready for release, check http://sensu-plugins.io/docs/testing.html -- it should be helpful when suggesting changes.