instance: '{}'
""".format([addr.split(':')[0] + ':9100'],
dd.hostname)
+
+ # scrape alert managers
+ alertmgr_configs = ""
+ alertmgr_targets = []
+ for dd in self.cache.get_daemons_by_service('alertmanager'):
+ hi = self.inventory.get(dd.hostname, None)
+ if hi is None:
+ continue
+ addr = hi.get('addr', dd.hostname)
+ alertmgr_targets.append("'{}:9093'".format(addr.split(':')[0]))
+ if alertmgr_targets:
+ alertmgr_configs = """alerting:
+ alertmanagers:
+ - scheme: http
+ path_prefix: /alertmanager
+ static_configs:
+ - targets: [{}]
+""".format(", ".join(alertmgr_targets))
+
+ # generate the prometheus configuration
j = json.dumps({
'files': {
'prometheus.yml': """# generated by cephadm
evaluation_interval: 10s
rule_files:
- /etc/prometheus/alerting/*
+{alertmgr_configs}
scrape_configs:
- job_name: 'ceph'
static_configs:
""".format(
mgr_scrape_list=str(mgr_scrape_list),
node_configs=str(node_configs),
+ alertmgr_configs=str(alertmgr_configs)
),
},
})