chore(observability): externalize stack from root compose files
Manage now connects to existing Grafana/Prometheus/Alertmanager instances and never deploys its own stack. - docker-compose.yml / docker-compose.dev.yml: removed prometheus, loki, alloy, grafana, alertmanager, node-exporter services, the monitoring network, and observability named volumes; they now ship only backend + frontend. Dev frontend now joins the web network so the Vite dev proxy can reach the backend. - backend: alertmanager_url default is now empty; /api/monitoring/alerts and /alertmanager-status return graceful "not configured" responses when ALERTMANAGER_URL is unset. Added not-configured tests. - docker-compose.observability.yml: kept as the optional standalone example; header clarifies Manage does not deploy it. - Removed orphaned combined monitoring/prometheus/prometheus.yml (standalone stack uses prometheus.standalone.yml). - Docs (README, REQUIREMENTS decision log, monitoring-logging-design, observability-runbooks, context.md, MIGRATION_PLAN, frontend/README, CHANGELOG) updated to the connect-to-existing model. VITE_GRAFANA_URL / VITE_PROMETHEUS_URL remain as optional frontend deep-link overrides. .env.example still needs a manual update (safety policy blocks assistant edits): set ALERTMANAGER_URL empty/optional and move standalone-only vars out of the root file.
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
# Monitoring and Logging Design — Manage
|
||||
|
||||
> **Status (2026-06-23):** This document is the **reference architecture** for the
|
||||
> self-hosted observability stack Manage integrates with. Manage itself **does
|
||||
> not deploy** Grafana, Prometheus, Loki, Alertmanager, Alloy, or Node Exporter.
|
||||
> The root `docker-compose.yml` / `docker-compose.dev.yml` ship **only** the
|
||||
> backend and frontend; Manage connects to **existing** Grafana / Prometheus /
|
||||
> Alertmanager instances. The stack described here is available as an optional,
|
||||
> deploy-it-yourself example in `docker-compose.observability.yml` (see
|
||||
> `docs/observability-runbooks.md`). The "Add services to `docker-compose.yml`"
|
||||
> phase notes below describe the **original** in-compose deployment, which has
|
||||
> since been extracted to the standalone compose file.
|
||||
|
||||
## Executive Summary
|
||||
|
||||
Manage currently uses ad-hoc observability: plain-text Python logs, a custom POSIX shell metrics collector on remote machines, and a background poller that stores snapshots in SQLite. This works for a single-instance homelab but becomes painful as the fleet grows and as users need faster incident response.
|
||||
|
||||
Reference in New Issue
Block a user