From ececdf0b04a0e99cce50138d7308963d1e36f146 Mon Sep 17 00:00:00 2001
From: anima
Date: Sat, 29 Mar 2025 12:08:38 +0100
Subject: [PATCH] add performance data
---
checks/check_api_swarmpit.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
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 _: