Files
Jędrzej Stuczyński 3efeededc5 feature: expand nym-node prometheus metrics (#5298)
* fixed bearer auth for prometheus route

* basic prometheus metrics

* added rates on global values

* improved structure on the prometheus metrics

* added additional metrics for ingress websockets and egress mixnet connections

* some channel business metrics

* fixed metrics registration and added additional variants

* added counter for number of disk persisted packets

* counter for pending egress packets

* counter for pending egress forward packets

* clippy
2025-01-07 13:34:18 +00:00

58 lines
1.8 KiB
Rust

// Copyright 2024 - Nym Technologies SA <contact@nymtech.net>
// SPDX-License-Identifier: Apache-2.0
use std::sync::atomic::{AtomicUsize, Ordering};
#[derive(Default)]
pub struct NodeStats {
pub final_hop_packets_pending_delivery: AtomicUsize,
pub forward_hop_packets_pending_delivery: AtomicUsize,
pub forward_hop_packets_being_delayed: AtomicUsize,
// packets that haven't yet been delayed and are waiting for their chance
pub packet_forwarder_queue_size: AtomicUsize,
}
impl NodeStats {
pub fn update_final_hop_packets_pending_delivery(&self, current: usize) {
self.final_hop_packets_pending_delivery
.store(current, Ordering::Relaxed);
}
pub fn final_hop_packets_pending_delivery_count(&self) -> usize {
self.final_hop_packets_pending_delivery
.load(Ordering::Relaxed)
}
pub fn update_forward_hop_packets_pending_delivery(&self, current: usize) {
self.forward_hop_packets_pending_delivery
.store(current, Ordering::Relaxed);
}
pub fn forward_hop_packets_pending_delivery_count(&self) -> usize {
self.forward_hop_packets_pending_delivery
.load(Ordering::Relaxed)
}
pub fn update_forward_hop_packets_being_delayed(&self, current: usize) {
self.forward_hop_packets_being_delayed
.store(current, Ordering::Relaxed);
}
pub fn forward_hop_packets_being_delayed_count(&self) -> usize {
self.forward_hop_packets_being_delayed
.load(Ordering::Relaxed)
}
pub fn update_packet_forwarder_queue_size(&self, current: usize) {
self.packet_forwarder_queue_size
.store(current, Ordering::Relaxed);
}
pub fn packet_forwarder_queue_size(&self) -> usize {
self.packet_forwarder_queue_size.load(Ordering::Relaxed)
}
}