Short answer: No—individual heartbeats are not stored as discrete rows in the Event feed.
In Prefect 3.x:
- Heartbeats for flow runs/tasks/workers update “last seen/last heartbeat” metadata and are used internally (e.g., to detect zombies). They do not appear as a per-interval event in the Event feed.
- The Event feed primarily shows state changes and automation-related events. If you use zombie-detection automations, you’ll see the resulting actions (e.g., run marked Crashed) in the feed—not every heartbeat ping leading up to it.
If you want heartbeat-like signals in the Event feed, you can emit your own custom events on a schedule from your code:
from prefect.events import emit_event
emit_event(
event="myapp.heartbeat",
resource={"prefect.resource.id": f"prefect.flow-run.{flow_run_id}"},
)
References:
-
Detect zombie flows
-
Worker health checks
Quick follow-up: Are you asking about flow run, task run, or worker heartbeats? If you share your goal (auditing, alerting, debugging), I can suggest the cleanest way to surface that signal.