vector/internal_events/
heartbeat.rs

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