add performance data

This commit is contained in:
2025-03-29 12:08:38 +01:00
parent d15d40e902
commit ececdf0b04

View File

@@ -6,7 +6,7 @@
- pip3 install requests - pip3 install requests
""" """
__version__ = '0.5.2' __version__ = '0.5.3'
__author__ = 'anima' __author__ = 'anima'
# imports # imports
@@ -165,6 +165,7 @@ class DockerSwarmServiceStatesResource(nagiosplugin.Resource):
data['state'] = service['state'] data['state'] = service['state']
data['status'] = service['status']['tasks'] data['status'] = service['status']['tasks']
yield nagiosplugin.Metric(name='docker_service', value=data, context='docker_service') 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): class DockerSwarmServiceStatesContext(nagiosplugin.Context):
@@ -208,6 +209,7 @@ class DockerSwarmServiceUpdatesResource(nagiosplugin.Resource):
""" """
response = self.api.services() response = self.api.services()
updates = 0
for service in response: for service in response:
data = dict() data = dict()
data['name'] = service['serviceName'] data['name'] = service['serviceName']
@@ -234,6 +236,11 @@ class DockerSwarmServiceUpdatesResource(nagiosplugin.Resource):
data['latestDigest'] = None data['latestDigest'] = None
yield nagiosplugin.Metric(name='docker_service', value=data, context='docker_service') 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): class DockerSwarmServiceUpdatesContext(nagiosplugin.Context):
def __init__(self, name): def __init__(self, name):
@@ -353,12 +360,14 @@ def main():
check = nagiosplugin.Check( check = nagiosplugin.Check(
DockerSwarmServiceStatesResource(api=api), DockerSwarmServiceStatesResource(api=api),
DockerSwarmServiceStatesContext(name='docker_service'), DockerSwarmServiceStatesContext(name='docker_service'),
nagiosplugin.ScalarContext(name='scalar_context', warning=args.warning, critical=args.critical),
DockerSwarmSummary()) DockerSwarmSummary())
check.name = "swarm service states" check.name = "swarm service states"
case 'service_updates': case 'service_updates':
check = nagiosplugin.Check( check = nagiosplugin.Check(
DockerSwarmServiceUpdatesResource(api=api), DockerSwarmServiceUpdatesResource(api=api),
DockerSwarmServiceUpdatesContext(name='docker_service'), DockerSwarmServiceUpdatesContext(name='docker_service'),
nagiosplugin.ScalarContext(name='scalar_context', warning=args.warning, critical=args.critical),
DockerSwarmSummary()) DockerSwarmSummary())
check.name = "swarm service updates" check.name = "swarm service updates"
case _: case _: