feat: add Prometheus, Grafana, Uptime Kuma, and management proxy#8
Merged
Conversation
Completes v0.7.0 (Observability): central metrics/alerting/dashboards plus a shared TLS proxy for the management host. - Add docker/observability/: Prometheus, Alertmanager, Grafana, Uptime Kuma. Prometheus/Alertmanager stay internal-only (neither has meaningful auth); Grafana/Uptime Kuma get a public URL through the new management proxy. Prometheus joins monitoring_agent_net to scrape node-exporter/cadvisor by container name - their 127.0.0.1-published ports aren't reachable from inside another container, so same-host scraping goes over a shared Docker network instead - Three default alert rules (host down, disk >85%, container missing) with a no-op Alertmanager receiver - a real notification channel needs deployment-specific credentials that don't belong in this repo - Grafana's Prometheus datasource is provisioned as code; dashboards are a documented two-click import (Node Exporter Full, cAdvisor) rather than vendored JSON - Add docker/management-proxy/: TLS termination and name-based vhost routing (jenkins.<domain>, grafana.<domain>, uptime.<domain>) for every public UI on the management host, replacing the single-vhost jenkins/nginx.conf. Domain names are injected via the official nginx image's envsubst templating, not hardcoded - jenkins/docker-compose.yml: the nginx service moved out to docker/management-proxy/ - jenkins/ is Jenkins-only again Image versions and healthcheck tooling (Grafana/Uptime Kuma's available shell utilities, cAdvisor's base image, current registry paths) verified via research rather than assumed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Roadmap Phase
v0.7.0 - Observability (PR B: central aggregation + UI + management-proxy refactor. PR A, already merged, instrumented every host with Node Exporter/cAdvisor. One v0.7.0 tag after both merge.)
Environment Impact
Rollback Plan
Revert the merge commit; no live host runs any of this yet. jenkins/docker-compose.yml losing its nginx service has no live impact for the same reason.
Checklist
Test plan