--- a/lib/arborist/monitor/snmp/load.rb Wed Aug 30 13:55:02 2017 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-# -*- ruby -*-
-# vim: set noet nosta sw=4 ts=4 :
-
-require 'arborist/monitor/snmp' unless defined?( Arborist::Monitor::SNMP )
-
-# SNMP 5 minute load checks.
-# Sets current 5 minute load as a 'load5' attribute.
-#
-class Arborist::Monitor::SNMP::Load
- include Arborist::Monitor::SNMP
-
- extend Loggability
- log_to :arborist
-
- # OIDS for discovering system load.
- #
- LOAD = {
- five_min: '1.3.6.1.4.1.2021.10.1.3.2'
- }
-
- # Global defaults for instances of this monitor
- #
- DEFAULT_OPTIONS = {
- error_at: 7
- }
-
-
- ### Class #run creates a new instance.
- ###
- def self::run( nodes )
- return new.run( nodes )
- end
-
-
- ### Create a new instance of this monitor.
- ###
- def initialize( options=DEFAULT_OPTIONS )
- options = DEFAULT_OPTIONS.merge( options || {} )
- options.each do |name, value|
- self.public_send( "#{name.to_s}=", value )
- end
- end
-
- # Set an error if mount points are above this percentage.
- attr_accessor :error_at
-
-
- ### Perform the monitoring checks.
- ###
- def run( nodes )
- super do |snmp, host|
- self.gather_load( snmp, host )
- end
- end
-
-
- #########
- protected
- #########
-
- ### Collect the load information for +host+ from an existing
- ### (and open) +snmp+ connection.
- ###
- def gather_load( snmp, host )
- self.log.debug "Getting system load for: %s" % [ host ]
- load5 = snmp.get( SNMP::ObjectId.new( LOAD[:five_min] ) ).varbind_list.first.value.to_f
- self.log.debug " Load on %s: %0.2f" % [ host, load5 ]
-
- config = @identifiers[ host ].last || {}
- error_at = config[ 'error_at' ] || self.error_at
- if load5 >= error_at
- @results[ host ] = {
- error: "Load has exceeded %0.2f over a 5 minute average" % [ error_at ],
- load5: load5
- }
- else
- @results[ host ] = { load5: load5 }
- end
- end
-
-end # class Arborist::Monitor::SNMP::Load
-