1{ config, lib, pkgs, options }:
2
3with lib;
4
5let
6 cfg = config.services.prometheus.exporters.jitsi;
7in
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}