ansible-role-prometheus-agent/templates/node-scraper.j2
2024-02-26 22:25:30 +01:00

82 lines
3.2 KiB
Django/Jinja

- job_name: "prometheus-agent - node-exporter : {{ inventory_hostname }}"
scheme: https
{% for i in ['scrape_timeout', 'scrape_interval'] if prometheus_agent[i] %}
{{ i }}: {{ prometheus_agent[i] }}
{% endfor %}
static_configs:
- targets:
- {{ inventory_hostname }}:{{ prometheus_agent.scrapers[item].nodeexporter }}
labels: {{ merged_prometheus_labels|to_json }}
tls_config:
ca_file: /etc/prometheus/targetcerts/{{ inventory_hostname }}.crt
cert_file: /etc/ssl/prometheus_scraper.crt
key_file: /etc/ssl/private/prometheus_scraper.key
relabel_configs:
- source_labels: [__address__]
regex: '([^:]+):\d+'
target_label: instance
- replacement: 'node'
target_label: job
{% if prometheus_agent.scrapers[item].blackbox|d(False) and prometheus_agent.agents.blackbox.enable %}
{% for j in prometheus_agent.agents.blackbox.jobs %}
{% set job=prometheus_agent.agents.blackbox.jobs[j] %}
- job_name: "prometheus-agent - blackbox - {{ j }} : {{ inventory_hostname }}"
scheme: https
metrics_path: /probe
{% for i in ['scrape_timeout', 'scrape_interval'] if (prometheus_agent|combine(job))[i] %}
{{ i }}: {{ (prometheus_agent|combine(job))[i] }}
{% endfor %}
params:
module: [{{ job.module }}]
static_configs:
- targets:
{% for t in job.targets %}
- {{ t }}
{% endfor %}
labels: {{ merged_prometheus_labels|combine(job.labels|d({}))|to_json }}
tls_config:
ca_file: /etc/prometheus/targetcerts/{{ inventory_hostname }}.crt
cert_file: /etc/ssl/prometheus_scraper.crt
key_file: /etc/ssl/private/prometheus_scraper.key
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: target
- replacement: 'blackbox'
target_label: job
- replacement: '{{ inventory_hostname }}'
target_label: instance
- replacement: '{{ job.module }}'
target_label: module
- target_label: __address__
replacement: {{ inventory_hostname }}:{{ prometheus_agent.scrapers[item].blackbox }}
{% endfor %}
{% endif %}
{% for j in prometheus_agent.scrapers[item].proxy|d({}) %}
- job_name: "prometheus-agent - proxy - {{ j }} : {{ inventory_hostname }}"
scheme: https
{% for i in ['scrape_timeout', 'scrape_interval', 'metrics_path', 'basic_auth'] if (i in prometheus_agent and prometheus_agent[i]) or (i in prometheus_agent.agents.proxy.mappings[j]) %}
{{ i }}: {{ prometheus_agent.agents.proxy.mappings[j].get(i, prometheus_agent[i])|to_json }}
{% endfor %}
params:
{% for i in prometheus_agent.agents.proxy.mappings[j].params|d({}) %}
{{ i|to_json }}: {{ prometheus_agent.agents.proxy.mappings[j].params[i]|to_json }}
{% endfor %}
static_configs:
- targets:
- {{ inventory_hostname }}:{{ prometheus_agent.scrapers[item].proxy[j] }}
labels: {{ merged_prometheus_labels|combine(prometheus_agent.agents.proxy.mappings[j].labels|d({}))|to_json }}
tls_config:
ca_file: /etc/prometheus/targetcerts/{{ inventory_hostname }}.crt
cert_file: /etc/ssl/prometheus_scraper.crt
key_file: /etc/ssl/private/prometheus_scraper.key
relabel_configs:
- source_labels: [__address__]
regex: '([^:]+):\d+'
target_label: instance
- replacement: '{{ prometheus_agent.agents.proxy.mappings[j].job }}'
target_label: job
{% endfor %}