From d4343f7ebe1f14e336fca4520b32ede7dfac3d8d Mon Sep 17 00:00:00 2001
From: zowoq <59103226+zowoq@users.noreply.github.com>
Date: Tue, 5 Sep 2023 15:42:49 +1000
Subject: [PATCH] move alertmanager, prometheus under
 monitoring.nix-community.org

---
 docs/monitoring.md                        |  4 ++--
 modules/nixos/monitoring/default.nix      |  8 ++++++++
 modules/nixos/monitoring/prometheus.nix   | 19 ++++---------------
 terraform/cloudflare_nix-community_org.tf | 18 ++----------------
 4 files changed, 16 insertions(+), 33 deletions(-)

diff --git a/docs/monitoring.md b/docs/monitoring.md
index fad5c94..b8eeaf1 100644
--- a/docs/monitoring.md
+++ b/docs/monitoring.md
@@ -1,2 +1,2 @@
-- [alertmanager.nix-community.org](https://alertmanager.nix-community.org)
-- [prometheus.nix-community.org](https://prometheus.nix-community.org)
+- [monitoring.nix-community.org/alertmanager](https://monitoring.nix-community.org/alertmanager)
+- [monitoring.nix-community.org/prometheus](https://monitoring.nix-community.org/prometheus)
diff --git a/modules/nixos/monitoring/default.nix b/modules/nixos/monitoring/default.nix
index 732314e..e3e101b 100644
--- a/modules/nixos/monitoring/default.nix
+++ b/modules/nixos/monitoring/default.nix
@@ -4,4 +4,12 @@
     ./prometheus.nix
     ./telegraf.nix
   ];
+
+  services.nginx.virtualHosts."monitoring.nix-community.org" = {
+    enableACME = true;
+    forceSSL = true;
+    locations."/".return = "302 https://nix-community.org/monitoring";
+    locations."/alertmanager/".proxyPass = "http://localhost:9093/";
+    locations."/prometheus/".proxyPass = "http://localhost:9090/";
+  };
 }
diff --git a/modules/nixos/monitoring/prometheus.nix b/modules/nixos/monitoring/prometheus.nix
index 955e8a2..50f9696 100644
--- a/modules/nixos/monitoring/prometheus.nix
+++ b/modules/nixos/monitoring/prometheus.nix
@@ -15,7 +15,8 @@
         ];
       }))
     ];
-    webExternalUrl = "https://prometheus.nix-community.org";
+    webExternalUrl = "https://monitoring.nix-community.org/prometheus/";
+    extraFlags = [ "--web.route-prefix=/" ];
     scrapeConfigs = [
       {
         job_name = "telegraf";
@@ -49,17 +50,11 @@
     "http://localhost:9093/metrics" # alertmanager
   ];
 
-  services.nginx.virtualHosts."prometheus.nix-community.org" = {
-    enableACME = true;
-    forceSSL = true;
-    locations."/".proxyPass = "http://localhost:9090";
-  };
-
   services.prometheus.alertmanager = {
     enable = true;
-    webExternalUrl = "https://alertmanager.nix-community.org";
+    webExternalUrl = "https://monitoring.nix-community.org/alertmanager/";
     listenAddress = "[::1]";
-    extraFlags = [ "--cluster.listen-address=''" ];
+    extraFlags = [ "--cluster.listen-address=''" "--web.route-prefix=/" ];
     configuration = {
       route = {
         receiver = "default";
@@ -89,10 +84,4 @@
       ];
     };
   };
-
-  services.nginx.virtualHosts."alertmanager.nix-community.org" = {
-    enableACME = true;
-    forceSSL = true;
-    locations."/".proxyPass = "http://localhost:9093";
-  };
 }
diff --git a/terraform/cloudflare_nix-community_org.tf b/terraform/cloudflare_nix-community_org.tf
index 72e59fa..c54f63a 100644
--- a/terraform/cloudflare_nix-community_org.tf
+++ b/terraform/cloudflare_nix-community_org.tf
@@ -162,23 +162,9 @@ resource "cloudflare_record" "nix-community-org-nur-update-CNAME" {
   type    = "CNAME"
 }
 
-resource "cloudflare_record" "nix-community-org-alertmanager-CNAME" {
+resource "cloudflare_record" "nix-community-org-monitoring-CNAME" {
   zone_id = local.nix_community_zone_id
-  name    = "alertmanager"
-  value   = "web02.nix-community.org"
-  type    = "CNAME"
-}
-
-resource "cloudflare_record" "nix-community-org-grafana-CNAME" {
-  zone_id = local.nix_community_zone_id
-  name    = "grafana"
-  value   = "web02.nix-community.org"
-  type    = "CNAME"
-}
-
-resource "cloudflare_record" "nix-community-org-prometheus-CNAME" {
-  zone_id = local.nix_community_zone_id
-  name    = "prometheus"
+  name    = "monitoring"
   value   = "web02.nix-community.org"
   type    = "CNAME"
 }