]>
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 ARGS1
= to_args(keys
[0])
29 ARGS2
= to_args(keys
[1])
31 max_size
= 1024*1024*1024*1024
32 warning_percent
= 99.75
33 critical_percent
= 99.95
35 def output(code
, msg
):
40 def handler(signum
, frame
):
42 signal
.signal(signal
.SIGALRM
, handler
)
46 ps
= [Popen(to_args(a
), stdout
=PIPE
, stderr
=PIPE
) for a
in keys
]
47 outs
= [p
.communicate() for p
in ps
]
48 rets
= [p
.wait() for p
in ps
]
51 os
.kill(p
.pid
, signal
.SIGTERM
)
53 "eriomem UNKNOWN - Command timeout after 60 seconds!")
58 usages
= [int(out
[0].decode().split("\n")[-2].split()[0]) for out
in outs
]
60 use_percent
= 100 * usage
/ max_size
61 if use_percent
> critical_percent
:
62 output(STATE_CRITICAL
,
63 "eriomem CRITICAL - bucket usage: %s (%s%%);| size=%s;;;;" %
64 (sizeof_fmt(usage
), use_percent
, usage
))
65 elif use_percent
> warning_percent
:
67 "eriomem WARNING - bucket usage: %s (%s%%);| size=%s;;;;" %
68 (sizeof_fmt(usage
), use_percent
, usage
))
71 "eriomem OK - bucket usage: %s (%d%%);| size=%s;;;;" %
72 (sizeof_fmt(usage
), use_percent
, usage
))
74 messages
= "\n".join([out
[0].decode() + out
[1].decode() for out
in outs
])
76 "eriomem Unknown - Error in command\n" + messages
)
79 for unit
in ['','ko','Mo','Go','To','Po','Eo','Zo']:
81 return "%3.1f%s" % (num
, unit
)
83 return "%.1f%s%s" % (num
, 'Yo')
85 if __name__
== '__main__':