about summary refs log tree commit diff
path: root/modules/prometheus.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/prometheus.nix35
1 files changed, 16 insertions, 19 deletions
diff --git a/modules/prometheus.nix b/modules/prometheus.nix
index 673f288..031b0b2 100644
--- a/modules/prometheus.nix
+++ b/modules/prometheus.nix
@@ -6,59 +6,56 @@
   this,
   ...
 }:
-with lib;
 let
   cfg = config.nixfiles.modules.prometheus;
 in
 {
   options.nixfiles.modules.prometheus = {
-    enable = mkEnableOption "Prometheus";
+    enable = lib.mkEnableOption "Prometheus";
 
-    port = mkOption {
+    port = lib.mkOption {
       description = "Port.";
-      type = with types; port;
+      type = lib.types.port;
       default = 30111;
     };
 
-    domain = mkOption {
+    domain = lib.mkOption {
       description = "Domain name sans protocol scheme.";
-      type = with types; str;
+      type = lib.types.str;
       default = "prometheus.${config.networking.domain}";
     };
   };
 
-  config = mkIf cfg.enable {
-    nixfiles.modules.nginx = with cfg; {
+  config = lib.mkIf cfg.enable {
+    nixfiles.modules.nginx = {
       enable = true;
       upstreams.prometheus.servers."127.0.0.1:${toString cfg.port}" = { };
-      virtualHosts.${domain} = {
+      virtualHosts.${cfg.domain} = {
         locations."/".proxyPass = "http://prometheus";
         extraConfig = libNginx.config.internalOnly;
       };
     };
 
-    services.prometheus = with cfg; {
+    services.prometheus = {
       enable = true;
       enableReload = true;
 
       listenAddress = "127.0.0.1";
-      inherit port;
+      inherit (cfg) port;
 
       extraFlags = [
-        "--web.external-url=https://${domain}"
+        "--web.external-url=https://${cfg.domain}"
         "--storage.tsdb.retention.size=50GB"
         "--storage.tsdb.retention.time=1y"
         "--storage.tsdb.wal-compression"
       ];
     };
 
-    topology = with cfg; {
-      nodes.${this.hostname}.services.prometheus = {
-        name = "Prometheus";
-        icon = "${inputs.homelab-svg-assets}/assets/prometheus.svg";
-        info = domain;
-        details.listen.text = "127.0.0.1:${toString port}";
-      };
+    topology.nodes.${this.hostname}.services.prometheus = {
+      name = "Prometheus";
+      icon = "${inputs.homelab-svg-assets}/assets/prometheus.svg";
+      info = cfg.domain;
+      details.listen.text = "127.0.0.1:${toString cfg.port}";
     };
   };
 }

Consider giving Nix/NixOS a try! <3