From a6e6be065e449f3bf5c5dc5cbe0d2e0c5634ad14 Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 28 May 2026 18:52:45 +0200 Subject: [PATCH] Nix: prometheus support --- nix/modules/default/default.nix | 1 + .../default/integration-prometheus.nix | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 nix/modules/default/integration-prometheus.nix diff --git a/nix/modules/default/default.nix b/nix/modules/default/default.nix index 876ad941a..6c6437a85 100644 --- a/nix/modules/default/default.nix +++ b/nix/modules/default/default.nix @@ -18,6 +18,7 @@ in { imports = [ ./integration-nginx.nix + ./integration-prometheus.nix ./users.nix (import ./gw-sharding.nix self) (import ./pion-sfu.nix self) diff --git a/nix/modules/default/integration-prometheus.nix b/nix/modules/default/integration-prometheus.nix new file mode 100644 index 000000000..3917bb38a --- /dev/null +++ b/nix/modules/default/integration-prometheus.nix @@ -0,0 +1,47 @@ +{ + config, + lib, + ... +}: + +let + cfg = config.services.spacebarchat-server; +in +{ + options.services.spacebarchat-server.prometheus = { + enable = lib.mkEnableOption "prometheus integration"; + }; + + config = lib.mkIf (cfg.enable && cfg.prometheus.enable) { + services.prometheus.scrapeConfigs = [ + { + job_name = "spacebar-api-${builtins.toString cfg.apiEndpoint.localPort}"; + scrape_interval = "1s"; + static_configs = [ + { targets = [ "localhost:${builtins.toString cfg.apiEndpoint.localPort}" ]; } + ]; + } + { + job_name = "spacebar-gateway-${builtins.toString cfg.gatewayEndpoint.localPort}"; + scrape_interval = "1s"; + static_configs = [ + { targets = [ "localhost:${builtins.toString cfg.gatewayEndpoint.localPort}" ]; } + ]; + } + { + job_name = "spacebar-cdn-${builtins.toString cfg.cdnEndpoint.localPort}"; + scrape_interval = "1s"; + static_configs = [ + { targets = [ "localhost:${builtins.toString cfg.cdnEndpoint.localPort}" ]; } + ]; + } + ] + ++ (lib.map (port: { + job_name = "spacebar-gateway-${builtins.toString port}"; + scrape_interval = "1s"; + static_configs = [ + { targets = [ "localhost:${builtins.toString port}" ]; } + ]; + }) cfg.extraGatewayPorts); + }; +}