fred/commands/interfaces/
metrics.rs1use crate::interfaces::ClientLike;
2
3#[cfg(feature = "metrics")]
4use crate::modules::metrics::Stats;
5
6pub trait MetricsInterface: ClientLike + Sized {
8 fn read_redelivery_count(&self) -> usize {
13 self.inner().counters.read_redelivery_count()
14 }
15
16 fn take_redelivery_count(&self) -> usize {
18 self.inner().counters.take_redelivery_count()
19 }
20
21 fn command_queue_len(&self) -> usize {
23 self.inner().counters.read_cmd_buffer_len()
24 }
25
26 #[cfg(feature = "metrics")]
32 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
33 fn read_latency_metrics(&self) -> Stats {
34 self.inner().latency_stats.read().read_metrics()
35 }
36
37 #[cfg(feature = "metrics")]
39 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
40 fn take_latency_metrics(&self) -> Stats {
41 self.inner().latency_stats.write().take_metrics()
42 }
43
44 #[cfg(feature = "metrics")]
50 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
51 fn read_network_latency_metrics(&self) -> Stats {
52 self.inner().network_latency_stats.read().read_metrics()
53 }
54
55 #[cfg(feature = "metrics")]
57 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
58 fn take_network_latency_metrics(&self) -> Stats {
59 self.inner().network_latency_stats.write().take_metrics()
60 }
61
62 #[cfg(feature = "metrics")]
64 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
65 fn read_req_size_metrics(&self) -> Stats {
66 self.inner().req_size_stats.read().read_metrics()
67 }
68
69 #[cfg(feature = "metrics")]
71 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
72 fn take_req_size_metrics(&self) -> Stats {
73 self.inner().req_size_stats.write().take_metrics()
74 }
75
76 #[cfg(feature = "metrics")]
78 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
79 fn read_res_size_metrics(&self) -> Stats {
80 self.inner().res_size_stats.read().read_metrics()
81 }
82
83 #[cfg(feature = "metrics")]
85 #[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
86 fn take_res_size_metrics(&self) -> Stats {
87 self.inner().res_size_stats.write().take_metrics()
88 }
89}