From 0494c4907a678ef0e0c030c39d1670e61e8b13d6 Mon Sep 17 00:00:00 2001 From: nd Date: Sat, 30 May 2020 14:10:52 +0200 Subject: [PATCH] started support for more then node exporter --- defaults/main.yml | 12 ++++++++---- templates/node-exporter.j2 | 4 +--- templates/node-scraper.j2 | 6 +++--- templates/stunnel-client.conf.j2 | 6 +++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index f14cec0..bf67ebe 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -3,10 +3,14 @@ prometheus_agent: mode: stunnel manage: yes pki: ~ - args: - 'web.listen-address': "[::1]:9100" + agents: + nodeexporter: + args: + 'web.listen-address': "[::1]:9100" + proxy: + mappings: {} + scrape_timeout: ~ + scrape_interval: ~ scrapers: {} ansible_groups_as_labels: False labels: {} - scrape_timeout: ~ - scrape_interval: ~ diff --git a/templates/node-exporter.j2 b/templates/node-exporter.j2 index 48acf3c..f15d88b 100644 --- a/templates/node-exporter.j2 +++ b/templates/node-exporter.j2 @@ -2,9 +2,7 @@ # Due to shell scaping, to pass backslashes for regexes, you need to double # them (\\d for \d). If running under systemd, you need to double them again # (\\\\d to mean \d), and escape newlines too. -ARGS="{% for i in prometheus_agent.args %} --{{ i }}{% if prometheus_agent.args[i] and prometheus_agent.args[i] != {} %}={{ prometheus_agent.args[i] }}{% endif %} {% endfor %}" - -#{{ prometheus_agent.args.keys()|list|join(' ') }}" +ARGS="{% for i in prometheus_agent.agents.nodeexporter.args %} --{{ i }}{% if prometheus_agent.agents.nodeexporter.args[i] and prometheus_agent.agents.nodeexporter.args[i] != {} %}={{ prometheus_agent.agents.nodeexporter.args[i] }}{% endif %} {% endfor %}" # Prometheus-node-exporter supports the following options: # diff --git a/templates/node-scraper.j2 b/templates/node-scraper.j2 index 6a093ae..b3d614e 100644 --- a/templates/node-scraper.j2 +++ b/templates/node-scraper.j2 @@ -1,11 +1,11 @@ -- job_name: prometheus-agent {{ inventory_hostname }} +- 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] }} + - {{ inventory_hostname }}:{{ prometheus_agent.scrapers[item].nodeexporter }} labels: {{ merged_prometheus_labels|to_json }} tls_config: ca_file: /etc/prometheus/targetcerts/{{ inventory_hostname }}.crt @@ -15,5 +15,5 @@ - source_labels: [__address__] regex: '([^:]+):\d+' target_label: instance - - replacement: 'prometheus-agent' + - replacement: 'node' target_label: job diff --git a/templates/stunnel-client.conf.j2 b/templates/stunnel-client.conf.j2 index 4312e19..2d11fee 100644 --- a/templates/stunnel-client.conf.j2 +++ b/templates/stunnel-client.conf.j2 @@ -1,11 +1,11 @@ sslVersionMin = TLSv1.2 -{% for i in prometheus_agent.scrapers %} +{% for i in prometheus_agent.scrapers if "nodeexporter" in prometheus_agent.scrapers[i]%} [scraper {{ i }}] client = no requireCert = yes -accept = {{ prometheus_agent.scrapers[i] }} -connect = {{ prometheus_agent.args['web.listen-address']|replace('[', '')|replace(']', '') }} +accept = {{ prometheus_agent.scrapers[i].nodeexporter }} +connect = {{ prometheus_agent.agents.nodeexporter.args['web.listen-address']|replace('[', '')|replace(']', '') }} cert = /etc/ssl/prometheus_agent.crt key = /etc/ssl/private/prometheus_agent.key verifyPeer = yes