vector/
heartbeat.rs

1//! Emits a heartbeat internal metric.
2use std::time::{Duration, Instant};
3
4use tokio::time::interval;
5
6use crate::internal_events::Heartbeat;
7
8/// Emits Heartbeat event every second.
9pub async fn heartbeat() {
10    let since = Instant::now();
11    let mut interval = interval(Duration::from_secs(1));
12    loop {
13        interval.tick().await;
14        emit!(Heartbeat { since });
15    }
16}