def showMemStat(warning, critical, s): pl_op = {} if not s: pl_op["message"] = ("MEMORY STATUS UNKNOWN") pl_op['exit_status'] = utils.PluginStatusCode.UNKNOWN return pl_op try: totalMem = utils.convertSize((int(s['memory']['memfree']) + int(s['memory']['memused'])), "KB", "GB") except (KeyError, ValueError) as e: pl_op["message"] = "key: %s not found" % str(e) pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN return pl_op crit_value = (totalMem * critical) / 100 war_value = (totalMem * warning) / 100 usedMem = utils.convertSize(int(s['memory']['memused']) - int( s['memory']['cached']), "KB", "GB") usedPercent = usedMem * 100.0 / totalMem if usedMem >= crit_value: pl_op["message"] = utils.PluginStatus.CRITICAL pl_op['exit_status'] = utils.PluginStatusCode.CRITICAL elif usedMem >= war_value: pl_op["message"] = utils.PluginStatus.WARNING pl_op['exit_status'] = utils.PluginStatusCode.WARNING else: pl_op["message"] = utils.PluginStatus.OK pl_op['exit_status'] = utils.PluginStatusCode.OK try: pl_op["message"] += ("- %.2f%% used(%.2fGB out of %.2fGB)|" "Total=%.2fGB;%.2f;%.2f;0;%.2f" " Used=%.2fGB Buffered=%.2fGB" " Cached=%.2fGB" % ( usedPercent, usedMem, totalMem, totalMem, war_value, crit_value, totalMem, usedMem, utils.convertSize(int(s['memory']['buffers']), "KB", "GB"), utils.convertSize(int(s['memory']['cached']), "KB", "GB"))) except (KeyError, ValueError, TypeError) as e: pl_op["message"] = "key: %s not found" % str(e) pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN return pl_op return pl_op
def showSwapStat(warning, critical, s): pl_op = {} if not s: pl_op["message"] = ("SWAP STATUS UNKNOWN") pl_op['exit_status'] = utils.PluginStatusCode.UNKNOWN return pl_op try: totalSwap = utils.convertSize((int(s['memory']['swpfree']) + int(s['memory']['swpused'])), "KB", "GB") except (KeyError, ValueError, TypeError) as e: pl_op["message"] = "key: %s not found" % str(e) pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN return pl_op crit_value = (totalSwap * critical) / 100 war_value = (totalSwap * warning) / 100 if utils.convertSize(int(s['memory']['swpused']), "KB", "GB") >= crit_value: pl_op["message"] = utils.PluginStatus.CRITICAL pl_op['exit_status'] = utils.PluginStatusCode.CRITICAL elif utils.convertSize(int(s['memory']['swpused']), "KB", "GB") >= war_value: pl_op["message"] = utils.PluginStatus.WARNING pl_op['exit_status'] = utils.PluginStatusCode.WARNING else: pl_op["message"] = utils.PluginStatus.OK pl_op['exit_status'] = utils.PluginStatusCode.OK try: pl_op["message"] += ("- %.2f%% used(%.2fGB out of %.2fGB)|Used=%.2fGB;" "%.2f;%.2f;0;%.2f" % ( float(s['memory']['swpused-percent']), utils.convertSize(int(s['memory']['swpused']), "KB", "GB"), totalSwap, utils.convertSize(int(s['memory']['swpused']), "KB", "GB"), war_value, crit_value, totalSwap)) except (KeyError, ValueError, TypeError) as e: pl_op["message"] = "key: %s not found" % str(e) pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN return pl_op return pl_op
def showMemStat(warning, critical, s): pl_op = {} if not s: pl_op["message"] = ("MEMORY STATUS UNKNOWN") pl_op['exit_status'] = utils.PluginStatusCode.UNKNOWN return pl_op try: totalMem = utils.convertSize( (int(s['memory']['memfree']) + int(s['memory']['memused'])), "KB", "GB") except (KeyError, ValueError) as e: pl_op["message"] = "key: %s not found" % str(e) pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN return pl_op crit_value = (totalMem * critical) / 100 war_value = (totalMem * warning) / 100 usedMem = utils.convertSize( int(s['memory']['memused']) - int(s['memory']['cached']), "KB", "GB") usedPercent = usedMem * 100.0 / totalMem if usedMem >= crit_value: pl_op["message"] = utils.PluginStatus.CRITICAL pl_op['exit_status'] = utils.PluginStatusCode.CRITICAL elif usedMem >= war_value: pl_op["message"] = utils.PluginStatus.WARNING pl_op['exit_status'] = utils.PluginStatusCode.WARNING else: pl_op["message"] = utils.PluginStatus.OK pl_op['exit_status'] = utils.PluginStatusCode.OK try: pl_op["message"] += ( "- %.2f%% used(%.2fGB out of %.2fGB)|" "Total=%.2fGB;%.2f;%.2f;0;%.2f" " Used=%.2fGB Buffered=%.2fGB" " Cached=%.2fGB" % (usedPercent, usedMem, totalMem, totalMem, war_value, crit_value, totalMem, usedMem, utils.convertSize(int(s['memory']['buffers']), "KB", "GB"), utils.convertSize(int(s['memory']['cached']), "KB", "GB"))) except (KeyError, ValueError, TypeError) as e: pl_op["message"] = "key: %s not found" % str(e) pl_op["exit_status"] = utils.PluginStatusCode.UNKNOWN return pl_op return pl_op
args = parser.parse_args() # Check the various performance statuses for the host numVolumes, used, avail = checkVolumePerfData(args.hostgroup) statusstr = utils.PluginStatus.OK exitstatus = utils.PluginStatusCode.OK if numVolumes == 0: statusstr = utils.PluginStatus.OK exitstatus = utils.PluginStatusCode.OK print("%s - No volumes found|used=0;%s;%s;0;%s;" % (statusstr, args.warn, args.crit, 100)) elif numVolumes > 0 and used == 0 and avail == 0: statusstr = utils.PluginStatus.UNKNOWN exitstatus = utils.PluginStatusCode.UNKNOWN print("%s - Volume utilization data could not be read" % statusstr) else: warn = int((args.warn * avail) / 100.0) crit = int((args.crit * avail) / 100.0) usedpercent = int((used / avail) * 100.0) if (usedpercent >= args.warn): statusstr = utils.PluginStatus.WARNING exitstatus = utils.PluginStatusCode.WARNING if (usedpercent >= args.crit): statusstr = utils.PluginStatus.CRITICAL exitstatus = utils.PluginStatusCode.CRITICAL availGB = utils.convertSize(avail, "KB", "GB") print("%s - used %s%% of available %s GB|used=%s;%s;%s;0;%s;" % (statusstr, usedpercent, availGB, usedpercent, args.warn, args.crit, 100)) sys.exit(exitstatus)
args = parser.parse_args() # Check the various performance statuses for the host numVolumes, used, avail = checkVolumePerfData(args.hostgroup) statusstr = utils.PluginStatus.OK exitstatus = utils.PluginStatusCode.OK if numVolumes == 0: statusstr = utils.PluginStatus.OK exitstatus = utils.PluginStatusCode.OK print("%s - No volumes found|used=0;%s;%s;0;%s;" % (statusstr, args.warn, args.crit, 100)) elif numVolumes > 0 and used == 0 and avail == 0: statusstr = utils.PluginStatus.UNKNOWN exitstatus = utils.PluginStatusCode.UNKNOWN print("%s - Volume utilization data could not be read" % statusstr) else: warn = int((args.warn * avail) / 100.0) crit = int((args.crit * avail) / 100.0) usedpercent = int((used / avail) * 100.0) if usedpercent >= args.warn: statusstr = utils.PluginStatus.WARNING exitstatus = utils.PluginStatusCode.WARNING if usedpercent >= args.crit: statusstr = utils.PluginStatus.CRITICAL exitstatus = utils.PluginStatusCode.CRITICAL availGB = utils.convertSize(avail, "KB", "GB") print( "%s - used %s%% of available %s GB|used=%s;%s;%s;0;%s;" % (statusstr, usedpercent, availGB, usedpercent, args.warn, args.crit, 100) ) sys.exit(exitstatus)
def testMBToMB(self): retVal = utils.convertSize(900, 'MB', 'MB') assert (retVal == 900)
def testInvalidInput(self): with self.assertRaises(ValueError): utils.convertSize(89, 'P', 'M')
def testPBtoMB(self): retVal = utils.convertSize(8, 'PB', 'MB') assert (round(retVal, 0) == 8589934592)
def testBytesToMB(self): retVal = utils.convertSize(778999, 'B', 'MB') assert (round(retVal, 2) == 0.74)