# {{ ansible_managed }} global: scrape_interval: 15s evaluation_interval: 15s {% if prometheus_server_external_labels is defined %} external_labels: {% for name, value in prometheus_server_external_labels.items() %} {{ name }}: {{ value }} {% endfor %} {% endif %} rule_files: - /etc/prometheus/rules/*.yml {% for subdir in (prometheus_server_jobs | select('match', '.*/.*') | map('dirname') | unique) %} - /etc/prometheus/rules/{{ subdir }}/*.yml {% endfor %} {% if prometheus_server_alertmanager is defined %} alerting: alertmanagers: - static_configs: - targets: ['{{ prometheus_server_alertmanager.url }}'] {% if 'path_prefix' in prometheus_server_alertmanager %} path_prefix: '{{ prometheus_server_alertmanager.path_prefix }}' {% endif %} {% if 'basic_auth' in prometheus_server_alertmanager %} basic_auth: username: '{{ prometheus_server_alertmanager.basic_auth.username }}' password_file: '/etc/prometheus/prometheus-alertmanager.password' {% endif %} {% endif %} scrape_configs: - job_name: 'prometheus' {% if prometheus_server_web_route_prefix is defined or prometheus_server_web_external_url is defined %} metrics_path: '{{ (prometheus_server_web_route_prefix | default(prometheus_server_web_external_url | default('') | urlsplit('path')), 'metrics') | path_join }}' {% endif %} {% if prometheus_server_selfscraping_auth is defined %} basic_auth: username: '{{ prometheus_server_selfscraping_auth.username }}' password_file: '/etc/prometheus/prometheus-selfscraping.password' {% endif %} static_configs: - targets: ['localhost:9090'] labels: instance: '{{ inventory_hostname }}' {% if prometheus_server_alertmanager is defined %} - job_name: 'alertmanager' {% if 'path_prefix' in prometheus_server_alertmanager %} metrics_path: '{{ (prometheus_server_alertmanager.path_prefix, 'metrics') | path_join }}' {% endif %} {% if 'basic_auth' in prometheus_server_alertmanager %} basic_auth: username: '{{ prometheus_server_alertmanager.basic_auth.username }}' password_file: '/etc/prometheus/prometheus-alertmanager.password' {% endif %} static_configs: - targets: ['{{ prometheus_server_alertmanager.url }}'] {% endif %} {% for job in (prometheus_server_jobs) %} {% include lookup('first_found', {'paths': ['templates/jobs'], 'files': [job + '.j2', 'generic.j2']}) | relpath(template_fullpath | dirname) %}{{ '' }} {% endfor %} {% if prometheus_server_jobs_extra is defined %} {{ prometheus_server_jobs_extra | indent(2) }} {% endif %}