summary refs log tree commit diff
path: root/modules/foundation
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-12-22 00:10:16 +0100
committerMel <einebeere@gmail.com>2024-12-22 00:10:16 +0100
commit6163fa5b5926dd4a456b9fd07e05f9ec1f49d613 (patch)
tree66d37db95ffc93a8e5e10242109d5bf86d09f622 /modules/foundation
parent670521df7a1e5ab7222df6af0698ec798413962a (diff)
downloadnetwork-6163fa5b5926dd4a456b9fd07e05f9ec1f49d613.tar.zst
network-6163fa5b5926dd4a456b9fd07e05f9ec1f49d613.zip
Collect Nginx metrics
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'modules/foundation')
-rw-r--r--modules/foundation/monitoring.nix53
1 files changed, 26 insertions, 27 deletions
diff --git a/modules/foundation/monitoring.nix b/modules/foundation/monitoring.nix
index b8af232..16a729d 100644
--- a/modules/foundation/monitoring.nix
+++ b/modules/foundation/monitoring.nix
@@ -8,6 +8,7 @@ let
   victoriaDefaultPort = 8428;
   nodeExporterPort = 9001;
   cadvisorExporterPort = 9002;
+  nginxExporterPort = 9113;
   dockerExporterPort = 9323;
 in
 {
@@ -47,29 +48,18 @@ in
           };
 
           scrape_configs = let
-            everyHost = f: map f cfg.server.hosts;
-          in [
-            {
-              job_name = "node";
-              static_configs = everyHost ({ name, ip }: {
-                targets = [ "${ip}:${toString nodeExporterPort}" ];
-                labels = { instance = name; };
-              });
-            }
-            {
-              job_name = "docker";
-              static_configs = everyHost ({ name, ip }: {
-                targets = [ "${ip}:${toString dockerExporterPort}" ];
-                labels = { instance = name; };
-              });
-            }
-            {
-              job_name = "cadvisor";
-              static_configs = everyHost ({ name, ip }: {
-                targets = [ "${ip}:${toString cadvisorExporterPort}" ];
+            exporter = job: port: {
+              job_name = job;
+              static_configs = map ({ name, ip }: {
+                targets = [ "${ip}:${toString port}" ];
                 labels = { instance = name; };
-              });
-            }
+              }) cfg.server.hosts;
+            };
+          in [
+            (exporter "node" nodeExporterPort)
+            (exporter "docker" dockerExporterPort)
+            (exporter "cadvisor" cadvisorExporterPort)
+            (exporter "nginx" nginxExporterPort)
           ];
         };
       };
@@ -77,11 +67,20 @@ in
 
     (lib.mkIf (cfg.client.enable || cfg.server.enable) {
       services = {
-        prometheus.exporters.node = {
-          enable = true;
-          openFirewall = false;
-          listenAddress = me.tailscale.ip;
-          port = nodeExporterPort;
+        prometheus.exporters = {
+          node = {
+            enable = true;
+            openFirewall = false;
+            listenAddress = me.tailscale.ip;
+            port = nodeExporterPort;
+          };
+
+          nginx = {
+            enable = true;
+            openFirewall = false;
+            listenAddress = me.tailscale.ip;
+            port = nginxExporterPort;
+          };
         };
 
         cadvisor = {