add performance data
This commit is contained in:
@@ -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 _:
|
||||
|
||||
Reference in New Issue
Block a user