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 = { }; + }]) + "/"; }; })]; }