From c4d4ca7122c5930bbe5c002a45a655b28bba7d93 Mon Sep 17 00:00:00 2001 From: Thomas Hallock Date: Fri, 23 Jan 2026 12:51:27 -0600 Subject: [PATCH] feat(infra): improve Gatus status page with clearer endpoint groups - Organize endpoints into logical groups: Website, Arcade, Worksheets, Flowcharts, Core API, Infrastructure - Add hide-url: false to show actual URLs on status page - Use user-friendly names like "Games Hub", "Worksheet Builder", "Flashcard Generator" - Remove confusing internal service endpoints - Check database and Redis via infrastructure group Co-Authored-By: Claude Opus 4.5 --- infra/terraform/gatus.tf | 68 ++++++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/infra/terraform/gatus.tf b/infra/terraform/gatus.tf index 569f93bb..114a6590 100644 --- a/infra/terraform/gatus.tf +++ b/infra/terraform/gatus.tf @@ -22,7 +22,7 @@ resource "kubernetes_config_map" "gatus_config" { logo: "" endpoints: - # Main website + # ============ Website ============ - name: Homepage group: Website url: "https://abaci.one/" @@ -31,38 +31,72 @@ resource "kubernetes_config_map" "gatus_config" { - "[STATUS] == 200" - "[RESPONSE_TIME] < 2000" + # ============ Arcade ============ + - name: Games Hub + group: Arcade + url: "https://abaci.one/games" + interval: 120s + conditions: + - "[STATUS] == 200" + ui: + hide-url: false + + # ============ Worksheets ============ + - name: Worksheet Builder + group: Worksheets + url: "https://abaci.one/create/worksheets" + interval: 120s + conditions: + - "[STATUS] == 200" + ui: + hide-url: false + + - name: Flashcard Generator + group: Worksheets + url: "https://abaci.one/create/flashcards" + interval: 120s + conditions: + - "[STATUS] == 200" + ui: + hide-url: false + + # ============ Flowcharts ============ + - name: Flowchart Viewer + group: Flowcharts + url: "https://abaci.one/flowchart" + interval: 120s + conditions: + - "[STATUS] == 200" + ui: + hide-url: false + + # ============ Core API ============ - name: Health API - group: Website + group: Core API url: "https://abaci.one/api/health" interval: 30s conditions: - "[STATUS] == 200" - "[RESPONSE_TIME] < 500" - "[BODY].status == healthy" + ui: + hide-url: false - # Internal services (from within cluster) - - name: App Service - group: Internal - url: "http://abaci-app.abaci.svc.cluster.local/api/health" + # ============ Infrastructure ============ + - name: SQLite Database + group: Infrastructure + url: "https://abaci.one/api/health" interval: 30s conditions: - "[STATUS] == 200" - - "[BODY].status == healthy" + - "[BODY].checks.database.status == ok" - - name: Redis - group: Internal + - name: Redis Cache + group: Infrastructure url: "tcp://redis.abaci.svc.cluster.local:6379" interval: 30s conditions: - "[CONNECTED] == true" - - - name: Database (via health) - group: Internal - url: "http://abaci-app.abaci.svc.cluster.local/api/health" - interval: 60s - conditions: - - "[STATUS] == 200" - - "[BODY].checks.database.status == ok" EOT } }