nixos/prometheus: add nvidia-gpu exporter
This exporter allows prometheus-nvidia-gpu-exporter to be installed as a systemd service.
This commit is contained in:
parent
046d26e578
commit
aa8a2577f1
@ -42,6 +42,8 @@
|
|||||||
|
|
||||||
- [mqtt-exporter](https://github.com/kpetremann/mqtt-exporter/), a Prometheus exporter for exposing messages from MQTT. Available as [services.prometheus.exporters.mqtt](#opt-services.prometheus.exporters.mqtt.enable).
|
- [mqtt-exporter](https://github.com/kpetremann/mqtt-exporter/), a Prometheus exporter for exposing messages from MQTT. Available as [services.prometheus.exporters.mqtt](#opt-services.prometheus.exporters.mqtt.enable).
|
||||||
|
|
||||||
|
- [nvidia-gpu](https://github.com/utkuozdemir/nvidia_gpu_exporter), a Prometheus exporter that scrapes `nvidia-smi` for GPU metrics. Available as [services.prometheus.exporters.nvidia-gpu](#opt-services.prometheus.exporters.nvidia-gpu.enable).
|
||||||
|
|
||||||
- [Buffyboard](https://gitlab.postmarketos.org/postmarketOS/buffybox/-/tree/master/buffyboard), a framebuffer on-screen keyboard. Available as [services.buffyboard](option.html#opt-services.buffyboard).
|
- [Buffyboard](https://gitlab.postmarketos.org/postmarketOS/buffybox/-/tree/master/buffyboard), a framebuffer on-screen keyboard. Available as [services.buffyboard](option.html#opt-services.buffyboard).
|
||||||
|
|
||||||
- [KanBoard](https://github.com/kanboard/kanboard), a project management tool that focuses on the Kanban methodology. Available as [services.kanboard](#opt-services.kanboard.enable).
|
- [KanBoard](https://github.com/kanboard/kanboard), a project management tool that focuses on the Kanban methodology. Available as [services.kanboard](#opt-services.kanboard.enable).
|
||||||
|
|||||||
@ -66,6 +66,7 @@ let
|
|||||||
"nginxlog"
|
"nginxlog"
|
||||||
"node"
|
"node"
|
||||||
"nut"
|
"nut"
|
||||||
|
"nvidia-gpu"
|
||||||
"pgbouncer"
|
"pgbouncer"
|
||||||
"php-fpm"
|
"php-fpm"
|
||||||
"pihole"
|
"pihole"
|
||||||
|
|||||||
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.prometheus.exporters.nvidia-gpu;
|
||||||
|
inherit (lib)
|
||||||
|
types
|
||||||
|
concatStringsSep
|
||||||
|
;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
port = 9835;
|
||||||
|
serviceOpts = {
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.prometheus-nvidia-gpu-exporter}/bin/nvidia_gpu_exporter \
|
||||||
|
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
|
||||||
|
--nvidia-smi-command ${config.hardware.nvidia.package.bin}/bin/nvidia-smi \
|
||||||
|
${concatStringsSep " " cfg.extraFlags}
|
||||||
|
'';
|
||||||
|
PrivateDevices = false;
|
||||||
|
};
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user