From aacadd4b6cbe7df5113a91090c095cc0db5ea2ad Mon Sep 17 00:00:00 2001
From: sinanmohd <sinan@sinanmohd.com>
Date: Mon, 17 Mar 2025 00:31:16 +0530
Subject: kay/observability: init common exporters

---
 os/kay/modules/dns/default.nix              |  6 ++++-
 os/kay/modules/matrix/dendrite.nix          |  1 +
 os/kay/modules/observability/prometheus.nix | 39 +++++++++++++++++++++--------
 os/kay/modules/postgresql.nix               |  5 ++++
 os/kay/modules/router.nix                   |  5 ++++
 os/kay/modules/wireguard.nix                |  6 +++++
 os/kay/modules/www.nix                      | 12 +++++++++
 7 files changed, 63 insertions(+), 11 deletions(-)

(limited to 'os')

diff --git a/os/kay/modules/dns/default.nix b/os/kay/modules/dns/default.nix
index 1146cc3..9e6f94b 100644
--- a/os/kay/modules/dns/default.nix
+++ b/os/kay/modules/dns/default.nix
@@ -26,6 +26,11 @@ in {
     group = config.systemd.services.knot.serviceConfig.Group;
   };
 
+  services.prometheus.exporters.knot = {
+    enable = true;
+    listenAddress = "127.0.0.1";
+  };
+
   services.knot = {
     enable = true;
     keyFiles = [ config.sops.secrets.dns.path ];
@@ -133,5 +138,4 @@ in {
       ];
     };
   };
-
 }
diff --git a/os/kay/modules/matrix/dendrite.nix b/os/kay/modules/matrix/dendrite.nix
index 2cf7d11..5e4084b 100644
--- a/os/kay/modules/matrix/dendrite.nix
+++ b/os/kay/modules/matrix/dendrite.nix
@@ -33,6 +33,7 @@ in
           index_path = "/var/lib/dendrite/searchindex";
         };
         global = {
+          metrics.enabled = true;
           server_name = domain;
           private_key = "$CREDENTIALS_DIRECTORY/private_key";
           trusted_third_party_id_servers = [
diff --git a/os/kay/modules/observability/prometheus.nix b/os/kay/modules/observability/prometheus.nix
index ac94ba9..2bdb37d 100644
--- a/os/kay/modules/observability/prometheus.nix
+++ b/os/kay/modules/observability/prometheus.nix
@@ -4,16 +4,35 @@
     enable = true;
     port = 9001;
 
-    scrapeConfigs = [
-      {
-        job_name = "kay";
-        static_configs = [
-          {
-            targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ];
-          }
-        ];
-      }
-    ];
+    scrapeConfigs = [{
+      job_name = "kay";
+      static_configs = [
+        {
+          targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ];
+        }
+        {
+          targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.knot.port}" ];
+        }
+        {
+          targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.wireguard.port}" ];
+        }
+        {
+          targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.dnsmasq.port}" ];
+        }
+        {
+          targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.nginx.port}" ];
+        }
+        {
+          targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.nginxlog.port}" ];
+        }
+        {
+          targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.postgres.port}" ];
+        }
+        {
+          targets = [ "127.0.0.1:${toString config.services.dendrite.httpPort}" ];
+        }
+      ];
+    }];
 
     exporters = {
       node = {
diff --git a/os/kay/modules/postgresql.nix b/os/kay/modules/postgresql.nix
index 6f4d126..79d0b12 100644
--- a/os/kay/modules/postgresql.nix
+++ b/os/kay/modules/postgresql.nix
@@ -14,4 +14,9 @@
 
     settings.log_timezone = config.time.timeZone;
   };
+
+  services.prometheus.exporters.postgres = {
+    enable = true;
+    listenAddress = "127.0.0.1";
+  };
 }
diff --git a/os/kay/modules/router.nix b/os/kay/modules/router.nix
index daf4f63..1424b8a 100644
--- a/os/kay/modules/router.nix
+++ b/os/kay/modules/router.nix
@@ -56,4 +56,9 @@ in {
     dhcp-host= "${wapMac},${wapIp}";
     interface = [ lanInterface ];
   };
+
+  services.prometheus.exporters.dnsmasq = {
+    enable = true;
+    listenAddress = "127.0.0.1";
+  };
 }
diff --git a/os/kay/modules/wireguard.nix b/os/kay/modules/wireguard.nix
index 2ee41b6..a649d02 100644
--- a/os/kay/modules/wireguard.nix
+++ b/os/kay/modules/wireguard.nix
@@ -54,4 +54,10 @@ in {
     no-dhcp-interface = wgInterface;
     interface = [ wgInterface  ];
   };
+
+  services.prometheus.exporters.wireguard = {
+    enable = true;
+    withRemoteIp = true;
+    listenAddress = "127.0.0.1";
+  };
 }
diff --git a/os/kay/modules/www.nix b/os/kay/modules/www.nix
index b62a017..2ab70aa 100644
--- a/os/kay/modules/www.nix
+++ b/os/kay/modules/www.nix
@@ -16,8 +16,20 @@ in
     allowedUDPPorts = [ 443 ];
   };
 
+  services.prometheus.exporters = {
+    nginxlog = {
+      enable = true;
+      listenAddress = "127.0.0.1";
+    };
+    nginx = {
+      enable = true;
+      listenAddress = "127.0.0.1";
+    };
+  };
+
   services.nginx = { 
     enable = true;
+    statusPage = true;
     package = pkgs.nginxQuic;
     enableQuicBPF = true;
 
-- 
cgit v1.2.3