summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-05-28 18:52:45 +0200
committerRory& <root@rory.gay>2026-05-28 18:52:45 +0200
commita6e6be065e449f3bf5c5dc5cbe0d2e0c5634ad14 (patch)
treeafecc8aaaf72bb7d436badf86d74230107f0976f
parentAdd grafana dashboard (diff)
downloadserver-ts-a6e6be065e449f3bf5c5dc5cbe0d2e0c5634ad14.tar.xz
Nix: prometheus support
-rw-r--r--nix/modules/default/default.nix1
-rw-r--r--nix/modules/default/integration-prometheus.nix47
2 files changed, 48 insertions, 0 deletions
diff --git a/nix/modules/default/default.nix b/nix/modules/default/default.nix

index 876ad941..6c6437a8 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 00000000..3917bb38 --- /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); + }; +}