diff options
| author | Steve Kemp <steve@steve.org.uk> | 2013-10-04 15:03:55 +0100 | 
|---|---|---|
| committer | Steve Kemp <steve@steve.org.uk> | 2013-10-04 15:03:55 +0100 | 
| commit | cc19d2cb6f33a1c9c07d8b446888084c9ce88a33 (patch) | |
| tree | 12f8134ab97f68052e1b68e4a0abf49eb3d0fc42 | |
| parent | 867a8a8248b46ef1dd2f9ff6874fb6ed771ef41f (diff) | |
  Graphite alerter.
| -rw-r--r-- | lib/custodian/alerts.rb | 1 | ||||
| -rw-r--r-- | lib/custodian/alerts/graphite.rb | 70 | 
2 files changed, 71 insertions, 0 deletions
| diff --git a/lib/custodian/alerts.rb b/lib/custodian/alerts.rb index 1f90fe2..d22419b 100644 --- a/lib/custodian/alerts.rb +++ b/lib/custodian/alerts.rb @@ -15,6 +15,7 @@ require 'custodian/alertfactory'  # The individual alert-types.  #  require 'custodian/alerts/file' +require 'custodian/alerts/graphite'  require 'custodian/alerts/mauve'  require 'custodian/alerts/redis-state'  require 'custodian/alerts/smtp' diff --git a/lib/custodian/alerts/graphite.rb b/lib/custodian/alerts/graphite.rb new file mode 100644 index 0000000..857c872 --- /dev/null +++ b/lib/custodian/alerts/graphite.rb @@ -0,0 +1,70 @@ +# +#  The graphite-alerter. +# +#  This only exists to record timing durations in the local graphite/carbon +# instance. +# +module Custodian + +  module Alerter + +    class GraphiteAlert < AlertFactory + +      # +      # The test this alerter cares about +      # +      attr_reader :test + + +      # +      # Constructor - save the test-object away. +      # +      def initialize( obj ) +        @test  = obj +      end + + + +      # +      # NOP. +      # +      def raise +      end + + + +      # +      # NOP. +      # +      def clear +      end + + + +      # +      # Send the test test-duration to graphite/carbon +      # +      def duration( ms ) + +        # +        # hostname + test-type +        # +        host = @test.target +        test = @test.get_type + +        # +        #  The key we'll send +        # +        str  = "#{host}-#{test}" +        str.gsub!(/\\\./, "-") +        str  = "monitor.#{str}" + +        system( "/bin/echo '#{str} #{ms} #{Time.now.to_i}' | nc localhost 2003" ) +      end + +      register_alert_type "graphite" + + +    end +  end +end | 
