tor-browser: fix desktop icon (#365780)
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / json.nix
blob46aed2ba479340e9f16fcec2bba10e27c980647e
2   config,
3   lib,
4   pkgs,
5   options,
6   ...
7 }:
9 let
10   cfg = config.services.prometheus.exporters.json;
11   inherit (lib)
12     mkOption
13     types
14     escapeShellArg
15     concatStringsSep
16     mkRemovedOptionModule
17     ;
20   port = 7979;
21   extraOpts = {
22     configFile = mkOption {
23       type = types.path;
24       description = ''
25         Path to configuration file.
26       '';
27     };
28   };
29   serviceOpts = {
30     serviceConfig = {
31       ExecStart = ''
32         ${pkgs.prometheus-json-exporter}/bin/json_exporter \
33           --config.file ${escapeShellArg cfg.configFile} \
34           --web.listen-address="${cfg.listenAddress}:${toString cfg.port}" \
35           ${concatStringsSep " \\\n  " cfg.extraFlags}
36       '';
37     };
38   };
39   imports = [
40     (mkRemovedOptionModule [ "url" ] ''
41       This option was removed. The URL of the endpoint serving JSON
42       must now be provided to the exporter by prometheus via the url
43       parameter `target'.
45       In prometheus a scrape URL would look like this:
47         http://some.json-exporter.host:7979/probe?target=https://example.com/some/json/endpoint
49       For more information, take a look at the official documentation
50       (https://github.com/prometheus-community/json_exporter) of the json_exporter.
51     '')
52     ({
53       options.warnings = options.warnings;
54       options.assertions = options.assertions;
55     })
56   ];