diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-06-13 21:50:54 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-06-13 21:50:54 +0530 |
| commit | e11b9a851851bb47109545093e3accdbcab76859 (patch) | |
| tree | e733232829ccca32d6ff3cfc88e4794222448676 /modules/monitoring | |
| parent | 6df186662a37b17015959bf0d6b456ab282b1826 (diff) | |
| download | homeserver-nixos-config-e11b9a851851bb47109545093e3accdbcab76859.tar.gz homeserver-nixos-config-e11b9a851851bb47109545093e3accdbcab76859.zip | |
Add grafana+prometheus + embed into dashboard
Diffstat (limited to '')
| -rw-r--r-- | modules/monitoring/default.nix | 7 | ||||
| -rw-r--r-- | modules/monitoring/grafana.nix | 29 | ||||
| -rw-r--r-- | modules/monitoring/prometheus.nix | 34 |
3 files changed, 70 insertions, 0 deletions
diff --git a/modules/monitoring/default.nix b/modules/monitoring/default.nix new file mode 100644 index 0000000..d93681b --- /dev/null +++ b/modules/monitoring/default.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + imports = [ + ./grafana.nix + ./prometheus.nix + ]; +} diff --git a/modules/monitoring/grafana.nix b/modules/monitoring/grafana.nix new file mode 100644 index 0000000..8e98ffc --- /dev/null +++ b/modules/monitoring/grafana.nix @@ -0,0 +1,29 @@ +{ lib, ... }: +let + settings = import ../../settings.nix { inherit lib; }; + ports = settings.network.ports; +in +{ + services.grafana = { + enable = true; + settings = { + server = { + protocol = "http"; + http_addr = "0.0.0.0"; + http_port = ports.grafana; + domain = "grafana.local"; + serve_from_sub_path = true; + }; + security = { + secret_key = settings.grafana.secretKey; + allow_sign_up = false; + disable_initial_admin_creation = false; + disable_gravatar = true; + admin_user = settings.grafana.adminUser; + admin_email = settings.grafana.adminEmail; + admin_password = settings.grafana.adminPassword; + allow_embedding = true; + }; + }; + }; +} diff --git a/modules/monitoring/prometheus.nix b/modules/monitoring/prometheus.nix new file mode 100644 index 0000000..5f71c58 --- /dev/null +++ b/modules/monitoring/prometheus.nix @@ -0,0 +1,34 @@ +{ lib, ... }: +let + settings = import ../../settings.nix { inherit lib; }; + ports = settings.network.ports; +in +{ + services.prometheus = { + enable = true; + port = ports.prometheus; + + exporters.node = { + enable = true; + port = ports.prometheusNodeExporter; + enabledCollectors = [ "systemd" ]; + extraFlags = [ + "--collector.ethtool" + "--collector.softirqs" + "--collector.tcpstat" + "--collector.wifi" + ]; + }; + + scrapeConfigs = [ + { + job_name = "system"; + scrape_interval = "10s"; + static_configs = [{ + targets = [ "127.0.0.1:${toString ports.prometheusNodeExporter}" ]; + }]; + } + ]; + }; +} + |
