]>
git.immae.eu Git - perso/Immae/Config/Nix.git/blob - modules/private/monitoring/plugins/check_eriomem
6 from subprocess
import Popen
, PIPE
13 keys
= sys
.argv
[1].split(",")
16 access
, secret
= k
.split(":", 1)
20 '--no-check-certificate',
21 '--access_key={}'.format(access
),
22 '--secret_key={}'.format(secret
),
23 '--host=e.eriomem.net',
24 '--host-bucket=%(bucket)s.e.eriomem.net',
28 max_size
= 1024*1024*1024*1024
29 warning_percent
= 99.75
30 critical_percent
= 99.95
32 def output(code
, msg
):
37 def handler(signum
, frame
):
39 signal
.signal(signal
.SIGALRM
, handler
)
43 ps
= [Popen(to_args(a
), stdout
=PIPE
, stderr
=PIPE
) for a
in keys
]
44 outs
= [p
.communicate() for p
in ps
]
45 rets
= [p
.wait() for p
in ps
]
48 os
.kill(p
.pid
, signal
.SIGTERM
)
50 "Eriomem UNKNOWN - Command timeout after 60 seconds!")
55 usages
= [int(out
[0].decode().split("\n")[-2].split()[0]) for out
in outs
]
57 use_percent
= 100 * usage
/ max_size
58 if use_percent
> critical_percent
:
59 output(STATE_CRITICAL
,
60 "Eriomem CRITICAL - bucket usage: %s (%s%%);| size=%s;;;;" %
61 (sizeof_fmt(usage
), use_percent
, sizeof_fmt(usage
)))
62 elif use_percent
> warning_percent
:
64 "Eriomem WARNING - bucket usage: %s (%s%%);| size=%s;;;;" %
65 (sizeof_fmt(usage
), use_percent
, sizeof_fmt(usage
)))
68 "Eriomem OK - bucket usage: %s (%d%%);| size=%s;;;;" %
69 (sizeof_fmt(usage
), use_percent
, sizeof_fmt(usage
)))
71 messages
= "\n".join([out
[0].decode() + out
[1].decode() for out
in outs
])
73 "Eriomem UNKNOWN - Error in command")
76 for unit
in ['','ko','Mo','Go','To','Po','Eo','Zo']:
78 return "%3.1f%s" % (num
, unit
)
80 return "%.1f%s%s" % (num
, 'Yo')
82 if __name__
== '__main__':