Skip to content

Instantly share code, notes, and snippets.

@warmfusion
Last active August 29, 2015 14:27
Show Gist options
  • Save warmfusion/c1bc41b4c6a34e2ab860 to your computer and use it in GitHub Desktop.
Save warmfusion/c1bc41b4c6a34e2ab860 to your computer and use it in GitHub Desktop.
Sensu Event Status as Graphite Metric
#!/usr/bin/env ruby
#
# Author: Toby Jackson
# Date: 2015-08-11
#
# Usage:
# Add as mutator to a graphitehandler (which accepts all severities)
# to create a new graphite metric for $hostname.$checkname with
# each status value
require 'rubygems'
require 'json'
# Read the JSON event data from STDIN.
event = JSON.parse(STDIN.read, :symbolize_names => true)
puts "#{event[:client][:name]}.#{event[:check][:name]} #{event[:check][:status]} #{event[:check][:executed]}"
{
"mutators": {
"check-to-metrics-mutator": {
"command": "/etc/sensu/mutators/check-to-metric-mutator.rb"
}
}
}
{
"handlers": {
"check-to-metrics": {
"mutator": "check-to-metrics-mutator",
"severities": [
"ok",
"warning",
"critical",
"unknown"
],
"socket": {
"host": "graphite.example.com",
"port": 2003
},
"type": "tcp"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment