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