From 3ab65485e88a0bc0fccf43eafcef4790b26ebdbf Mon Sep 17 00:00:00 2001
From: Evangelos Foutras <evangelos@foutrelis.com>
Date: Sat, 14 May 2022 10:04:58 +0300
Subject: [PATCH] prometheus: extend dns monitoring to all geo domains

---
 roles/prometheus/defaults/main.yml                |  4 ++--
 .../templates/blackbox.yml.j2                     | 15 +++++++++------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml
index 4f53dc492..b063259ac 100644
--- a/roles/prometheus/defaults/main.yml
+++ b/roles/prometheus/defaults/main.yml
@@ -75,8 +75,8 @@ blackbox_targets:
   smtp_starttls:
     - mail.archlinux.org:25
     - lists.archlinux.org:25
-  dns_geomirror_a: "{{ groups['geo_mirrors'] }}"
-  dns_geomirror_aaaa: "{{ groups['geo_mirrors'] }}"
+  geo_dns_geo.mirror.pkgbuild.com_a: "{{ groups['geo_mirrors'] }}"
+  geo_dns_geo.mirror.pkgbuild.com_aaaa: "{{ groups['geo_mirrors'] }}"
 matrix_metrics_endpoints:
   - homeserver
   - appservice
diff --git a/roles/prometheus_exporters/templates/blackbox.yml.j2 b/roles/prometheus_exporters/templates/blackbox.yml.j2
index 9ba1a2a51..9f78648bf 100644
--- a/roles/prometheus_exporters/templates/blackbox.yml.j2
+++ b/roles/prometheus_exporters/templates/blackbox.yml.j2
@@ -1,3 +1,4 @@
+#jinja2: lstrip_blocks: True
 modules:
   http_prometheus:
     prober: http
@@ -24,23 +25,25 @@ modules:
         - send: "EHLO prober\r"
         - expect: "^250"
         - send: "QUIT\r"
-  dns_geomirror_a:
+  {% for domain in geo_domains %}
+  geo_dns_{{ domain }}_a:
     prober: dns
     timeout: 5s
     dns:
-      query_name: geo.mirror.pkgbuild.com
+      query_name: {{ domain }}
       query_type: A
       preferred_ip_protocol: ip4
       validate_answer_rrs:
         fail_if_not_matches_regexp:
-          - geo\.mirror\.pkgbuild\.com\.\t.*\tIN\tA\t({{ groups['geo_mirrors'] | map('extract', hostvars, ['ipv4_address']) | join('|') | replace('.', '\.') }})
-  dns_geomirror_aaaa:
+          - {{ domain | replace('.', '\.') }}\.\t.*\tIN\tA\t({{ groups['geo_mirrors'] | map('extract', hostvars, ['ipv4_address']) | join('|') | replace('.', '\.') }})
+  geo_dns_{{ domain }}_aaaa:
     prober: dns
     timeout: 5s
     dns:
-      query_name: geo.mirror.pkgbuild.com
+      query_name: {{ domain }}
       query_type: AAAA
       preferred_ip_protocol: ip6
       validate_answer_rrs:
         fail_if_not_matches_regexp:
-          - geo\.mirror\.pkgbuild\.com\.\t.*\tIN\tAAAA\t({{ groups['geo_mirrors'] | map('extract', hostvars, ['ipv6_address']) | join('|') }})
+          - {{ domain | replace('.', '\.') }}\.\t.*\tIN\tAAAA\t({{ groups['geo_mirrors'] | map('extract', hostvars, ['ipv6_address']) | join('|') }})
+  {% endfor %}
-- 
GitLab