Add plugin
This commit is contained in:
parent
199b09b447
commit
4c1b081c28
94
check_jitsi.py
Executable file
94
check_jitsi.py
Executable file
|
@ -0,0 +1,94 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
from urllib.request import urlopen
|
||||
import json
|
||||
import sys
|
||||
|
||||
data = json.loads(urlopen('http://127.0.0.1:8080/colibri/stats').read().decode('utf-8'))
|
||||
|
||||
v = {}
|
||||
c = {
|
||||
'conferences': {
|
||||
'selector': 'conferences',
|
||||
'warn': 3,
|
||||
'crit': 5,
|
||||
},
|
||||
'participants': {
|
||||
'selector': 'participants',
|
||||
'warn': 10,
|
||||
'crit': 15,
|
||||
},
|
||||
'largest_conference': {
|
||||
'selector': 'largest_conference',
|
||||
'warn': 10,
|
||||
'crit': 15,
|
||||
},
|
||||
'inactive_conferences': {
|
||||
'selector': 'inactive_conferences',
|
||||
'warn': 2,
|
||||
'crit': 3,
|
||||
},
|
||||
|
||||
'bit_rate_download': {
|
||||
'selector': 'bit_rate_download',
|
||||
},
|
||||
'bit_rate_upload': {
|
||||
'selector': 'bit_rate_upload',
|
||||
},
|
||||
'endpoints_sending_video': {
|
||||
'selector': 'endpoints_sending_video',
|
||||
},
|
||||
'endpoints_sending_audio': {
|
||||
'selector': 'endpoints_sending_audio',
|
||||
},
|
||||
'receive_only_endpoints': {
|
||||
'selector': 'receive_only_endpoints',
|
||||
},
|
||||
'p2p_conferences': {
|
||||
'selector': 'p2p_conferences',
|
||||
},
|
||||
'jitter_aggregate': {
|
||||
'selector': 'jitter_aggregate',
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
retcode = [0, ]
|
||||
out = []
|
||||
outout = []
|
||||
perfdata = []
|
||||
|
||||
retstring = {0:'OK', 1:'WARNING', 2:'CRITICAL'}
|
||||
|
||||
|
||||
|
||||
for key in c.keys():
|
||||
v[key] = data.get(c[key]['selector'])
|
||||
|
||||
crit = (c[key]).get('crit')
|
||||
warn = (c[key]).get('warn')
|
||||
if crit and v[key] >= c[key]['crit']:
|
||||
state = 2
|
||||
elif warn and v[key] >= c[key]['warn']:
|
||||
state = 1
|
||||
else:
|
||||
state = 0
|
||||
|
||||
retcode.append(state)
|
||||
if crit and warn:
|
||||
out.append('%s %s' % (v[key], key))
|
||||
else:
|
||||
outout.append('%s: %s' % (key, v[key]))
|
||||
|
||||
perfdata.append('%s=%s;%s;%s;;' % (key, v[key], warn or '', crit or ''))
|
||||
|
||||
|
||||
retcode = max(retcode)
|
||||
|
||||
out = 'Jitsi %s' % (retstring.get(retcode) or 'UNKNOWN') + ': ' + ', '.join(out)
|
||||
|
||||
|
||||
print(out + '|' + ' '.join(perfdata))
|
||||
print('\n'.join(outout))
|
||||
sys.exit(retcode)
|
||||
|
Loading…
Reference in a new issue