@cryptotaxi247 / netdata-1 / commits / beb22fba4

tomcat mudule: add desired port into account (multiple connectors)

Ilya committed Jan 24, 2017 at 11:12 UTC beb22fba4fc8c9cd2bbc50d5ca5f2f7f4b936640
1 file changed +18 -2
python.d/tomcat.chart.py
+18 -2
@@ -5,6 +5,11 @@
5 from base import UrlService
6 from re import compile
7
8 +try:
9 + from urlparse import urlparse
10 +except ImportError:
11 + from urllib.parse import urlparse
12 +
13 # default module values (can be overridden per job in `config`)
14 # update_every = 2
15 priority = 60000
@@ -44,13 +49,20 @@ class Service(UrlService):
49 self.url = self.configuration.get('url', "http://127.0.0.1:8080/manager/status?XML=true")
50 self.order = ORDER
51 self.definitions = CHARTS
47 - self.regex = compile(r'([\w]+)=\\?[\'\"](\d+)\\?[\'\"]')
52
53 def check(self):
54 if not self.url.endswith('manager/status?XML=true'):
55 self.error('Bad url(%s). Must be http://<ip.address>:<port>/manager/status?XML=true' % self.url)
56 return False
57
58 + netloc = urlparse(self.url).netloc.rpartition(':')
59 + if netloc[1] == ':': port = netloc[2]
60 + else: port = 80
61 +
62 + self.regex_jvm = compile(r'<jvm>.*?</jvm>')
63 + self.regex_connector = compile(r'[a-z-]+%s.*?/connector' % port)
64 + self.regex = compile(r'([\w]+)=\\?[\'\"](\d+)\\?[\'\"]')
65 +
66 return UrlService.check(self)
67
68 def _get_data(self):
@@ -59,6 +71,10 @@ class Service(UrlService):
71 :return: dict
72 """
73 data = self._get_raw_data()
62 - if data: data = dict(self.regex.findall(data))
74 + if data:
75 + jvm = self.regex_jvm.findall(data)
76 + connector = self.regex_connector.findall(data)
77 + data = dict(self.regex.findall(''.join([jvm[0] if jvm else '',
78 + connector[0] if connector else ''])))
79
80 return data or None