kube_forward/
metrics.rs

1use metrics::{counter, gauge};
2
3#[derive(Clone, Debug, PartialEq)]
4pub struct ForwardMetrics {
5    pub(crate) name: String,
6}
7
8impl ForwardMetrics {
9    pub fn new(name: String) -> Self {
10        Self { name }
11    }
12
13    pub fn record_connection_attempt(&self) {
14        counter!("port_forward_connection_attempts_total", 1, "forward" => self.name.clone());
15    }
16
17    pub fn record_connection_success(&self) {
18        counter!("port_forward_connection_successes_total", 1, "forward" => self.name.clone());
19    }
20
21    pub fn record_connection_failure(&self) {
22        counter!("port_forward_connection_failures_total", 1, "forward" => self.name.clone());
23    }
24
25    pub fn set_connection_status(&self, connected: bool) {
26        gauge!("port_forward_connected", if connected { 1.0 } else { 0.0 }, "forward" => self.name.clone());
27    }
28}