vector/internal_events/
heartbeat.rs

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