From efed13c8106b0d3cb7cdc2dda7a311769b876142 Mon Sep 17 00:00:00 2001 From: Daniel Olsen Date: Fri, 20 Jan 2023 05:04:16 +0100 Subject: [PATCH] Revert "metrics: stop parsing prometheus labels from url" This reverts commit 1524b6b10c7bd233f8435407b4fb575c9b91d8db. Prometheus doesn't allow scraping from uris only socketAddresses The relabeling is to change the internal labels to trick it to read from a url --- hosts/ildkule/services/metrics/prometheus.nix | 27 +++++++++++++++++++ hosts/jokum/services/matrix/synapse.nix | 23 +++++++--------- 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/hosts/ildkule/services/metrics/prometheus.nix b/hosts/ildkule/services/metrics/prometheus.nix index 18b84c5..90bba88 100644 --- a/hosts/ildkule/services/metrics/prometheus.nix +++ b/hosts/ildkule/services/metrics/prometheus.nix @@ -34,6 +34,33 @@ in { url = "https://matrix.pvv.ntnu.no/metrics/config.json"; } ]; + relabel_configs = [ + { + source_labels = [ "__address__" ]; + regex = "[^/]+(/.*)"; + target_label = "__metrics_path__"; + } + { + source_labels = [ "__address__" ]; + regex = "([^/]+)/.*"; + target_label = "instance"; + } + { + source_labels = [ "__address__" ]; + regex = "[^/]+\\/+[^/]+/(.*)/\\d+$"; + target_label = "job"; + } + { + source_labels = [ "__address__" ]; + regex = "[^/]+\\/+[^/]+/.*/(\\d+)$"; + target_label = "index"; + } + { + source_labels = [ "__address__" ]; + regex = "([^/]+)/.*"; + target_label = "__address__"; + } + ]; } ]; ruleFiles = [ rules/synapse-v2.rules ]; diff --git a/hosts/jokum/services/matrix/synapse.nix b/hosts/jokum/services/matrix/synapse.nix index 81e551f..195cfb7 100644 --- a/hosts/jokum/services/matrix/synapse.nix +++ b/hosts/jokum/services/matrix/synapse.nix @@ -206,22 +206,17 @@ in { }; locations."/metrics/" = let - # See https://github.com/matrix-org/synapse/blob/develop/docs/metrics-howto.md - staticConfigs = lib.pipe cfg.workers.instances [ + endpoints = lib.pipe cfg.workers.instances [ (lib.mapAttrsToList (_: v: v)) - # Add metrics for main process to the list of workers - (x: x ++ [{ type = "master"; index = 1; }]) - (map (w: { - targets = [ "matrix.pvv.ntnu.no/metrics/${w.type}/${toString w.index}" ]; - labels = { - instance = "matrix.pvv.ntnu.no"; - job = w.type; - index = toString w.index; - }; - })) - ]; + (map (w: "${w.type}/${toString w.index}")) + (map (w: "matrix.pvv.ntnu.no/metrics/${w}")) + ] ++ [ "matrix.pvv.ntnu.no/metrics/master/1" ]; in { - alias = (pkgs.writeTextDir "/config.json" (builtins.toJSON staticConfigs)) + "/"; + alias = pkgs.writeTextDir "/config.json" + (builtins.toJSON [ + { targets = endpoints; + labels = { }; + }]) + "/"; }; })]; }