sensor_type = "temp" sensor_name = "temp_" + str(sensorid) warn = plugin.options.tempwarn crit = plugin.options.tempcrit unit = "C" pdunit = "" elif unit == "%RH": sensor_type = "hum" sensor_name = "hum_" + str(sensorid) warn = plugin.options.humwarn crit = plugin.options.humcrit pdunit = "%" if sensor_type: valuesinfile += 1 returncode = plugin.value_wc_to_returncode(float(value), warn, crit) if returncode == 0: plugin.add_output("%s: %s%s" % (sensor_name, value, unit)) else: plugin.add_output("%s: %s %s%s" % (sensor_name, plugin.RETURNSTRINGS[returncode], value, unit)) plugin.add_returncode(returncode) plugin.add_multilineoutput( "%s %s: %s%s (%s)" % (sensor_name, plugin.RETURNSTRINGS[returncode], value, unit, readtime) ) plugin.format_add_performancedata(sensor_name, value, pdunit, warn=warn, crit=crit) else: plugin.verbose(1, 'Unknown sensor type "%s" on %s' % (unit, sensorid)) if valuesinfile == 0: plugin.verbose(2, "No data found for sensor %s" % sensorid)
# Go! for version in versions: if version == '6': matcher = v6match else: matcher = v4match for proto in protos: filename = '/proc/net/%s%s' % (proto, version) f = file(filename) lines = f.readlines() for line in lines: m = matcher.match(line) if m: port = int(m.group(2), 16) if port == plugin.options.port and m.group(3) not in ['00000000','00000000000000000000000000000000']: count += 1 returncode = plugin.value_wc_to_returncode(count, plugin.options.warn, plugin.options.crit) plugin.add_returncode(returncode) plugin.add_output('%s network connections on port %s' % (count, plugin.options.port)) plugin.format_add_performancedata('netconns_%s' % plugin.options.port, count, '', warn=plugin.options.warn, crit=plugin.options.crit) plugin.exit()
plugin.verbose(3, 'Length of output: %s' % len(varlist) ) if len(outputs) != len(varlist): plugin.back2nagios(3, 'Did not get expected infos') for idx in xrange(0, len(varlist)): var = varlist[idx] warn = plugin.options.warn[idx] crit = plugin.options.crit[idx] output = (VARs[var]['type'])(outputs[idx]) if VARs[var]['type'] in [float, long, int]: factor = VARs[var].get('factor') if factor != None: output = output * factor returncode = plugin.value_wc_to_returncode(output, warn, crit) else: returncode = plugin.RETURNCODE['OK'] perfdata = [] unit = VARs[var].get('unit') if unit != None: perfdata.append({'label':var, 'value':output, 'unit':VARs[var]['unit'], 'warn':warn, 'crit':crit,}) else: unit = '' descr = VARs[var].get('descr') if descr != None: longoutput = descr + ': ' + str(output) + unit else: longoutput = str(output) + unit
states = None if plugin.options.statistics: scoreboard = re.search('Scoreboard: (.*)\n', data) if scoreboard: states = {'_':0, 'S':0, 'R':0, 'W':0, 'K':0, 'D':0, 'C':0, 'L':0, 'G':0, 'I':0, '.':0,} for worker in scoreboard.group(1): states[worker] += 1 plugin.add_multilineoutput(str(states['_']) + ' waiting for connection') plugin.add_multilineoutput(str(states['S']) + ' starting up') plugin.add_multilineoutput(str(states['R']) + ' reading request') plugin.add_multilineoutput(str(states['W']) + ' writing/sending reply') plugin.add_multilineoutput(str(states['K']) + ' keepalive') plugin.add_multilineoutput(str(states['D']) + ' looking up in DNS') plugin.add_multilineoutput(str(states['C']) + ' closing connection') plugin.add_multilineoutput(str(states['L']) + ' logging') plugin.add_multilineoutput(str(states['G']) + ' gracefully finishing') plugin.add_multilineoutput(str(states['I']) + ' idle cleanup of worker') plugin.add_multilineoutput(str(states['.']) + ' open slots(up to ServerLimit)') returncode = plugin.value_wc_to_returncode(busy, plugin.options.warn, plugin.options.crit) plugin.add_output(str(busy) + ' busy workers, ' + str(idle) + ' idle') plugin.add_returncode(returncode) plugin.format_add_performancedata('busy', busy, '', warn=plugin.options.warn, crit=plugin.options.crit, min=0.0) plugin.format_add_performancedata('idle', idle, '') plugin.exit()