From 5ae91f18ba42a6bf093d20a2027c7bfecbe92acb Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Thu, 20 Nov 2025 23:08:52 -0600 Subject: [PATCH] Update my exporters --- hosts/baseline.nix | 19 +++++++-- hosts/hosea/default.nix | 87 +++++++++++++++++++++++++++-------------- 2 files changed, 73 insertions(+), 33 deletions(-) diff --git a/hosts/baseline.nix b/hosts/baseline.nix index acdbd1c..6f18f03 100644 --- a/hosts/baseline.nix +++ b/hosts/baseline.nix @@ -175,9 +175,22 @@ in enable = true; settings.X11Forwarding = true; }; - prometheus.exporters.node = { - enable = true; - enabledCollectors = [ "ethtool" "logind" "mountstats" "systemd" "tcpstat" ]; + prometheus.exporters = { + node = { + enable = true; + enabledCollectors = [ "ethtool" "logind" "mountstats" "systemd" "tcpstat" ]; + }; + ping = { + enable = true; + settings = { + ping = { + interval = "10s"; + timeout = "5s"; + }; + targets = [ "thehellings.com" "genesis.shire-zebra.ts.net" "www.google.com" ]; + }; + }; + systemd.enable = true; }; }; diff --git a/hosts/hosea/default.nix b/hosts/hosea/default.nix index c4e5ceb..aa452fc 100644 --- a/hosts/hosea/default.nix +++ b/hosts/hosea/default.nix @@ -2,7 +2,13 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, top, ... }: +{ + config, + lib, + pkgs, + top, + ... +}: let wanInterface = "enp2s0"; lanInterface = "enp1s0"; @@ -93,21 +99,25 @@ in enable = true; provision = { enable = true; - dashboards.settings.providers = [{ - name = "Dashboards"; - disableDeletion = true; - options = { - path = "/etc/grafana-dashboards"; - foldersFromFilesStructure = true; - }; - }]; - datasources.settings.datasources = [{ - name = "Prometheus"; - type = "prometheus"; - url = "http://${config.services.prometheus.listenAddress}:${toString config.services.prometheus.port}"; - isDefault = true; - editable = false; - }]; + dashboards.settings.providers = [ + { + name = "Dashboards"; + disableDeletion = true; + options = { + path = "/etc/grafana-dashboards"; + foldersFromFilesStructure = true; + }; + } + ]; + datasources.settings.datasources = [ + { + name = "Prometheus"; + type = "prometheus"; + url = "http://${config.services.prometheus.listenAddress}:${toString config.services.prometheus.port}"; + isDefault = true; + editable = false; + } + ]; }; settings = { server = { @@ -122,22 +132,39 @@ in }; prometheus = { enable = true; + exporters.graphite.enable = true; globalConfig.scrape_interval = "10s"; - scrapeConfigs = [ { - job_name = "node stats"; - static_configs = [{ - targets = [ - "localhost:${toString config.services.prometheus.exporters.node.port}" - "isaiah.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" - "jeremiah.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" - "zeke.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" - "genesis.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" - "exodus.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" - "linode.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" - "vm-gitlab.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" + scrapeConfigs = [ + { + job_name = "node stats"; + static_configs = [ + { + targets = lib.flatten ( + lib.map + (n: [ + "${n}.shire-zebra.ts.net:${toString config.services.prometheus.exporters.node.port}" + "${n}.shire-zebra.ts.net:${toString config.services.prometheus.exporters.systemd.port}" + "${n}.shire-zebra.ts.net:${toString config.services.prometheus.exporters.ping.port}" + ]) + [ + "hosea" + "isaiah" + "jeremiah" + "zeke" + "genesis" + "exodus" + "linode" + "vm-gitlab" + ] + ) ++ [ + "hosea.shire-zebra.ts.net:${toString config.services.prometheus.exporters.graphite.port}" + "genesis.shire-zebra.ts.net:${toString config.services.prometheus.exporters.kea.port}" + "genesis.shire-zebra.ts.net:${toString config.services.prometheus.exporters.dnsmasq.port}" + ]; + } ]; - }]; - } ]; + } + ]; }; # Configure keymap xserver.xkb = {