python dockerd module: check version (#5217)
* add min req version to readme * check docker package version in check
Ilya Mashchenko committed
Jan 19, 2019 at 03:53 UTC
b537efdbef909375f4a9f74c258028b02d75f40a
2 files changed
+14
-5
collectors/python.d.plugin/dockerd/README.md
+1
-1
@@ -3,7 +3,7 @@
3
Module monitor docker health metrics.
4
5
**Requirement:**
6
-* `docker` package
6
+* `docker` package, required version 3.2.0+
7
8
Following charts are drawn:
9
collectors/python.d.plugin/dockerd/dockerd.chart.py
+13
-4
@@ -10,9 +10,8 @@ except ImportError:
10
11
from bases.FrameworkServices.SimpleService import SimpleService
12
13
-# default module values (can be overridden per job in `config`)
14
-# update_every = 1
15
-priority = 60000
13
+from distutils.version import StrictVersion
14
+
15
16
# charts order (can be overridden if you want less charts, or different order)
17
ORDER = [
@@ -46,6 +45,9 @@ CHARTS = {
45
}
46
47
48
+MIN_REQUIRED_VERSION = '3.2.0'
49
+
50
+
51
class Service(SimpleService):
52
def __init__(self, configuration=None, name=None):
53
SimpleService.__init__(self, configuration=configuration, name=name)
@@ -55,7 +57,14 @@ class Service(SimpleService):
57
58
def check(self):
59
if not HAS_DOCKER:
58
- self.error("'docker' package is needed to use docker.chart.py")
60
+ self.error("'docker' package is needed to use dockerd module")
61
+ return False
62
+
63
+ if StrictVersion(docker.__version__) < StrictVersion(MIN_REQUIRED_VERSION):
64
+ self.error("installed 'docker' package version {0}, minimum required version {1}, please upgrade".format(
65
+ docker.__version__,
66
+ MIN_REQUIRED_VERSION,
67
+ ))
68
return False
69
70
self.client = docker.DockerClient(base_url=self.configuration.get('url', 'unix://var/run/docker.sock'))