bcs-website/docs/adr/0004-reuse-monylog-for-monitoring.md
Brad Rodgers cd91c4b97c Initial commit: BlueCap Strategies Astro site
Static Astro 5 site for BlueCap Strategies with exact live-site content
parity, deployed to k3s via GitOps (ArgoCD).

- Page copy in Markdown content collections (services, focus-areas, pages,
  insights) with a Zod SEO schema enforced at build time
- Homepage + About restored to exact live copy; real live-site imagery
- Build-time SEO linter (scripts/seo-lint.mjs) and Playwright e2e suite
- Multi-stage Dockerfile (nginx serves dist/) and Kustomize manifests (k8s/)
- Per-agent robots.txt; config-driven PostHog + Umami analytics scaffold
- ADRs and engineering docs under docs/

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 17:40:46 -04:00

1.5 KiB

ADR-0004: Reuse the monylog stack for ops monitoring (not Uptime Kuma)

Status: Accepted — 2026-07-15

Context

An earlier note proposed deploying Uptime Kuma in-cluster. Inspection showed the homelab already runs monylog (10.66.15.21, Ansible role pglta): a full self-hosted LGTM + Alertmanager stack (Prometheus, Grafana, Loki, Tempo, Alertmanager → Pushover/ntfy → phone), deliberately external to k8s so it alerts even when the cluster is down. Grafana Alloy (k3s DaemonSet) already remote-writes cluster metrics (incl. kube-state-metrics) and ships all pod logs to monylog Loki.

Decision

Reuse monylog; do not deploy Uptime Kuma or any new alerting channel. BlueCap pod/deployment metrics and nginx logs already flow in. Add only:

  1. blackbox_exporter to the monylog compose + a Prometheus scrape job probing the in-cluster Service (app health) and the public URL (edge-path uptime + TLS expiry).
  2. A web-bluecap.yml alert rules file (SiteDown, CertExpiringSoon <14d, High5xx, DeploymentDegraded, PodRestarting).
  3. A service: bluecap label so Alertmanager routes to existing Pushover; a Grafana dashboard.

Consequences

  • No duplicate monitoring/alerting infra; one pane of glass, alerts already reach the phone.
  • Changes land in the Homelab Ansible repo (roles/monylog), not this repo.
  • monylog being off-cluster gives a genuine external vantage for public-URL probing.
  • Detail in docs/seo-aeo-optimization.md §6a and docs/gitops-deployment-strategy.md §4.3.