main
1{ lib, config, ... }:
2{
3 options = {
4 prometheus-exporters-node.collectors = lib.mkOption {
5 type = lib.types.listOf lib.types.str;
6 default = [
7 "systemd"
8 "processes"
9 "hwmon" # Hardware sensors (lm_sensors)
10 "thermal_zone" # CPU thermal zones
11 ];
12 };
13 prometheus-exporters-node.extraFlags = lib.mkOption {
14 type = lib.types.listOf lib.types.str;
15 default = [
16 "--collector.ethtool"
17 "--collector.softirqs"
18 "--collector.tcpstat"
19 ];
20 };
21 };
22
23 config = {
24 services.prometheus.exporters.node = {
25 enable = true;
26 port = 9000;
27 enabledCollectors = config.prometheus-exporters-node.collectors;
28 inherit (config.prometheus-exporters-node) extraFlags;
29 };
30 };
31}