A cloud-native SIEM solution that provides intelligent security analytics and threat detection across systems
Hello Muhammad Arif Ahmed,
This behavior can occur due to query timing and ingestion delay when monitoring heartbeats in Microsoft Sentinel using the Azure Monitor Agent on machines connected through Azure Arc.
Sometimes the heartbeat is generated on time by the VM, but it may take a few minutes before it is fully ingested into the Log Analytics workspace. If the analytics rule runs during that delay window, it may temporarily appear that the heartbeat is missing, which can trigger a false alert. Later, when the data finishes ingesting, the Heartbeat table appears continuous.
A better approach is to design the alert rule so it calculates the time since the last heartbeat rather than simply checking if a record exists. For example:
Heartbeat
Then configure the alert rule with:
Measure: MinutesSinceLastHeartbeat
Aggregation type: Maximum
Aggregation granularity: Same as the evaluation frequency (for example 5 minutes)
Also make sure the Override query time range is larger than the threshold. For example, if you want to alert when a VM has no heartbeat for 10 minutes, set the query time range to something higher such as 30–60 minutes. Otherwise, a VM that stopped sending heartbeats may not appear in the query results at all.
Many environments also add a buffer (for example 15 minutes instead of 10) to account for occasional ingestion latency.
This approach usually reduces the false-positive alerts while still detecting genuine heartbeat failures.
https://learn.microsoft.com/en-us/azure/azure-monitor/reference/queries/heartbeat