use std::sync::atomic::{AtomicU16, Ordering};
static QUEUE_DEPTH: AtomicU16 = AtomicU16::new(0);
static LAST_ERROR: AtomicU16 = AtomicU16::new(0);
fn main() -> std::io::Result<()> {
let mut agent = varta_client::Varta::connect("/tmp/varta.sock")?;
loop {
let depth = QUEUE_DEPTH.load(Ordering::Relaxed);
let err = LAST_ERROR.load(Ordering::Relaxed);
let payload = ((depth as u32) << 16) | (err as u32);
match agent.beat(varta_client::Status::Ok, payload) {
varta_client::BeatOutcome::Sent => {}
varta_client::BeatOutcome::Dropped(_) => {
eprintln!("varta: beat dropped (observer down or queue full)");
}
varta_client::BeatOutcome::Failed(e) => {
eprintln!("varta: beat failed: {e}");
}
}
std::thread::sleep(std::time::Duration::from_millis(500));
}
}