From 45ca563416e0337c9f12fe68e641a584c2fc74d9 Mon Sep 17 00:00:00 2001 From: anima Date: Sun, 23 Feb 2025 12:45:32 +0100 Subject: [PATCH] add check disk usage --- checks/check_api_swarmpit.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/checks/check_api_swarmpit.py b/checks/check_api_swarmpit.py index b1294c2..5e64ab6 100644 --- a/checks/check_api_swarmpit.py +++ b/checks/check_api_swarmpit.py @@ -123,6 +123,26 @@ class DockerSwarmMemoryResource(nagiosplugin.Resource): return nagiosplugin.Metric(name='memory', value=memory_usage_percent, uom='%', context='scalar_context') +# +# Check Swarm disk +# +class DockerSwarmDiskResource(nagiosplugin.Resource): + def __init__(self, api) -> None: + self.api = api + + def probe(self) -> list: + """check disk usage of full swarm + + Returns: + nagiosplugin.Metric: single metric element (return) + """ + data = self.api.statistics() + disk = data['disk'] + disk_usage_percent = round(disk['usage'], 2) + + return nagiosplugin.Metric(name='disk', value=disk_usage_percent, uom='%', context='scalar_context') + + # # Check Swarm services # @@ -277,6 +297,7 @@ def parse_args() -> argparse.Namespace: choices=[ 'load', 'memory', + 'disk', 'service_states', 'service_updates' ], @@ -322,6 +343,12 @@ def main(): nagiosplugin.ScalarContext(name='scalar_context', warning=args.warning, critical=args.critical), nagiosplugin.Summary()) check.name = "swarm memory" + case 'disk': + check = nagiosplugin.Check( + DockerSwarmDiskResource(api=api), + nagiosplugin.ScalarContext(name='scalar_context', warning=args.warning, critical=args.critical), + nagiosplugin.Summary()) + check.name = "swarm disk" case 'service_states': check = nagiosplugin.Check( DockerSwarmServiceStatesResource(api=api),