tor-browser: fix desktop icon (#365780)
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / artifactory.nix
blob5b329117dea444e125921aac4513e59a63f9277e
2   config,
3   lib,
4   pkgs,
5   options,
6   ...
7 }:
9 let
10   cfg = config.services.prometheus.exporters.artifactory;
11   inherit (lib) mkOption types concatStringsSep;
14   port = 9531;
15   extraOpts = {
16     scrapeUri = mkOption {
17       type = types.str;
18       default = "http://localhost:8081/artifactory";
19       description = ''
20         URI on which to scrape JFrog Artifactory.
21       '';
22     };
24     artiUsername = mkOption {
25       type = types.str;
26       description = ''
27         Username for authentication against JFrog Artifactory API.
28       '';
29     };
31     artiPassword = mkOption {
32       type = types.str;
33       default = "";
34       description = ''
35         Password for authentication against JFrog Artifactory API.
36         One of the password or access token needs to be set.
37       '';
38     };
40     artiAccessToken = mkOption {
41       type = types.str;
42       default = "";
43       description = ''
44         Access token for authentication against JFrog Artifactory API.
45         One of the password or access token needs to be set.
46       '';
47     };
48   };
49   serviceOpts = {
50     serviceConfig = {
51       ExecStart = ''
52         ${pkgs.prometheus-artifactory-exporter}/bin/artifactory_exporter \
53           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
54           --artifactory.scrape-uri ${cfg.scrapeUri} \
55           ${concatStringsSep " \\\n  " cfg.extraFlags}
56       '';
57       Environment = [
58         "ARTI_USERNAME=${cfg.artiUsername}"
59         "ARTI_PASSWORD=${cfg.artiPassword}"
60         "ARTI_ACCESS_TOKEN=${cfg.artiAccessToken}"
61       ];
62     };
63   };