ruby
def parse_orardsinfo(info, collumn):
return dict([ (i[0], i[collumn]) for i in info ])
def inventory_orards(checkname, info):
orardsinfo = parse_orardsinfo(info,1)
# print info
inventory = []
check_pattern = checkname[:6] + '_' + checkname[7:]
for key in orardsinfo:
if key.startswith(check_pattern):
inventory.append( (key, None) )
return inventory
def check_orards_CPUUtilization(item, params, info):
if params is None:
warn = 75
crit = 90
else:
warn, crit = params
orardsinfo = parse_orardsinfo(info,1)
data = float(re.search(r'\d+.\d+', orardsinfo.get(item)).group())
perfdata = [ ("%s" % item, data, warn, crit ) ]
if crit is None:
return (0, "%s is %f" % (item, data/1024), perfdata)
elif data > crit:
return (2, "%s is %f" % (item, data/1024), perfdata)
elif data > warn:
return (1, "%s is %f" % (item, data/1024), perfdata)
elif data >= 0:
return (0, "%s is %f" % (item, data/1024), perfdata)
else:
return (3, "%s is %f" % (item, data/1024))
check_info["orards.CPUUtilization"] = {
'check_function': check_orards_CPUUtilization,
'inventory_function': inventory_orards,
'service_description': '%s',
'has_perfdata': True,
}
def check_orards_FreeableMemory(item, params, info):
if params is None:
warn = 1073741824
crit = 524288000
else:
warn, crit = params
orardsinfo = parse_orardsinfo(info,1)
data = float(re.search(r'\d+.\d+', orardsinfo.get(item)).group())
perfdata = [ ("%s" % item, data, warn, crit ) ]
if crit is None:
return (0, "%s is %f" % (item, data/1024), perfdata)
elif data < crit:
return (2, "%s is %f" % (item, data/1024), perfdata)
elif data < warn:
return (1, "%s is %f" % (item, data/1024), perfdata)
elif data >= crit:
return (0, "%s is %f" % (item, data/1024), perfdata)
else:
return (3, "%s is %f" % (item, data/1024))
check_info["orards.FreeableMemory"] = {
'check_function': check_orards_FreeableMemory,
'inventory_function': inventory_orards,
'service_description': '%s',
'has_perfdata': True,
}
def check_orards_FreeStorageSpace(item, params, info):
if params is None:
warn = 53687091200
crit = 21474836480
else:
warn, crit = params
orardsinfo = parse_orardsinfo(info,1)
data = float(re.search(r'\d+.\d+', orardsinfo.get(item)).group())
perfdata = [ ("%s" % item, data, warn, crit ) ]
if crit is None:
return (0, "%s is %f" % (item, data/1024), perfdata)
elif data < crit:
return (2, "%s is %f" % (item, data/1024), perfdata)
elif data < warn:
return (1, "%s is %f" % (item, data/1024), perfdata)
elif data >= crit:
return (0, "%s is %f" % (item, data/1024), perfdata)
else:
return (3, "%s is %f" % (item, data/1024))
check_info["orards.FreeStorageSpace"] = {
'check_function': check_orards_FreeStorageSpace,
'inventory_function': inventory_orards,
'service_description': '%s',
'has_perfdata': True,
}