aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix')
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix38
1 files changed, 38 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
new file mode 100644
index 00000000000..57c35a742c5
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
@@ -0,0 +1,38 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+ cfg = config.services.prometheus.exporters.apcupsd;
+in
+{
+ port = 9162;
+ extraOpts = {
+ apcupsdAddress = mkOption {
+ type = types.str;
+ default = ":3551";
+ description = ''
+ Address of the apcupsd Network Information Server (NIS).
+ '';
+ };
+
+ apcupsdNetwork = mkOption {
+ type = types.enum ["tcp" "tcp4" "tcp6"];
+ default = "tcp";
+ description = ''
+ Network of the apcupsd Network Information Server (NIS): one of "tcp", "tcp4", or "tcp6".
+ '';
+ };
+ };
+ serviceOpts = {
+ serviceConfig = {
+ ExecStart = ''
+ ${pkgs.prometheus-apcupsd-exporter}/bin/apcupsd_exporter \
+ -telemetry.addr ${cfg.listenAddress}:${toString cfg.port} \
+ -apcupsd.addr ${cfg.apcupsdAddress} \
+ -apcupsd.network ${cfg.apcupsdNetwork} \
+ ${concatStringsSep " \\\n " cfg.extraFlags}
+ '';
+ };
+ };
+}