mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-02 13:30:13 +00:00
Implemented comprehensive state preservation to prevent temporary dropouts:
1. Node Grace Period (60s):
- Track last-online timestamp for each Proxmox node
- Preserve online status during grace period to prevent flapping
- Applied to all node status checks throughout codebase
2. Efficient Polling Preservation:
- Detect when cluster/resources returns empty arrays
- Preserve previous VMs/containers if had resources before
- Handles cluster health check failures gracefully
3. Traditional Polling Preservation:
- Updated preservation logic for per-node VM/container polling
- Triggers when zero resources returned regardless of node response
- Fixed issue where nodes responding with empty data bypassed preservation
Root cause: Intermittent Proxmox cluster health failures ("no healthy nodes
available") caused both efficient and traditional polling to return empty
arrays, immediately clearing all VMs/containers from state.
Changes:
- internal/monitoring/monitor.go: Added node grace period, efficient polling preservation
- internal/monitoring/monitor_polling.go: Fixed traditional polling preservation logic
Fixes frequent UI flickering where vmCount/containerCount would briefly drop to zero.
|
||
|---|---|---|
| .. | ||
| backoff.go | ||
| backoff_test.go | ||
| backup_guard_test.go | ||
| ceph.go | ||
| circuit_breaker.go | ||
| circuit_breaker_test.go | ||
| container_disk_usage.go | ||
| diagnostic_snapshots.go | ||
| docker_commands.go | ||
| docker_commands_test.go | ||
| fake_executor_integration.go | ||
| fs_filters.go | ||
| fs_filters_test.go | ||
| harness_integration.go | ||
| helpers_test.go | ||
| integration_integration_test.go | ||
| main_test.go | ||
| metrics.go | ||
| metrics_history.go | ||
| metrics_history_concurrency_test.go | ||
| monitor.go | ||
| monitor_docker_test.go | ||
| monitor_health_test.go | ||
| monitor_host_agents_test.go | ||
| monitor_memory_test.go | ||
| monitor_pmg_test.go | ||
| monitor_polling.go | ||
| monitor_snapshots_test.go | ||
| monitor_storage_test.go | ||
| monitor_temperature_toggle_test.go | ||
| poller.go | ||
| ratetracker.go | ||
| ratetracker_concurrency_test.go | ||
| reload.go | ||
| scheduler.go | ||
| staleness_tracker.go | ||
| staleness_tracker_test.go | ||
| task_queue.go | ||
| temperature.go | ||
| temperature_service.go | ||
| temperature_test.go | ||