vector/internal_events/
heartbeat.rs

1use std::time::Instant;
2
3use crate::built_info;
4use metrics::gauge;
5use vector_lib::internal_event::InternalEvent;
6
7#[derive(Debug)]
8pub struct Heartbeat {
9    pub since: Instant,
10}
11
12impl InternalEvent for Heartbeat {
13    fn emit(self) {
14        trace!(target: "vector", message = "Beep.");
15        gauge!("uptime_seconds").set(self.since.elapsed().as_secs() as f64);
16        gauge!(
17            "build_info",
18            "debug" => built_info::DEBUG,
19            "version" => built_info::PKG_VERSION,
20            "rust_version" => built_info::RUST_VERSION,
21            "arch" => built_info::TARGET_ARCH,
22            "revision" => built_info::VECTOR_BUILD_DESC.unwrap_or("")
23        )
24        .set(1.0);
25    }
26}