at 25.11-pre 1.6 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 options, 6 ... 7}: 8 9let 10 cfg = config.services.prometheus.exporters.artifactory; 11 inherit (lib) mkOption types concatStringsSep; 12in 13{ 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 }; 23 24 artiUsername = mkOption { 25 type = types.str; 26 description = '' 27 Username for authentication against JFrog Artifactory API. 28 ''; 29 }; 30 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 }; 39 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 }; 64}