diff options
author | Robin Gloster <mail@glob.in> | 2016-07-26 14:43:45 +0000 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2017-01-09 15:20:26 +0100 |
commit | 39e8eaf8b6f985fcae5931bda39679d657fea1ed (patch) | |
tree | a0b71b4c0349206981ed080c173e169b85c1a8c0 /nixos/modules/services/monitoring | |
parent | f1b8c3b1190fdf213b8944e8963d1623b432b9ac (diff) | |
download | nixlib-39e8eaf8b6f985fcae5931bda39679d657fea1ed.tar nixlib-39e8eaf8b6f985fcae5931bda39679d657fea1ed.tar.gz nixlib-39e8eaf8b6f985fcae5931bda39679d657fea1ed.tar.bz2 nixlib-39e8eaf8b6f985fcae5931bda39679d657fea1ed.tar.lz nixlib-39e8eaf8b6f985fcae5931bda39679d657fea1ed.tar.xz nixlib-39e8eaf8b6f985fcae5931bda39679d657fea1ed.tar.zst nixlib-39e8eaf8b6f985fcae5931bda39679d657fea1ed.zip |
prometheus module: add nginxExporter
Diffstat (limited to 'nixos/modules/services/monitoring')
-rw-r--r-- | nixos/modules/services/monitoring/prometheus/nginx-exporter.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/nixos/modules/services/monitoring/prometheus/nginx-exporter.nix b/nixos/modules/services/monitoring/prometheus/nginx-exporter.nix new file mode 100644 index 000000000000..923b6db74107 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/nginx-exporter.nix @@ -0,0 +1,58 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.prometheus.nginxExporter; +in { + options = { + services.prometheus.nginxExporter = { + enable = mkEnableOption "prometheus nginx exporter"; + + port = mkOption { + type = types.int; + default = 9113; + description = '' + Port to listen on. + ''; + }; + + listenAddress = mkOption { + type = types.string; + default = "0.0.0.0"; + description = '' + Address to listen on. + ''; + }; + + scrapeUri = mkOption { + type = types.string; + default = "http://localhost/nginx_status"; + description = '' + Address to access the nginx status page. + Can be enabled with services.nginx.statusPage = true. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + networking.firewall.allowedTCPPorts = [ cfg.port ]; + + systemd.services.prometheus-nginx-exporter = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "nginx.service" ]; + script = '' + ${pkgs.prometheus-nginx-exporter.bin}/bin/nginx_exporter \ + -telemetry.address ${cfg.listenAddress}:${toString cfg.port} \ + -nginx.scrape_uri ${cfg.scrapeUri} + ''; + serviceConfig = { + User = "nobody"; + Restart = "always"; + PrivateTmp = true; + WorkingDirectory = /tmp; + }; + }; + }; +} |