Re-implement upper levels for fan speed
Message-ID: <54bfe892.UET2PL4iQ2ofUtkV%kb(a)mathias-kettner.de>
User-Agent: Heirloom mailx 12.5 6/20/10
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Module: check_mk
Branch: master
Commit: 2e0b910e2876c462801105f30665ff96b2e25e21
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2e0b910e2876c4…
Author: Konstantin Büttner <kb(a)mathias-kettner.de>
Date: Wed Jan 21 18:57:34 2015 +0100
bintec_sensors, climaveneta_fan: Re-implement upper levels for fan speed
---
checks/bintec_sensors | 21 ++++++++++++---------
checks/climaveneta_fan | 11 +++++++----
checks/fan.include | 20 +++++++++++++-------
3 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/checks/bintec_sensors b/checks/bintec_sensors
index f9104f5..3c2e190 100644
--- a/checks/bintec_sensors
+++ b/checks/bintec_sensors
@@ -44,13 +44,15 @@ bintec_sensors_info = ( ".1.3.6.1.4.1.272.4.17.7.1.1.1", [
# | |
# '----------------------------------------------------------------------'
-bintec_sensors_fan_default_levels = (2000, 1000)
+factory_settings["bintec_sensors_fan_default_levels" = {
+ "lower" : (2000, 1000),
+}
def inventory_bintec_sensors_fan(info):
inventory = []
for sensor_id, sensor_descr, sensor_type, sensor_value, sensor_unit in info:
if sensor_type == "2":
- inventory.append( (sensor_descr,
"bintec_sensors_fan_default_levels" ) )
+ inventory.append( (sensor_descr, {}) )
return inventory
def check_bintec_sensors_fan(item, params, info):
@@ -59,13 +61,14 @@ def check_bintec_sensors_fan(item, params, info):
return check_fan(int(sensor_value), params)
check_info["bintec_sensors.fan"] = {
- "check_function" : check_bintec_sensors_fan,
- "inventory_function" : inventory_bintec_sensors_fan,
- "service_description" : "%s",
- "snmp_info" : bintec_sensors_info,
- "snmp_scan_function" : bintec_sensors_scan,
- "group" : "fan",
- "includes" : [ "fan.include" ],
+ "check_function" : check_bintec_sensors_fan,
+ "inventory_function" : inventory_bintec_sensors_fan,
+ "service_description" : "%s",
+ "snmp_info" : bintec_sensors_info,
+ "snmp_scan_function" : bintec_sensors_scan,
+ "default_levels_variable" :
"bintec_sensors_fan_default_levels",
+ "group" : "hw_fans",
+ "includes" : [ "fan.include" ],
}
#.
diff --git a/checks/climaveneta_fan b/checks/climaveneta_fan
index 385dd69..cd0202e 100644
--- a/checks/climaveneta_fan
+++ b/checks/climaveneta_fan
@@ -25,12 +25,14 @@
# Boston, MA 02110-1301 USA.
-climaveneta_fan_default_levels = (200, 100)
+factory_settings["climaveneta_fan_default_levels"] = {
+ "lower": (200, 100),
+}
def inventory_climaveneta_fan(info):
if len(info[0]) == 2:
- return [ (1, "climaveneta_fan_default_levels"), (2,
"climaveneta_fan_default_levels") ]
+ return [ (1, {}), (2, {}) ]
def check_climaveneta_fan(item, params, info):
@@ -44,7 +46,8 @@ check_info["climaveneta_fan"] = {
"service_description" : "Fan %s",
"snmp_scan_function" : lambda oid:
oid(".1.3.6.1.2.1.1.1.0") == "pCO Gateway",
"snmp_info" : (".1.3.6.1.4.1.9839.2.1.2", [ 42, 43
] ),
- "group" : "fan",
- "includes" : [ "fan.include" ],
+ "default_levels_variable" : "climaveneta_fan_default_levels",
+ "group" : "hw_fans",
+ "includes" : [ "fan.include" ],
}
diff --git a/checks/fan.include b/checks/fan.include
index f88e5ca..02782be 100644
--- a/checks/fan.include
+++ b/checks/fan.include
@@ -25,16 +25,22 @@
# Boston, MA 02110-1301 USA.
def check_fan(rpm, params):
- if type(params) == dict:
- warn, crit = params["lower"]
- else:
- warn, crit = params
+ if type(params) == tuple:
+ params = { "lower" : params }
+
+ warn, crit = params["lower"]
+ warn_upper, crit_upper = params.get("upper", (None, None))
message = "Speed at %d rpm" % rpm
- levelstext = " (warn/crit at %s/%s rpm)" % params
- if rpm < crit:
+ levelstext = " (warn/crit below %s/%s rpm)" % (warn, crit)
+ if warn_upper and crit_upper:
+ levelstext = levelstext[:-1] + \
+ " and at or above %s/%s rpm)" % (warn_upper, crit_upper)
+
+ # Note that None < int
+ if rpm < crit or rpm >= crit_upper:
message += levelstext
return 2, message
- elif rpm < warn:
+ elif rpm < warn or rpm >= warn_upper:
message += levelstext
return 1, message
else: