1#![warn(clippy::expect_used)]
5#![warn(clippy::unwrap_used)]
6#![warn(clippy::todo)]
7#![warn(clippy::dbg_macro)]
8
9use crate::entry::EntryStats;
10use crate::mixnet::MixingStats;
11use crate::network::NetworkStats;
12use crate::process::NodeStats;
13use crate::wireguard::WireguardStats;
14use std::ops::Deref;
15use std::sync::Arc;
16
17pub mod entry;
18pub mod events;
19pub mod mixnet;
20pub mod network;
21pub mod process;
22pub mod prometheus_wrapper;
23pub mod wireguard;
24
25#[derive(Clone, Default)]
26pub struct NymNodeMetrics {
27 inner: Arc<NymNodeMetricsInner>,
28}
29
30impl NymNodeMetrics {
31 pub fn new() -> Self {
32 NymNodeMetrics::default()
33 }
34}
35
36impl Deref for NymNodeMetrics {
37 type Target = NymNodeMetricsInner;
38 fn deref(&self) -> &Self::Target {
39 &self.inner
40 }
41}
42
43#[derive(Default)]
44pub struct NymNodeMetricsInner {
45 pub mixnet: MixingStats,
46 pub entry: EntryStats,
47 pub wireguard: WireguardStats,
48
49 pub network: NetworkStats,
50 pub process: NodeStats,
51}