1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.services.prometheus.exporters.nvidia-gpu;
10 inherit (lib)
11 types
12 concatStringsSep
13 ;
14in
15{
16 port = 9835;
17 serviceOpts = {
18 serviceConfig = {
19 ExecStart = ''
20 ${pkgs.prometheus-nvidia-gpu-exporter}/bin/nvidia_gpu_exporter \
21 --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
22 --nvidia-smi-command ${config.hardware.nvidia.package.bin}/bin/nvidia-smi \
23 ${concatStringsSep " " cfg.extraFlags}
24 '';
25 PrivateDevices = false;
26 };
27 wantedBy = [ "multi-user.target" ];
28 };
29}