Pulse/internal/alerts
rcourtman 5bc209d919 fix(alerts): deduplicate flapping history entries on load and periodic cleanup
Add deduplicateHistory() to HistoryManager that collapses consecutive
same-alert entries within a 5-minute window. The flapping/re-fire bugs
(lifecycle and stateful paths) created many duplicate history entries
before the cooldown fixes were deployed. This cleanup runs on startup
after loadHistory and periodically alongside cleanOldEntries, so both
existing noise and any future edge-case duplicates are handled.

On this install: 332 entries → 130 (60% reduction).
2026-06-27 16:36:29 +01:00
..
config Normalize PBS alert threshold defaults on config update 2026-06-04 09:37:28 +01:00
specs Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
ack_state.go Stabilize backend race tests for v6 RC publish 2026-04-11 22:46:34 +01:00
active_cleanup.go Stabilize dev runtime and complete PMG read-state migration 2026-05-21 15:15:23 +01:00
active_lifecycle.go refactor: split active alert lifecycle 2026-05-06 14:44:04 +01:00
active_persistence.go refactor: split active alert persistence 2026-05-06 14:38:05 +01:00
alert_payload.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
alert_store.go Stabilize backend race tests for v6 RC publish 2026-04-11 22:46:34 +01:00
alerts_test.go Fix ZFS alert flapping caused by composite spec resource ID mismatch 2026-06-26 14:39:01 +01:00
backup_snapshot.go Make backup orphan detection type-aware (vm vs ct VMID collision) 2026-06-04 08:45:13 +01:00
callback_config_coverage_test.go refactor: split alert config runtime 2026-05-06 14:29:06 +01:00
callbacks.go Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
canonical_identity.go Stabilize backend race tests for v6 RC publish 2026-04-11 22:46:34 +01:00
canonical_lifecycle.go fix(alerts): re-fire cooldown for stateful alerts to prevent duplicate history 2026-06-27 15:58:22 +01:00
canonical_metric.go fix(alerts): regenerate message on re-evaluation, not just initial fire 2026-06-27 14:38:42 +01:00
canonical_stateful_test.go fix(alerts): re-fire cooldown for stateful alerts to prevent duplicate history 2026-06-27 15:58:22 +01:00
cleanup_test.go Fix flaky tests and improve coverage across alerts, api, and config packages 2026-01-03 18:36:17 +00:00
clone_test.go Add unit tests for Alert clone and metadata utility functions (alerts) 2025-11-30 05:19:38 +00:00
concurrency_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
config_aliases_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
config_facade.go Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
config_runtime.go Fix alert threshold and disk temperature regressions 2026-06-12 19:19:16 +01:00
config_validation_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
connection.go Add connection-degraded alert for wedged platform connections 2026-05-12 00:29:04 +01:00
connection_test.go fix(alerts): prevent duplicate history entries for flapping alerts 2026-06-27 15:38:13 +01:00
constants.go refactor: finish alerts manager decomposition 2026-05-06 15:00:30 +01:00
critical_threshold_test.go Fix unreachable critical escalation for high percentage thresholds 2026-06-26 22:42:02 +01:00
default_config.go Add Kubernetes, TrueNAS, and vSphere alert targets 2026-05-28 18:23:14 +01:00
default_normalization_test.go Seed disk temperature type defaults 2026-05-13 10:44:11 +01:00
disk_health.go refactor: split Proxmox disk health alerts 2026-05-06 13:56:36 +01:00
disk_type_infer.go add disk-type-aware threshold field and device inference helper 2026-05-13 07:13:46 +01:00
disk_type_infer_test.go add disk-type-aware threshold field and device inference helper 2026-05-13 07:13:46 +01:00
docker.go refactor: split Docker alert checker 2026-05-06 13:31:05 +01:00
escalation.go refactor: finish alerts manager decomposition 2026-05-06 15:00:30 +01:00
file_read_limits.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
filter_evaluation.go Forward-port stable guest alert override identity 2026-04-01 12:40:51 +01:00
filter_evaluation_test.go Forward-port stable guest alert override identity 2026-04-01 12:40:51 +01:00
flapping_callback_test.go fire flapping-detected callback on first transition 2026-05-13 00:28:24 +01:00
guest.go Suppress powered-off alerts for guests not configured to autostart 2026-06-26 00:22:59 +01:00
guest_metric_migration.go Make alert node display name resolution instance-aware 2026-04-01 17:24:30 +01:00
guest_override_identity.go Forward-port stable guest alert override identity 2026-04-01 12:40:51 +01:00
guest_snapshot.go Suppress powered-off alerts for guests not configured to autostart 2026-06-26 00:22:59 +01:00
guest_snapshot_test.go refactor: split Proxmox guest alerts 2026-05-06 14:17:14 +01:00
guest_tags_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
health_assessment.go refactor: split alert health assessment runtime 2026-05-06 14:10:41 +01:00
history.go fix(alerts): deduplicate flapping history entries on load and periodic cleanup 2026-06-27 16:36:29 +01:00
history_concurrency_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
history_dedup_test.go fix(alerts): deduplicate flapping history entries on load and periodic cleanup 2026-06-27 16:36:29 +01:00
history_lifecycle_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
history_test.go Forward-port guest alert node-move continuity 2026-04-01 13:18:15 +01:00
host.go Disambiguate linked host-agent alert names 2026-06-04 09:33:02 +01:00
host_dedup_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
host_disk_type_test.go Use disk type thresholds for SMART temperatures 2026-05-13 10:44:11 +01:00
lifecycle.go refactor: finish alerts manager decomposition 2026-05-06 15:00:30 +01:00
manager.go Add connection-degraded alert for wedged platform connections 2026-05-12 00:29:04 +01:00
metric_hooks.go refactor: finish alerts manager decomposition 2026-05-06 15:00:30 +01:00
metric_runtime.go Fix unreachable critical escalation for high percentage thresholds 2026-06-26 22:42:02 +01:00
migration_characterization_test.go Suppress powered-off alerts for guests not configured to autostart 2026-06-26 00:22:59 +01:00
model.go refactor: finish alerts manager decomposition 2026-05-06 15:00:30 +01:00
node.go refactor: split node alert checker 2026-05-06 13:47:54 +01:00
notification_policy.go Fix alert re-notification rate limiting 2026-06-03 12:43:17 +01:00
offline_toggle_test.go feat: finalize swarm service monitoring (#598) 2025-10-26 09:35:49 +00:00
override_normalization_test.go Forward-port stable guest alert override identity 2026-04-01 12:40:51 +01:00
pbs.go refactor: split PBS and storage alert checkers 2026-05-06 13:45:16 +01:00
pbs_offline_notification_test.go Fix alert threshold and disk temperature regressions 2026-06-12 19:19:16 +01:00
per_metric_delay_example_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
pmg.go Dedupe alerts PMG queue checks, vmware clones, licensing and proxmox client clones 2026-06-10 09:49:03 +01:00
pmg_anomaly_test.go Fix flaky tests and improve coverage across alerts, api, and config packages 2026-01-03 18:36:17 +00:00
quiet_hours_test.go Fix alert threshold and disk temperature regressions 2026-06-12 19:19:16 +01:00
read_model.go alerts(history): carry alert metadata to the frontend so resourceType resolves 2026-06-11 19:53:45 +01:00
storage.go Fix ZFS alert flapping caused by composite spec resource ID mismatch 2026-06-26 14:39:01 +01:00
storage_override_identity.go Reconcile Ceph pool alert identity 2026-05-28 14:42:43 +01:00
synology_test.go refactor: split alert health assessment runtime 2026-05-06 14:10:41 +01:00
test_helpers_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
threshold_resolution_shared_test.go Fix alert threshold and disk temperature regressions 2026-06-12 19:19:16 +01:00
threshold_update_test.go Port v5 alert lifecycle and linked agent overrides 2026-04-15 12:18:57 +01:00
time_threshold_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
tracking_cleanup.go refactor: split active alert persistence 2026-05-06 14:38:05 +01:00
unified_eval.go Fix unreachable critical escalation for high percentage thresholds 2026-06-26 22:42:02 +01:00
unified_eval_parity_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
unified_eval_test.go Fix alert re-notification rate limiting 2026-06-03 12:43:17 +01:00
unified_incidents.go Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
unified_incidents_test.go Add Kubernetes, TrueNAS, and vSphere alert targets 2026-05-28 18:23:14 +01:00
update_alerts_test.go Fix Docker update alert disable cleanup 2026-05-01 20:28:12 +01:00
utility_test.go Disambiguate linked host-agent alert names 2026-06-04 09:33:02 +01:00