Skip to content
This repository has been archived by the owner on Dec 18, 2019. It is now read-only.

Updating output to be more compliant with Nagios plugin guidelines #10

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions check_graphite_data
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def usage():
print 'Options:'
print '\t-c <num> --crit=<num>\t\tCritical threshold'
print '\t-w <num> --warn=<num>\t\tWarning threshold'
print '\t-l <label> --label <label>\tMetric label'
print '\t-u <url> --url=<url>\t\tGraphite graph URL'
print '\t-r\t\t\t\tReverse - Alert when the value is UNDER warn/crit instead of OVER'
print '\t-s <secs> --seconds=<secs>\tAverage over the last N seconds of data'
Expand Down Expand Up @@ -104,9 +105,9 @@ def get_value(url, seconds=0):

def main(argv):
try:
opts, args = getopt.getopt(argv, 'hWULru:c:w:s:',
opts, args = getopt.getopt(argv, 'hWULru:l:c:w:s:',
['help', 'holt-winters', 'critupper',
'critlower', 'url=', 'crit=', 'warn=',
'critlower', 'url=', 'label=', 'crit=', 'warn=',
'seconds=', 'd1=', 'd2='
,'scale=' ,'scale-invert='
])
Expand All @@ -117,6 +118,7 @@ def main(argv):
url = None
warn = None
crit = None
label = ''
seconds = 0
diff1 = None
diff2 = None
Expand All @@ -131,6 +133,8 @@ def main(argv):
sys.exit()
elif opt in ('-u', '--url'):
url = arg
elif opt in ('-l', '--label'):
label = arg
elif opt in ('-w', '--warn'):
warn = float(arg)
elif opt in ('-c', '--crit'):
Expand Down Expand Up @@ -164,8 +168,8 @@ def main(argv):

if hw:
graphite_data, graphite_lower, graphite_upper = get_hw_value(url, seconds)
print 'Current value: %s, lower band: %s, upper band: %s' % \
(graphite_data, graphite_lower, graphite_upper)
print '%s Current value: %s, lower band: %s, upper band: %s' % \
(label, graphite_data, graphite_lower, graphite_upper)
if (graphite_data > graphite_upper) or (graphite_data < graphite_lower):
if critupper or critlower:
sys.exit(STATE_CRITICAL)
Expand All @@ -181,21 +185,25 @@ def main(argv):
graphite_data = get_value(url, seconds)
graphite_data *= scale

print 'Current value: %s, warn threshold: %s, crit threshold: %s' % \
(graphite_data, warn, crit)
if reverse == True:
if crit >= graphite_data:
print '%s CRITICAL: Current value: %s, low crit threshold: %s' % (label, graphite_data, crit)
sys.exit(STATE_CRITICAL)
elif warn >= graphite_data:
print '%s WARNING: Current value: %s, low warn threshold: %s' % (label, graphite_data, warn)
sys.exit(STATE_WARNING)
else:
print '%s OK: Current value: %s, low warn threshold: %s' % (label, graphite_data, warn)
sys.exit(STATE_OK)
else:
if graphite_data >= crit:
print '%s CRITICAL: Current value: %s, high crit threshold: %s' % (label, graphite_data, crit)
sys.exit(STATE_CRITICAL)
elif graphite_data >= warn:
print '%s WARNING: Current value: %s, high warn threshold: %s' % (label, graphite_data, warn)
sys.exit(STATE_WARNING)
else:
print '%s OK: Current value: %s, high warn threshold: %s' % (label, graphite_data, warn)
sys.exit(STATE_OK)


Expand Down