-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
Copy pathevents_sent.rs
46 lines (39 loc) · 1.43 KB
/
events_sent.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use metrics::{register_counter, Counter};
use tracing::trace;
use super::{CountByteSize, Output, SharedString};
pub const DEFAULT_OUTPUT: &str = "_default";
crate::registered_event!(
EventsSent {
output: Option<SharedString>,
} => {
events: Counter = if let Some(output) = &self.output {
register_counter!("component_sent_events_total", "output" => output.clone())
} else {
register_counter!("component_sent_events_total")
},
event_bytes: Counter = if let Some(output) = &self.output {
register_counter!("component_sent_event_bytes_total", "output" => output.clone())
} else {
register_counter!("component_sent_event_bytes_total")
},
output: Option<SharedString> = self.output,
}
fn emit(&self, data: CountByteSize) {
let CountByteSize(count, byte_size) = data;
match &self.output {
Some(output) => {
trace!(message = "Events sent.", count = %count, byte_size = %byte_size.get(), output = %output);
}
None => {
trace!(message = "Events sent.", count = %count, byte_size = %byte_size.get());
}
}
self.events.increment(count as u64);
self.event_bytes.increment(byte_size.get() as u64);
}
);
impl From<Output> for EventsSent {
fn from(output: Output) -> Self {
Self { output: output.0 }
}
}