1use iroh_metrics::{
4 core::{Counter, Metric},
5 struct_iterable::Iterable,
6};
7
8#[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}