From d0cd731b81a1e95edef869a9151176a1f173303f Mon Sep 17 00:00:00 2001 From: Jean-Marie Mineau Date: Thu, 23 Sep 2021 17:57:01 +0200 Subject: [PATCH] use hostname for instance label instead of ip --- roles/prometheus-node-exporter/tasks/main.yml | 24 ++++++++++--------- roles/prometheus/templates/prometheus.yml | 5 +++- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/roles/prometheus-node-exporter/tasks/main.yml b/roles/prometheus-node-exporter/tasks/main.yml index 6dda7ad..e0490fa 100644 --- a/roles/prometheus-node-exporter/tasks/main.yml +++ b/roles/prometheus-node-exporter/tasks/main.yml @@ -96,14 +96,16 @@ set_fact: server_target: "{{ server_target_file['content'] | b64decode | from_json }}" -- name: Add the node to the targets - set_fact: - server_target: "[{{ server_target[0] | combine({'targets': [lan_address]}, list_merge='append_rp') }}]" - when: lan_address not in server_target.0.targets - -- name: Put the new target list - copy: - content: "{{ server_target | to_nice_json }}" - dest: /etc/prometheus/node-targets.json - delegate_to: "{{ appointed_prometheus_server }}" - +- name: Register the node to the prometheus server + block: + - name: Add the node to the targets + set_fact: + new_server_target: "[{{ server_target[0] | combine({'targets': [lan_address + '/' + ansible_facts['nodename']]}, list_merge='append_rp') }}]" + + - name: Put the new target list + copy: + content: "{{ new_server_target | to_nice_json }}" + dest: /etc/prometheus/node-targets.json + delegate_to: "{{ appointed_prometheus_server }}" + when: (lan_address + '/' + ansible_facts['nodename']) not in server_target.0.targets + diff --git a/roles/prometheus/templates/prometheus.yml b/roles/prometheus/templates/prometheus.yml index 985620d..0d59dac 100644 --- a/roles/prometheus/templates/prometheus.yml +++ b/roles/prometheus/templates/prometheus.yml @@ -37,13 +37,16 @@ scrape_configs: - files: - '/etc/prometheus/node-targets.json' relabel_configs: - # Do not put :9100 in instance name, rather here + # Use hostnames instead of ip for the instance label - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance + regex: '.*/(.*)' + replacement: '$1' - source_labels: [__param_target] target_label: __address__ + regex: '(.*)/.*' replacement: '$1:9100' scheme: https tls_config: