mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-17 04:00:32 +00:00
During cluster startup, nodes were temporarily using the primary cluster endpoint for temperature collection before cluster metadata validation completed. This caused all nodes to show the same (incorrect) temperature values for ~4 minutes until validation finished and per-node endpoints were established. Example: minipc would show delly's temperature (90°C) instead of its own (50°C) from startup until cluster validation completed. Root cause: - Temperature collection started immediately at startup - Cluster endpoint validation happened asynchronously - Code fell back to primary endpoint when ClusterEndpoints was empty - All nodes used same endpoint, got same temperature data Fix: Skip temperature collection for cluster nodes until: 1. ClusterEndpoints array is populated (validation complete) 2. Node's specific endpoint is found in the cluster metadata This ensures correct temperature data from the very first collection, maintaining data integrity during startup. When persisted config exists, endpoints are available immediately so no delay occurs. For new clusters, temperature collection begins once validation completes (~30s). Preserves Pulse's correctness guarantee: users can trust metrics immediately after restart without waiting for "warm-up" period. |
||
|---|---|---|
| .. | ||
| 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_timeout_test.go | ||
| poller.go | ||
| ratetracker.go | ||
| ratetracker_concurrency_test.go | ||
| reload.go | ||
| scheduler.go | ||
| staleness_tracker.go | ||
| staleness_tracker_test.go | ||
| storage_backup_preserve_test.go | ||
| task_queue.go | ||
| temperature.go | ||
| temperature_service.go | ||
| temperature_test.go | ||