use metrics::{counter, gauge};
pub fn record_clock_offset(offset_seconds: f64) {
gauge!("rtime_clock_offset_seconds").set(offset_seconds);
}
pub fn record_clock_jitter(jitter_seconds: f64) {
gauge!("rtime_clock_jitter_seconds").set(jitter_seconds);
}
pub fn record_clock_frequency(ppm: f64) {
gauge!("rtime_clock_frequency_ppm").set(ppm);
}
pub fn record_clock_stratum(stratum: u8) {
gauge!("rtime_clock_stratum").set(stratum as f64);
}
pub fn record_ntp_source_offset(peer: &str, offset_seconds: f64) {
gauge!("rtime_ntp_source_offset_seconds", "peer" => peer.to_string()).set(offset_seconds);
}
pub fn record_ntp_source_delay(peer: &str, delay_seconds: f64) {
gauge!("rtime_ntp_source_delay_seconds", "peer" => peer.to_string()).set(delay_seconds);
}
pub fn increment_ntp_packets_sent() {
counter!("rtime_ntp_packets_sent_total").increment(1);
}
pub fn increment_ntp_packets_received() {
counter!("rtime_ntp_packets_received_total").increment(1);
}
pub fn increment_ntp_packets_dropped() {
counter!("rtime_ntp_packets_dropped_total").increment(1);
}
pub fn increment_ntp_rate_limited() {
counter!("rtime_ntp_rate_limited_total").increment(1);
}
pub fn record_selection_truechimers(count: usize) {
gauge!("rtime_selection_truechimers").set(count as f64);
}
pub fn record_selection_falsetickers(count: usize) {
gauge!("rtime_selection_falsetickers").set(count as f64);
}
pub fn record_uptime(seconds: f64) {
gauge!("rtime_uptime_seconds").set(seconds);
}