Hermes VM
d9618ba7b0
feat(vm): Phases 1.2, 1.4, 2.1 — steal time, swap pressure, health watchdog
...
Phase 1.2 — CPU steal time metric in vm-health-check.sh:
- Samples /proc/stat twice 1s apart for accurate current steal %
- Thresholds: >5% WARN, >15% CRIT (currently 0.8% on this host)
- Inserts before memory check so steal is visible alongside load
Phase 1.4 — Swap pressure indicator:
- Reads SwapCached from /proc/meminfo as secondary metric
- Raises SWAP_USED_WARN_GB 1→1.5 to reduce noise (current usage 0.6G)
- New WARN path: SwapCached > 200MB signals recent pressure even when
current swap usage looks ok (catches post-spike state)
Phase 2.1 — Docker health-check watchdog:
- docker-health-watchdog.sh: checks unhealthy containers every 10 min,
restarts only after 3 consecutive failing health checks (30min grace)
- docker-health-watchdog.service + .timer: enabled, fires every 10 min
- Sends Telegram notification on each auto-restart
- Rollback: systemctl disable docker-health-watchdog.timer
Phase 2.2 already complete: sync_hermes_persistent_backup.py handles
diverge gracefully with rebase/reset-hard fallback; running successfully.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 21:31:09 +00:00
Hermes VM
2fc23d6baa
feat(vm): fix devops-backend VM module — Phase 0.1 complete
...
- Switch backend runner from node:20-alpine to node:20-slim so GNU df
flags (--output=pcent/avail) work inside the container
- Add volume mounts to docker-compose.yml: scripts (ro), VM logs (rw),
docker.sock; set VM_SCRIPTS_PATH + VM_LOG_DIR env vars
- Rebuild repository.ts: env-configurable paths, cron history parser,
unhealthy-container inspector, Ollama model endpoints
- Add routes: GET /api/vm/cron-status, unhealthy containers, Ollama
models, container restart, model unload
- vm-cleanup.sh: add step_cosmos_pglog, step_docker_aged_images; fix
(( count++ )) → count=$(( count + 1 )) for set -e compatibility
- Add docs/VM_OBSERVABILITY_ROADMAP.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 21:13:45 +00:00
Hermes VM
0a2d303f93
add HostingerVM health-check and cleanup scripts
...
- vm-health-check.sh: read-only checks for disk, load, RAM, swap,
Docker containers (crash-loops + healthchecks), build cache, journal.
Flags: --quiet, --json, --notify (Telegram). Exit 0/1/2 = OK/WARN/CRIT.
- vm-cleanup.sh: safe periodic cleanup.
Default (weekly): build cache, journal, apt, npm, .next/cache.
--full (monthly): adds docker system prune, pnpm store, old logs, HOLD cleanup.
--dry-run, --install-cron, --uninstall-cron.
Logs to /var/log/vm-cleanup.log.
Related: docs/hostinger-vm-maintenance.md, scripts/VMs/HostingerVM/CRON_SETUP.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 18:53:20 +00:00