From 0270bbac6f947d9ab72856da6031c5f9fec36dd5 Mon Sep 17 00:00:00 2001 From: Christine Elisabeth Koppel Date: Sat, 14 Feb 2026 22:09:49 +0100 Subject: [PATCH] Add grafana_metric module to system configs and provision Grafana datasources --- .../modules/system/build_machine.nix | 1 + .../modules/system/compose-songsheet.nix | 1 + .../modules/system/database.nix | 1 + nix-system-configs/modules/system/forgejo.nix | 1 + .../modules/system/gramethus.nix | 61 ++++++++++++++++++- 5 files changed, 64 insertions(+), 1 deletion(-) diff --git a/nix-system-configs/modules/system/build_machine.nix b/nix-system-configs/modules/system/build_machine.nix index 40c791d..c957e74 100644 --- a/nix-system-configs/modules/system/build_machine.nix +++ b/nix-system-configs/modules/system/build_machine.nix @@ -42,6 +42,7 @@ in { (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix]) (choose [./modules/local/networking_local.nix ../local/networking_local.nix]) (choose [./modules/lix-default.nix ../lix-default.nix]) + (choose [./modules/toolsets/grafana_metric.nix ../toolsets/grafana_metric.nix]) (choose [./modules/secrets-config/sops-build-machine.nix ../secrets-config/sops-build-machine.nix]) ## TODO: Make this more elegant and less risky for unexpected errors happening. ] diff --git a/nix-system-configs/modules/system/compose-songsheet.nix b/nix-system-configs/modules/system/compose-songsheet.nix index a26c324..4e30c81 100644 --- a/nix-system-configs/modules/system/compose-songsheet.nix +++ b/nix-system-configs/modules/system/compose-songsheet.nix @@ -38,6 +38,7 @@ in { # Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) ## Compose modules for Portainer service + (choose [./modules/toolsets/grafana_metric.nix ../toolsets/grafana_metric.nix]) (choose [./modules/songsheet/wavelog/docker-compose.nix ../songsheet/wavelog/docker-compose.nix]) (choose [./modules/secrets-config/sops-composesongsheet.nix ../secrets-config/sops-composesongsheet.nix]) ]; diff --git a/nix-system-configs/modules/system/database.nix b/nix-system-configs/modules/system/database.nix index 106670e..c4fa5a4 100644 --- a/nix-system-configs/modules/system/database.nix +++ b/nix-system-configs/modules/system/database.nix @@ -36,6 +36,7 @@ in { (choose [./modules/local/networking_local.nix ../local/networking_local.nix]) (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix]) (choose [./modules/lix-default.nix ../lix-default.nix]) + (choose [./modules/toolsets/grafana_metric.nix ../toolsets/grafana_metric.nix]) (choose [./modules/secrets-config/sops-database.nix ../secrets-config/sops-database.nix]) (choose [./modules/system_scripts/gcloud_backup.nix ../system_scripts/gcloud_backup.nix]) ## TODO: Make this more elegant and less risky for unexpected errors happening. diff --git a/nix-system-configs/modules/system/forgejo.nix b/nix-system-configs/modules/system/forgejo.nix index 6c96867..e836c3b 100644 --- a/nix-system-configs/modules/system/forgejo.nix +++ b/nix-system-configs/modules/system/forgejo.nix @@ -63,6 +63,7 @@ in { (choose [./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix]) (choose [./modules/bootloader/seabios-assigned-proxmox-at-birth.nix ../bootloader/seabios-assigned-proxmox-at-birth.nix]) (choose [./modules/lix-default.nix ../lix-default.nix]) + (choose [./modules/toolsets/grafana_metric.nix ../toolsets/grafana_metric.nix]) ]; config = { diff --git a/nix-system-configs/modules/system/gramethus.nix b/nix-system-configs/modules/system/gramethus.nix index 2a08dae..4b827a8 100644 --- a/nix-system-configs/modules/system/gramethus.nix +++ b/nix-system-configs/modules/system/gramethus.nix @@ -76,6 +76,65 @@ in { # Prevents Grafana from phoning home #analytics.reporting_enabled = false; }; + + + provision = { + enable = true; + # ============== Declarative Config ================ + + datasources.settings.datasources = [ + # Provisioning a built-in data source + { + name = "Prometheus - Forgejo"; + type = "prometheus"; + url = "http://10.1.1.4:9001"; + isDefault = false; + editable = true; + } + + { + name = "Loki - Forgejo"; + type = "loki"; + url = "http://10.1.1.4:3100"; + isDefault = false; + editable = true; + } + + { + name = "Prometheus - Build Machine"; + type = "prometheus"; + url = "http://10.1.1.3:9001"; + isDefault = false; + editable = true; + } + + { + name = "Loki - Build Machine"; + type = "loki"; + url = "http://10.1.1.3:3100"; + isDefault = false; + editable = true; + } + + { + name = "Prometheus - Database"; + type = "prometheus"; + url = "http://10.1.1.251:9001"; + isDefault = false; + editable = true; + } + + { + name = "Loki - Database"; + type = "loki"; + url = "http://10.1.1.251:3100"; + isDefault = false; + editable = true; + } + + ]; + }; + }; services.prometheus = { @@ -218,6 +277,6 @@ in { networking.firewall.allowedTCPPorts = [3000]; networking.firewall.allowedUDPPorts = [3000]; - # ============== Declarative Config ================ + }; }