From 3b4c0a0cce803413d8465e0e32714924e8573897 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 5 Feb 2023 22:19:10 +0100 Subject: prometheus targets: some more refactoring - still not working... :( --- .../exporter/register/filter_plugins/prometheus.py | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py (limited to 'roles/monitoring/prometheus/exporter/register/filter_plugins') diff --git a/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py b/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py new file mode 100644 index 00000000..c29bce81 --- /dev/null +++ b/roles/monitoring/prometheus/exporter/register/filter_plugins/prometheus.py @@ -0,0 +1,36 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from functools import partial + +from ansible import errors + + +def prometheus_job_targets(vars, jobs): + try: + result = [] + for job in jobs: + multitarget_config_varname = 'prometheus_job_multitarget_' + job.replace('-', '_').replace('/', '__') + 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, + '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}) + return result + except Exception as e: + raise errors.AnsibleFilterError("prometheus_job_targets(): %s" % str(e)) + + +class FilterModule(object): + + ''' prometheus filters ''' + filter_map = { + 'prometheus_job_targets': prometheus_job_targets, + } + + def filters(self): + return self.filter_map -- cgit v1.2.3