From a560936cabdc339a75a6ab9d665f296880d0e39a Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Fri, 25 Sep 2020 12:24:09 +0200 Subject: nixos/prometheus-exporters/openvpn: init Co-Authored-By: Franz Pletz Co-Authored-By: Robin Gloster --- .../monitoring/prometheus/exporters/openvpn.nix | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix (limited to 'nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix') diff --git a/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix b/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix new file mode 100644 index 00000000000..a97a753ebc3 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix @@ -0,0 +1,39 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.prometheus.exporters.openvpn; +in { + port = 9176; + extraOpts = { + statusPaths = mkOption { + type = types.listOf types.str; + description = '' + Paths to OpenVPN status files. Please configure the OpenVPN option + status accordingly. + ''; + }; + telemetryPath = mkOption { + type = types.str; + default = "/metrics"; + description = '' + Path under which to expose metrics. + ''; + }; + }; + + serviceOpts = { + serviceConfig = { + PrivateDevices = true; + ProtectKernelModules = true; + NoNewPrivileges = true; + ExecStart = '' + ${pkgs.prometheus-openvpn-exporter}/bin/openvpn_exporter \ + -openvpn.status_paths "${concatStringsSep "," cfg.statusPaths}" \ + -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ + -web.telemetry-path ${cfg.telemetryPath} + ''; + }; + }; +} -- cgit 1.4.1