From e0423d7e0bd37e6b1fafca82ba075327b098ff43 Mon Sep 17 00:00:00 2001
From: Kristian Klausen <kristian@klausen.dk>
Date: Sat, 9 Mar 2024 21:55:52 +0100
Subject: [PATCH] Make the "Geo Mirrors" dashboard and metrics publicly
 available

This may be interesting for our mirror administrators and mirror owners.

I tried backfilling the data, but was unsuccessful, due to a bug[1]. We
may try again if/when the bug is fixed.

[1] https://github.com/prometheus/prometheus/issues/13747
---
 .../grafana/files/public-dashboards/geo_mirrors.json |  1 +
 roles/prometheus/defaults/main.yml                   | 12 ++++++++----
 roles/prometheus/templates/prometheus.yml.j2         |  2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)
 create mode 120000 roles/grafana/files/public-dashboards/geo_mirrors.json

diff --git a/roles/grafana/files/public-dashboards/geo_mirrors.json b/roles/grafana/files/public-dashboards/geo_mirrors.json
new file mode 120000
index 000000000..8057645ab
--- /dev/null
+++ b/roles/grafana/files/public-dashboards/geo_mirrors.json
@@ -0,0 +1 @@
+../dashboards/geo_mirrors.json
\ No newline at end of file
diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml
index 3ba228c1b..85bc59fc7 100644
--- a/roles/prometheus/defaults/main.yml
+++ b/roles/prometheus/defaults/main.yml
@@ -4,14 +4,18 @@ prometheus_domain: "{{ hostvars['dashboards.archlinux.org']['wireguard_address']
 prometheus_mysqld_exporter_port: '9104'
 prometheus_receive_only: false
 prometheus_remote_write_relabel_configs:
-  - label: job
+  - label: [job]
     regex: debuginfod
-  - label: job
+  - label: [job]
     regex: aurweb
-  - label: job
+  - label: [job]
     regex: goaurrpc
-  - label: __name__
+  - label: [__name__]
     regex: "archive_directory_size_bytes|archive_total_packages|rebuilderd_results|rebuilderd_workers|rebuilderd_queue_length|repository_directory_size_bytes|aur_.+|flyspray_issues"
+  - label: [__name__, device, instance]
+    regex: "node_network_transmit_bytes_total;en.*;.*\\\\.mirror\\\\.pkgbuild\\\\.com"
+  - label: [__name__, instance]
+    regex: "pdns_auth_udp_queries;.*\\\\.mirror\\\\.pkgbuild\\\\.com"
 
 blackbox_targets:
   http_prometheus:
diff --git a/roles/prometheus/templates/prometheus.yml.j2 b/roles/prometheus/templates/prometheus.yml.j2
index 49734f5b7..c872a178d 100644
--- a/roles/prometheus/templates/prometheus.yml.j2
+++ b/roles/prometheus/templates/prometheus.yml.j2
@@ -18,7 +18,7 @@ remote_write:
   {% for relabel_config in prometheus_remote_write_relabel_configs %}
   - url: http://{{ prometheus_domain }}:9090/api/v1/write
     write_relabel_configs:
-      - source_labels: [{{ relabel_config.label }}]
+      - source_labels: [{{ relabel_config.label | join(',') }}]
         regex: "{{ relabel_config.regex }}"
         action: keep
     basic_auth:
-- 
GitLab