summaryrefslogtreecommitdiff
path: root/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py')
-rw-r--r--roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py b/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py
index e8067a72..27ba29e6 100644
--- a/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py
+++ b/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py
@@ -6,6 +6,11 @@ from functools import partial
from ansible import errors
+_multitarget_id_map_ = {
+ "blackbox/probe": (lambda vars, config: (vars['inventory_hostname'], "%s-%s" % (config['svc_kind'], config['svc_name']))),
+}
+
+
def prometheus_job_targets(jobs, vars):
try:
result = []
@@ -14,15 +19,20 @@ def prometheus_job_targets(jobs, vars):
if multitarget_config_varname in vars:
for exporter_hostname, configs in vars[multitarget_config_varname].items():
for config in configs:
- result.append({'job': job, 'instance': config['instance'], 'enabled': True,
+ if job in _multitarget_id_map_:
+ instance, id = _multitarget_id_map_[job](vars, config)
+ else:
+ id = config['instance']
+ instance = config['instance']
+ result.append({'_id': id, 'job': job, 'instance': instance, 'enabled': True,
'exporter_hostname': exporter_hostname, 'config': config})
else:
enabled = job in vars['prometheus_exporters_default'] or job in vars['prometheus_exporters_extra']
- result.append({'job': job, 'instance': vars['inventory_hostname'], 'enabled': enabled})
+ result.append({'_id': vars['inventory_hostname'], 'job': job, 'instance': vars['inventory_hostname'], 'enabled': enabled})
return result
except Exception as e:
- raise errors.AnsibleFilterError("prometheus_job_targets(): %s" % str(e))
+ raise errors.AnsibleFilterError("prometheus_job_targets(): %s" % repr(e))
class FilterModule(object):