From: Sebastian Wagner Date: Mon, 18 Oct 2021 13:05:43 +0000 (+0200) Subject: mgr/cephadm: Monitoring: Prometheus: Fix IPv6 X-Git-Tag: v17.1.0~605^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=406734a14226800f2c2ed01290a508e89e0dec6e;p=ceph.git mgr/cephadm: Monitoring: Prometheus: Fix IPv6 Signed-off-by: Sebastian Wagner --- diff --git a/src/pybind/mgr/cephadm/services/monitoring.py b/src/pybind/mgr/cephadm/services/monitoring.py index 8dbeafcf142e..3ec2a66789e3 100644 --- a/src/pybind/mgr/cephadm/services/monitoring.py +++ b/src/pybind/mgr/cephadm/services/monitoring.py @@ -235,11 +235,10 @@ class PrometheusService(CephadmService): port = None t = mgr_map.get('services', {}).get('prometheus', None) if t: + p_result = urlparse(t) t = t.split('/')[2] mgr_scrape_list.append(t) - port = '9283' - if ':' in t: - port = t.split(':')[1] + port = p_result.port or 9283 # scan all mgrs to generate deps and to get standbys too. # assume that they are all on the same port as the active mgr. for dd in self.mgr.cache.get_daemons_by_service('mgr'): @@ -252,7 +251,7 @@ class PrometheusService(CephadmService): continue assert dd.hostname is not None addr = self.mgr.inventory.get_addr(dd.hostname) - mgr_scrape_list.append(addr.split(':')[0] + ':' + port) + mgr_scrape_list.append(build_url(host=addr, port=port).lstrip('/')) # scrape node exporters nodes = [] @@ -260,10 +259,10 @@ class PrometheusService(CephadmService): assert dd.hostname is not None deps.append(dd.name()) addr = dd.ip if dd.ip else self.mgr.inventory.get_addr(dd.hostname) - port = str(dd.ports[0]) if dd.ports else '9100' + port = dd.ports[0] if dd.ports else 9100 nodes.append({ 'hostname': dd.hostname, - 'url': addr.split(':')[0] + ':' + port + 'url': build_url(host=addr, port=port).lstrip('/') }) # scrape alert managers @@ -272,8 +271,8 @@ class PrometheusService(CephadmService): assert dd.hostname is not None deps.append(dd.name()) addr = dd.ip if dd.ip else self.mgr.inventory.get_addr(dd.hostname) - port = str(dd.ports[0]) if dd.ports else '9093' - alertmgr_targets.append("'{}:{}'".format(addr.split(':')[0], port)) + port = dd.ports[0] if dd.ports else 9093 + alertmgr_targets.append("'{}'".format(build_url(host=addr, port=port).lstrip('/'))) # scrape haproxies haproxy_targets = [] @@ -285,7 +284,7 @@ class PrometheusService(CephadmService): if dd.daemon_type == 'haproxy': addr = self.mgr.inventory.get_addr(dd.hostname) haproxy_targets.append({ - "url": f"'{addr.split(':')[0]}:{spec.monitor_port}'", + "url": f"'{build_url(host=addr, port=spec.monitor_port).lstrip('/')}'", "service": dd.service_name(), }) @@ -324,7 +323,7 @@ class PrometheusService(CephadmService): assert dd.hostname is not None addr = dd.ip if dd.ip else self._inventory_get_addr(dd.hostname) port = dd.ports[0] if dd.ports else self.DEFAULT_SERVICE_PORT - service_url = 'http://{}:{}'.format(addr, port) + service_url = build_url(scheme='http', host=addr, port=port) self._set_service_url_on_dashboard( 'Prometheus', 'dashboard get-prometheus-api-host',