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'):
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 = []
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
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 = []
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(),
})
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',