nym_node_metrics/
lib.rs

1// Copyright 2024 - Nym Technologies SA <contact@nymtech.net>
2// SPDX-License-Identifier: Apache-2.0
3
4#![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}