WIP: monitoring(titan): capacity guardrails for titan-20/21/22 audit #50
Draft
hermes-automation
wants to merge 1 commits from
feature/t_26da4c88-titan-capacity-guardrails into main
pull from: feature/t_26da4c88-titan-capacity-guardrails
merge into: titan:main
titan:main
titan:feature/hermes-agent-build-mirrors
titan:feature/hermes-agent-multiarch
titan:feature/hermes-next-hux
titan:feature/hermes-hux-contracts
titan:feature/t_39cf1905-webui-build-token
titan:feature/t_26da4c88-titan-capacity-guardrails-v4
titan:feature/t_26da4c88-titan-capacity-guardrails-v3
titan:feature/t_26da4c88-titan-capacity-guardrails-v2
titan:fix/t_39cf1905-jenkins-controller-priority
titan:feature/t_8cbe6a55-hermes-webui-release-v2
titan:feature/t_8cbe6a55-hermes-webui-release
titan:feature/hermes-domain-rename-agent-worker-v2
titan:hermes/t_65356568-multiuser-capacity-assessment
titan:fix/cli-auto-failover-effort
titan:feature/hermes-pr44-after-pr43
titan:fix/hermes-heartbeat-dead-reclaim-replacement
titan:handoff/t_1a2c627b
titan:feature/hermes-combined-multilingual-voice-v2
titan:fix/hermes-handsfree-stt-webm
titan:fix/hermes-restore-legacy-chat-triage-hosts-v2
titan:feature/hermes-domain-rename-agent-worker-bstein
titan:fix/hermes-restore-legacy-chat-triage-hosts-v3
titan:hermes/tts-voice-multilingual-prerequisite
titan:fix/hermes-restore-legacy-chat-triage-hosts
titan:fix/hermes-oidc-ensure-rerun-hostname-rollout
titan:feature/hermes-direct-cli-lane-concurrency-2-replacement
titan:feature/hermes-domain-rename-chat-bstein-triage
titan:feature/hermes-kanban-profile-concurrency-2
titan:feature/hermes-zombie-lane-heartbeat-reclaim
titan:hermes/repair-pr26-voice-split
titan:feature/hermes-durable-two-worker-cli-concurrency
titan:hermes/chat-voice-conversation-instrument
titan:feature/hermes-domain-rename-chat-triage
titan:hermes/voice-stt-tts-language-routing
titan:hermes/voice-stt-language-routing
titan:hermes/tts-voice-multilingual
titan:fix/hermes-chat-session-continuity-contract
titan:hermes/tts-voice-hfc-female
titan:hermes/fix-grafana-no-data-vm-storage
titan:feature/ci-gitops
titan:fix/jenkins-quality-gate-discovery
titan:feature/hermes-inpod-supervisor
titan:feature/hermes-chat-smoothness
titan:wt/t_1e95ea6d
titan:feature/hermes-full-handoff-acceptance
titan:feature/hermes-distributed-worker-pool
titan:feature/hermes-review-goal-semantics
titan:feature/hermes-cli-auto-quota-routing
titan:fix/hermes-result-decomposition-reliability
titan:feature/hermes-safe-gitea-pr-client
titan:feature/hermes-unprivileged-image-builder
titan:feature/hermes-cli-process-reaping
titan:feature/hermes-three-lane-placement
titan:wt/t_cca008de
titan:codex/cassandra-generator-08105
titan:cassandra-0851-rollout
titan:cassandra-0821-deploy
titan:codex/testing-dashboard-health-20260604
titan:feature/ariadne
titan:feature/pi-usb-scratch-rollout
titan:feature/sso-hardening
titan:codex/titan-iac-work-quality-gate
titan:codex/titan-iac-main-platform-metrics
titan:codex/titan-iac-platform-metrics
titan:feature/atlas-jobs-schedule-observability
titan:lane2/jenkins-cleanup-activate
titan:lane2/jenkins-cleanup-wiring-split
titan:codex-ananke-fixes
titan:feature/atlasbot-ananke-recovery
titan:feature/atlasbot
titan:deploy
titan:feature/vault-consumption
titan:feature/postgres-migration
titan:feature/bstein-dev-home
titan:feature/mailu
titan:feature/sso
titan:feature/atlas-monitoring
titan:restructure/hybrid-clusters
titan:fea/titan24-gpu
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "feature/t_26da4c88-titan-capacity-guardrails"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Evidence-led capacity/QoS audit of titan-20 (Hermes LLM fallback/classifier),
titan-21 (STT/TTS), and titan-22 (Jellyfin media-primary) for Kanban card
t_26da4c88. Full report:docs/titan_20_21_22_capacity_optimization.md.last 3h, memory available as low as 1.7% at its floor; titan-21: 65% CPU
p95). No workload was added to either node.
available) even after three workloads (Jenkins, VictoriaMetrics, Wger)
were placed there live by direct
maincommits during this audit,outside this PR — see report §4a. That placement is not authored by this
PR; it is documented and evidence-validated by it.
(plain NVIDIA time-slicing, no MPS/MIG) — conditional GPU sharing
(Option C) is evaluated and rejected as unsafe until the cluster has a
GPU-sharing mode with real per-tenant isolation.
criteria, this ships guardrails/dashboard/report only.
Changes
docs/titan_20_21_22_capacity_optimization.md— durable capacity model,workload map, ranked distribution options (A-D), and validation plan.
services/monitoring/vmalert-atlas-availability.yaml— newatlas.titan-media-capacityalert group: titan-20 node memoryexhaustion, titan-22 CPU/RAM/GPU-VRAM pressure, Jellyfin CPU throttling,
titan-21 CPU pressure.
services/monitoring/grafana-dashboard-gpu.yaml+services/monitoring/dashboards/atlas-gpu.json— two newAtlas GPUpanels (VRAM used/free, NVENC/NVDEC utilization by node), generated via
scripts/render/dashboards_render_atlas.py(re-ran the generator;committed output is byte-identical to what it regenerates).
Rollback plan
Purely additive: one new doc, one new
vmalertrule group (new group name,does not modify or remove any existing group/rule), and two new dashboard
panels appended to the existing
Atlas GPUdashboard (does not modify anyexisting panel). No workload manifests, taints, priority classes, or node
labels are touched. To roll back, revert this PR's merge commit; nothing
else depends on the new alerts/panels/doc. No live cluster mutation is
performed by merging this PR beyond Flux reconciling the new
vmalert/dashboard ConfigMaps — if the new alert group is noisy, deletethe
atlas.titan-media-capacitygroup block fromvmalert-atlas-availability.yamlin a follow-up PR.Validation
kustomize build services/monitoringsucceeds.python3 scripts/render/dashboards_render_atlas.pyregeneratesgrafana-dashboard-gpu.yaml/atlas-gpu.jsonbyte-identical to what'scommitted.
pytest scripts/tests scripts/tests/test_dashboards_render_atlas_drilldowns.py testing/tests/test_atlas_ai_dashboard.pyand the monitoring capacitysuites pass, except two pre-existing failures on
origin/mainunrelated to this PR's diff (
test_victoria_metrics_has_dashboard_burst_headroom,test_metrics_storage_holds_a_full_retention_period) — both caused bythe same direct
maincommits documented in report §4a(
271f3e8c3,1e6eda863), not by this PR. Neither test's file istouched here.
this read-only session (
get/list/watchonly, no mutate verbs) cannottrigger one; report §8 documents the plan to run once merged.
Leaving as draft for Brad's review per policy; not merging.
Checkout
From your project repository, check out a new branch and test the changes.