forked from mirrors/nixpkgs
b08b0bcbbe
We don't want to ignore config that can mess up machines. In general this should always fail evaluation, as you think you are changing behaviour and don't, which can easily create run-time errors we can catch early.
55 lines
1.5 KiB
Nix
55 lines
1.5 KiB
Nix
{ config, lib, pkgs, options }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.services.prometheus.exporters.nginx;
|
|
in
|
|
{
|
|
port = 9113;
|
|
extraOpts = {
|
|
scrapeUri = mkOption {
|
|
type = types.str;
|
|
default = "http://localhost/nginx_status";
|
|
description = ''
|
|
Address to access the nginx status page.
|
|
Can be enabled with services.nginx.statusPage = true.
|
|
'';
|
|
};
|
|
telemetryPath = mkOption {
|
|
type = types.str;
|
|
default = "/metrics";
|
|
description = ''
|
|
Path under which to expose metrics.
|
|
'';
|
|
};
|
|
sslVerify = mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = ''
|
|
Whether to perform certificate verification for https.
|
|
'';
|
|
};
|
|
|
|
};
|
|
serviceOpts = {
|
|
serviceConfig = {
|
|
ExecStart = ''
|
|
${pkgs.prometheus-nginx-exporter}/bin/nginx-prometheus-exporter \
|
|
--nginx.scrape-uri '${cfg.scrapeUri}' \
|
|
--nginx.ssl-verify ${toString cfg.sslVerify} \
|
|
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
|
|
--web.telemetry-path ${cfg.telemetryPath} \
|
|
${concatStringsSep " \\\n " cfg.extraFlags}
|
|
'';
|
|
};
|
|
};
|
|
imports = [
|
|
(mkRenamedOptionModule [ "telemetryEndpoint" ] [ "telemetryPath" ])
|
|
(mkRemovedOptionModule [ "insecure" ] ''
|
|
This option was replaced by 'prometheus.exporters.nginx.sslVerify'.
|
|
'')
|
|
({ options.warnings = options.warnings; options.assertions = options.assertions; })
|
|
];
|
|
}
|