use prometheus::IntCounter;
use scion_sdk_observability::metrics::registry::MetricsRegistry;
pub struct Metrics {
pub sender_metrics: SenderMetrics,
pub receiver_metrics: ReceiverMetrics,
}
impl Metrics {
pub fn new(metrics_registry: &MetricsRegistry) -> Self {
Metrics {
sender_metrics: SenderMetrics::new(metrics_registry),
receiver_metrics: ReceiverMetrics::new(metrics_registry),
}
}
}
#[derive(Debug, Clone)]
pub struct SenderMetrics {
pub datagrams_sent_total: IntCounter,
}
impl SenderMetrics {
pub fn new(metrics_registry: &MetricsRegistry) -> Self {
SenderMetrics {
datagrams_sent_total: metrics_registry.int_counter(
"snaptun_datagrams_sent_total",
"Total number of datagrams sent by the sender.",
),
}
}
}
#[derive(Debug, Clone)]
pub struct ReceiverMetrics {
pub datagrams_received_total: IntCounter,
}
impl ReceiverMetrics {
pub fn new(metrics_registry: &MetricsRegistry) -> Self {
ReceiverMetrics {
datagrams_received_total: metrics_registry.int_counter(
"snaptun_datagrams_received_total",
"Total number of datagrams received by the receiver.",
),
}
}
}