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.
|
||
|---|---|---|
| .. | ||
| alerts | ||
| api | ||
| auth | ||
| config | ||
| crypto | ||
| discovery | ||
| dockeragent | ||
| errors | ||
| hostagent | ||
| hostmetrics | ||
| logging | ||
| mock | ||
| models | ||
| monitoring | ||
| notifications | ||
| ssh/knownhosts | ||
| system | ||
| tempproxy | ||
| types | ||
| updates | ||
| utils | ||
| websocket | ||