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}