lib/arborist/monitor/snmp/load.rb
changeset 8 e0b7c95a154f
parent 7 4548e58c8c66
child 9 10bf910a379c
--- 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
-