Skip to main content

iroh_sync/
metrics.rs

1//! Metrics for iroh-sync
2
3use iroh_metrics::{
4    core::{Counter, Metric},
5    struct_iterable::Iterable,
6};
7
8/// Metrics for iroh-sync
9#[allow(missing_docs)]
10#[derive(Debug, Clone, Iterable)]
11pub struct Metrics {
12    pub new_entries_local: Counter,
13    pub new_entries_remote: Counter,
14    pub new_entries_local_size: Counter,
15    pub new_entries_remote_size: Counter,
16    pub sync_via_connect_success: Counter,
17    pub sync_via_connect_failure: Counter,
18    pub sync_via_accept_success: Counter,
19    pub sync_via_accept_failure: Counter,
20}
21
22impl Default for Metrics {
23    fn default() -> Self {
24        Self {
25            new_entries_local: Counter::new("Number of document entries added locally"),
26            new_entries_remote: Counter::new("Number of document entries added by peers"),
27            new_entries_local_size: Counter::new("Total size of entry contents added locally"),
28            new_entries_remote_size: Counter::new("Total size of entry contents added by peers"),
29            sync_via_accept_success: Counter::new("Number of successful syncs (via accept)"),
30            sync_via_accept_failure: Counter::new("Number of failed syncs (via accept)"),
31            sync_via_connect_success: Counter::new("Number of successful syncs (via connect)"),
32            sync_via_connect_failure: Counter::new("Number of failed syncs (via connect)"),
33        }
34    }
35}
36
37impl Metric for Metrics {
38    fn name() -> &'static str {
39        "iroh_sync"
40    }
41}