From 539f23daf05c81d4239b068254ff61598376da9e Mon Sep 17 00:00:00 2001 From: Seth Flynn Date: Sat, 15 Feb 2025 00:11:43 -0500 Subject: atlas: collect more metrics for local services --- modules/nixos/mixins/forgejo.nix | 8 +++++-- systems/atlas/miniflux.nix | 27 ++++++++++++---------- systems/atlas/victoria-metrics.nix | 47 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 14 deletions(-) diff --git a/modules/nixos/mixins/forgejo.nix b/modules/nixos/mixins/forgejo.nix index a897bfb..1e575ca 100644 --- a/modules/nixos/mixins/forgejo.nix +++ b/modules/nixos/mixins/forgejo.nix @@ -21,13 +21,17 @@ in settings = { server = { - PROTOCOL = "http+unix"; + PROTOCOL = "http"; DOMAIN = lib.mkDefault ("git." + config.networking.domain); ROOT_URL = "https://" + forgejoCfg.settings.server.DOMAIN + "/"; DISABLE_SSH = lib.mkDefault true; }; + metrics = { + ENABLED = true; + }; + oauth2_client = { ENABLE_AUTO_REGISTRATION = lib.mkDefault true; }; @@ -50,7 +54,7 @@ in (lib.mkIf forgejoCfg.enable { services.nginx.virtualHosts.${forgejoCfg.settings.server.DOMAIN} = { locations."/" = { - proxyPass = "http://unix:${forgejoCfg.settings.server.HTTP_ADDR}"; + proxyPass = "http://${forgejoCfg.settings.server.HTTP_ADDR}:${toString forgejoCfg.settings.server.HTTP_PORT}"; }; }; diff --git a/systems/atlas/miniflux.nix b/systems/atlas/miniflux.nix index 5fd22f2..14c9fc5 100644 --- a/systems/atlas/miniflux.nix +++ b/systems/atlas/miniflux.nix @@ -1,6 +1,5 @@ { config, - lib, secretsDir, ... }: @@ -14,28 +13,32 @@ adminCredentialsFile = config.age.secrets.miniflux.path; config = { BASE_URL = "https://miniflux.${config.networking.domain}"; + LISTEN_ADDR = "localhost:7000"; + METRICS_COLLECTOR = 1; }; }; nginx.virtualHosts = { "miniflux.getchoo.com" = { locations."/" = { - proxyPass = "http://unix:${lib.head config.systemd.sockets.miniflux.listenStreams}"; + proxyPass = "http://${config.services.miniflux.config.LISTEN_ADDR}"; }; }; }; }; - # Create the socket manually to ensure NGINX has permission for the socket's parent directory - # ...since for some reason Miniflux will not give it the same `0777` permission as the socket itself - systemd = { - services.miniflux = { - requires = [ "miniflux.socket" ]; - }; + /* + # Create the socket manually to ensure NGINX has permission for the socket's parent directory + # ...since for some reason Miniflux will not give it the same `0777` permission as the socket itself + systemd = { + services.miniflux = { + requires = [ "miniflux.socket" ]; + }; - sockets.miniflux = { - wantedBy = [ "sockets.target" ]; - listenStreams = [ "/run/miniflux.sock" ]; + sockets.miniflux = { + wantedBy = [ "sockets.target" ]; + listenStreams = [ "/run/miniflux.sock" ]; + }; }; - }; + */ } diff --git a/systems/atlas/victoria-metrics.nix b/systems/atlas/victoria-metrics.nix index 25f0e57..fba00ae 100644 --- a/systems/atlas/victoria-metrics.nix +++ b/systems/atlas/victoria-metrics.nix @@ -1,4 +1,5 @@ { + config, lib, inputs, ... @@ -40,11 +41,57 @@ in prometheusConfig = { scrape_configs = [ + { + job_name = "forgejo"; + metrics_path = "/metrics"; + static_configs = [ + { + targets = [ + "http://${config.services.forgejo.settings.server.HTTP_ADDR}:${toString config.services.forgejo.settings.server.HTTP_PORT}" + ]; + labels.type = "forgejo"; + } + ]; + } + + { + job_name = "miniflux"; + metrics_path = "/metrics"; + static_configs = [ + { + targets = [ "http://${config.services.miniflux.config.LISTEN_ADDR}" ]; + labels.type = "miniflux"; + } + ]; + } + { job_name = "node-exporter"; metrics_path = "/metrics"; static_configs = remoteNodes; } + + { + job_name = "victoria-logs"; + metrics_path = "/metrics"; + static_configs = [ + { + targets = [ "localhost:9428" ]; + labels.type = "victoria-logs"; + } + ]; + } + + { + job_name = "victoria-metrics"; + metrics_path = "/metrics"; + static_configs = [ + { + targets = [ "localhost${config.services.victoriametrics.listenAddress}" ]; + labels.type = "victoria-logs"; + } + ]; + } ]; }; }; -- cgit v1.2.3