summaryrefslogtreecommitdiffstats
path: root/hosts/poweredge/metrics.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/poweredge/metrics.nix')
-rw-r--r--hosts/poweredge/metrics.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/hosts/poweredge/metrics.nix b/hosts/poweredge/metrics.nix
new file mode 100644
index 0000000..edf3da9
--- /dev/null
+++ b/hosts/poweredge/metrics.nix
@@ -0,0 +1,43 @@
+{ config, inputs, ... }: {
+ imports = [ inputs.telemetry.nixosModules.collectors ];
+
+ services.telemetry.collectors = {
+ enable = true;
+ logs.lokiUrl = "http://metrics:3100"; # The container
+ };
+
+ containers.metrics = {
+ autoStart = true;
+ privateNetwork = true;
+ hostBridge = "br-lan0";
+ localMacAddress = "02:00:00:00:00:06";
+ ephemeral = true;
+
+ # The module reads whatever path you point secretKeyFile at.
+ bindMounts = {
+ "/var/lib/prometheus2" = { hostPath = "/nix/persist/metrics/prometheus2"; isReadOnly = false; };
+ "/var/lib/loki" = { hostPath = "/nix/persist/metrics/loki"; isReadOnly = false; };
+ "/var/lib/grafana" = { hostPath = "/nix/persist/metrics/grafana"; isReadOnly = false; };
+ };
+
+ config = { ... }: {
+ imports = [ inputs.telemetry.nixosModules.server ];
+
+ networking.enableIPv6 = false;
+ networking.interfaces.eth0.useDHCP = true;
+
+ services.telemetry.server = {
+ enable = true;
+ collectorHosts = [ "poweredge" ];
+ grafana.generateSecretKey = true;
+ proxy.enable = true;
+ };
+
+ # Pin loki uid+gid
+ users.users.loki = { uid = 3100; group = "loki"; isSystemUser = true; };
+ users.groups.loki.gid = 3100;
+
+ system.stateVersion = "26.05";
+ };
+ };
+}