diff --git a/roles/dashboard_topo/templates/init_dashboard_topo.sh.j2 b/roles/dashboard_topo/templates/init_dashboard_topo.sh.j2 index 217f19589..0311094ee 100644 --- a/roles/dashboard_topo/templates/init_dashboard_topo.sh.j2 +++ b/roles/dashboard_topo/templates/init_dashboard_topo.sh.j2 @@ -25,6 +25,14 @@ set -e {% set alertmanager_path = hostvars[host].deploy_dir -%} {% set _ = all_alertmanager.append("%s:%s%s" % (alertmanager_ip, alertmanager_port, alertmanager_path)) -%} {% endfor -%} +{% set all_prometheus = [] -%} +{% set prometheus_hosts = groups.monitoring_servers %} +{% for host in prometheus_hosts -%} + {% set prometheus_ip = hostvars[host].ansible_host | default(hostvars[host].inventory_hostname) -%} + {% set prometheus_port = hostvars[host].prometheus_port -%} + {% set prometheus_path = hostvars[host].deploy_dir -%} + {% set _ = all_prometheus.append("%s:%s%s" % (prometheus_ip, prometheus_port, prometheus_path)) -%} +{% endfor -%} {% set flag = "" %} {% if all_grafana -%} {% set flag = flag + " --grafana " + ','.join(all_grafana) -%} @@ -32,5 +40,8 @@ set -e {% if all_alertmanager -%} {% set flag = flag + " --alertmanager " + ','.join(all_alertmanager) -%} {% endif -%} +{% if all_prometheus %} + {% set flag = flag + " --prometheus " + ','.join(all_prometheus) -%} +{% endif -%} python2 dashboard_topo.py --pd {{ all_pd | join(',') }} {{ flag }} diff --git a/scripts/dashboard_topo.py b/scripts/dashboard_topo.py index 27b0273ea..65681f94f 100644 --- a/scripts/dashboard_topo.py +++ b/scripts/dashboard_topo.py @@ -9,7 +9,7 @@ import json import argparse -ComponentToRegister = ('alertmanager', 'grafana', 'pd') +ComponentToRegister = ('alertmanager', 'grafana', 'pd', 'prometheus') def parse_opts(): @@ -65,6 +65,8 @@ def request_topo(comp, topo, etcd_target): if topo is None: # if topo is None, do nothing return + if ',' in topo: + topo = topo.split(',')[0] ip, add = parse_address(topo) ip, port = ip.split(':') @@ -93,20 +95,17 @@ def concat_to_address(ip, port): args = parse_opts() # parse from args - # pd_address = concat_to_address(args.pd_host, args.pd_port) - # tidb_address = concat_to_address(args.tidb_host, args.tidb_port) - # alertmanager_address = concat_to_address(args.alertmanager_host, - # args.alertmanager_port) - # grafana_address = concat_to_address(args.grafana_host, args.grafana_port) pd_address = args.pd pd_address_zero, _ = parse_address(pd_address.split(',')[0]) alertmanager_address = args.alertmanager grafana_address = args.grafana + prometheus_address = args.prometheus mapping = { 'alertmanager': alertmanager_address, 'grafana': grafana_address, + 'prometheus': prometheus_address, } for comp in ComponentToRegister: