Repository: incubator-eagle Updated Branches: refs/heads/master 30e35de60 -> 3a84a2c62
[MINOR] add retry when read jmx timeout Author: wujinhu <wujinhu...@126.com> Closes #686 from wujinhu/EAGLE-790. Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/3a84a2c6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/3a84a2c6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/3a84a2c6 Branch: refs/heads/master Commit: 3a84a2c6285146d7765a120ca64567183af6bdf8 Parents: 30e35de Author: wujinhu <wujinhu...@126.com> Authored: Mon Dec 5 10:11:57 2016 +0800 Committer: wujinhu <wujinhu...@126.com> Committed: Mon Dec 5 10:11:57 2016 +0800 ---------------------------------------------------------------------- .../hadoop_jmx_collector/metric_collector.py | 31 +++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/3a84a2c6/eagle-external/hadoop_jmx_collector/metric_collector.py ---------------------------------------------------------------------- diff --git a/eagle-external/hadoop_jmx_collector/metric_collector.py b/eagle-external/hadoop_jmx_collector/metric_collector.py index 6eeec5a..c6eac35 100644 --- a/eagle-external/hadoop_jmx_collector/metric_collector.py +++ b/eagle-external/hadoop_jmx_collector/metric_collector.py @@ -95,17 +95,28 @@ class Helper: url = ":".join([host, str(port)]) result = None response = None + attempts = 0 + exception = None + while attempts < 2: + try: + if https: + logging.info("Reading https://" + str(url) + path) + c = httplib.HTTPSConnection(url, timeout=28) + c.request("GET", path) + response = c.getresponse() + else: + logging.info("Reading http://" + str(url) + path) + response = urllib2.urlopen("http://" + str(url) + path, timeout=28) + logging.debug("Got response") + result = response.read() + break + except Exception as e: + logging.warning(e) + exception = e + attempts += 1 try: - if https: - logging.info("Reading https://" + str(url) + path) - c = httplib.HTTPSConnection(url, timeout=57) - c.request("GET", path) - response = c.getresponse() - else: - logging.info("Reading http://" + str(url) + path) - response = urllib2.urlopen("http://" + str(url) + path, timeout=57) - logging.debug("Got response") - result = response.read() + if attempts >= 2: + raise exception finally: if response is not None: response.close()