Merge pull request #116037 from petabyteboy/feature/jitsi-exporter

prometheus-jitsi-exporter: init at 0.2.18

authored by WilliButz and committed by GitHub 3971cda0 c282bba6

+88
+1
nixos/modules/services/monitoring/prometheus/exporters.nix
··· 31 "dovecot" 32 "fritzbox" 33 "json" 34 "keylight" 35 "knot" 36 "lnd"
··· 31 "dovecot" 32 "fritzbox" 33 "json" 34 + "jitsi" 35 "keylight" 36 "knot" 37 "lnd"
+40
nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
···
··· 1 + { config, lib, pkgs, options }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.prometheus.exporters.jitsi; 7 + in 8 + { 9 + port = 9700; 10 + extraOpts = { 11 + url = mkOption { 12 + type = types.str; 13 + default = "http://localhost:8080/colibri/stats"; 14 + description = '' 15 + Jitsi Videobridge metrics URL to monitor. 16 + This is usually /colibri/stats on port 8080 of the jitsi videobridge host. 17 + ''; 18 + }; 19 + interval = mkOption { 20 + type = types.str; 21 + default = "30s"; 22 + example = "1min"; 23 + description = '' 24 + How often to scrape new data 25 + ''; 26 + }; 27 + }; 28 + serviceOpts = { 29 + serviceConfig = { 30 + ExecStart = '' 31 + ${pkgs.prometheus-jitsi-exporter}/bin/jitsiexporter \ 32 + -url ${escapeShellArg cfg.url} \ 33 + -host ${cfg.listenAddress} \ 34 + -port ${toString cfg.port} \ 35 + -interval ${toString cfg.interval} \ 36 + ${concatStringsSep " \\\n " cfg.extraFlags} 37 + ''; 38 + }; 39 + }; 40 + }
+23
nixos/tests/prometheus-exporters.nix
··· 233 ''; 234 }; 235 236 json = { 237 exporterConfig = { 238 enable = true;
··· 233 ''; 234 }; 235 236 + jitsi = { 237 + exporterConfig = { 238 + enable = true; 239 + }; 240 + metricProvider = { 241 + systemd.services.prometheus-jitsi-exporter.after = [ "jitsi-videobridge2.service" ]; 242 + services.jitsi-videobridge = { 243 + enable = true; 244 + apis = [ "colibri" "rest" ]; 245 + }; 246 + }; 247 + exporterTest = '' 248 + wait_for_unit("jitsi-videobridge2.service") 249 + wait_for_open_port(8080) 250 + wait_for_unit("prometheus-jitsi-exporter.service") 251 + wait_for_open_port(9700) 252 + wait_until_succeeds( 253 + 'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"' 254 + ) 255 + succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'") 256 + ''; 257 + }; 258 + 259 json = { 260 exporterConfig = { 261 enable = true;
+23
pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
···
··· 1 + { lib, buildGoModule, fetchgit, nixosTests }: 2 + 3 + buildGoModule rec { 4 + pname = "jitsiexporter"; 5 + version = "0.2.18"; 6 + 7 + src = fetchgit { 8 + url = "https://git.xsfx.dev/prometheus/jitsiexporter"; 9 + rev = "v${version}"; 10 + sha256 = "1cf46wp96d9dwlwlffcgbcr0v3xxxfdv6il0zqkm2i7cfsfw0skf"; 11 + }; 12 + 13 + vendorSha256 = null; 14 + 15 + passthru.tests = { inherit (nixosTests.prometheus-exporters) jitsi; }; 16 + 17 + meta = with lib; { 18 + description = "Export Jitsi Videobridge metrics to Prometheus"; 19 + homepage = "https://git.xsfx.dev/prometheus/jitsiexporter"; 20 + license = licenses.mit; 21 + maintainers = with maintainers; [ petabyteboy ]; 22 + }; 23 + }
+1
pkgs/top-level/all-packages.nix
··· 18599 prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { }; 18600 prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { }; 18601 prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { }; 18602 prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { }; 18603 prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { }; 18604 prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };
··· 18599 prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { }; 18600 prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { }; 18601 prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { }; 18602 + prometheus-jitsi-exporter = callPackage ../servers/monitoring/prometheus/jitsi-exporter.nix { }; 18603 prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { }; 18604 prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { }; 18605 prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };