diff --git a/checks/check_api_swarmpit.py b/checks/check_api_swarmpit.py index 868e891..cb6549b 100755 --- a/checks/check_api_swarmpit.py +++ b/checks/check_api_swarmpit.py @@ -6,7 +6,7 @@ - pip3 install requests """ -__version__ = '0.5.2' +__version__ = '0.5.3' __author__ = 'anima' # imports @@ -165,6 +165,7 @@ class DockerSwarmServiceStatesResource(nagiosplugin.Resource): data['state'] = service['state'] data['status'] = service['status']['tasks'] yield nagiosplugin.Metric(name='docker_service', value=data, context='docker_service') + return nagiosplugin.Metric(name='services', value=len(response), context='scalar_context') class DockerSwarmServiceStatesContext(nagiosplugin.Context): @@ -208,6 +209,7 @@ class DockerSwarmServiceUpdatesResource(nagiosplugin.Resource): """ response = self.api.services() + updates = 0 for service in response: data = dict() data['name'] = service['serviceName'] @@ -234,6 +236,11 @@ class DockerSwarmServiceUpdatesResource(nagiosplugin.Resource): data['latestDigest'] = None yield nagiosplugin.Metric(name='docker_service', value=data, context='docker_service') + if data['latestDigest'] is not None and data['imageDigest'] != data['latestDigest']: + updates += 1 + + return nagiosplugin.Metric(name='updates', value=updates, context='scalar_context') + class DockerSwarmServiceUpdatesContext(nagiosplugin.Context): def __init__(self, name): @@ -353,12 +360,14 @@ def main(): check = nagiosplugin.Check( DockerSwarmServiceStatesResource(api=api), DockerSwarmServiceStatesContext(name='docker_service'), + nagiosplugin.ScalarContext(name='scalar_context', warning=args.warning, critical=args.critical), DockerSwarmSummary()) check.name = "swarm service states" case 'service_updates': check = nagiosplugin.Check( DockerSwarmServiceUpdatesResource(api=api), DockerSwarmServiceUpdatesContext(name='docker_service'), + nagiosplugin.ScalarContext(name='scalar_context', warning=args.warning, critical=args.critical), DockerSwarmSummary()) check.name = "swarm service updates" case _: