reifydb_core/event/
metric.rs1use reifydb_codec::key::encoded::EncodedKey;
5use reifydb_value::{
6 byte_size::ByteSize,
7 count::Count,
8 value::{datetime::DateTime, duration::Duration},
9};
10use serde::{Deserialize, Serialize};
11
12use crate::{
13 common::CommitVersion, fingerprint::RequestFingerprint, interface::catalog::metrics::MetricsId,
14 metrics::execution::StatementMetrics,
15};
16
17define_event! {
18
19
20 pub struct MultiCommittedEvent {
21 pub writes: Vec<MultiWrite>,
22 pub deletes: Vec<MultiDelete>,
23 pub version: CommitVersion,
24 }
25}
26
27#[derive(Clone, Debug)]
28pub struct MultiWrite {
29 pub key: EncodedKey,
30 pub value_bytes: u64,
31}
32
33#[derive(Clone, Debug)]
34pub struct MultiDelete {
35 pub key: EncodedKey,
36}
37
38define_event! {
39
40 pub struct MultiSweptEvent {
41 pub evictions: Vec<MultiEviction>,
42 pub persists: Vec<MultiPersist>,
43 pub version: CommitVersion,
44 }
45}
46
47#[derive(Clone, Debug)]
48pub struct MultiEviction {
49 pub key: EncodedKey,
50 pub value_bytes: ByteSize,
51 pub current: bool,
52}
53
54#[derive(Clone, Debug)]
55pub struct MultiPersist {
56 pub key: EncodedKey,
57 pub value_bytes: ByteSize,
58}
59
60define_event! {
61
62 pub struct CdcWrittenEvent {
63 pub entries: Vec<CdcWrite>,
64 pub version: CommitVersion,
65 }
66}
67
68#[derive(Clone, Debug)]
69pub struct CdcWrite {
70 pub key: EncodedKey,
71 pub value_bytes: ByteSize,
72}
73
74#[derive(Clone, Debug, Serialize, Deserialize)]
75pub struct CdcEviction {
76 pub id: MetricsId,
77 pub key_bytes: ByteSize,
78 pub value_bytes: ByteSize,
79 pub count: Count,
80}
81
82define_event! {
83
84 pub struct CdcEvictedEvent {
85 pub entries: Vec<CdcEviction>,
86 pub version: CommitVersion,
87 }
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize)]
91pub enum Request {
92 Query {
93 fingerprint: RequestFingerprint,
94 statements: Vec<StatementMetrics>,
95 },
96 Command {
97 fingerprint: RequestFingerprint,
98 statements: Vec<StatementMetrics>,
99 },
100 Admin {
101 fingerprint: RequestFingerprint,
102 statements: Vec<StatementMetrics>,
103 },
104}
105
106define_event! {
107
108 pub struct RequestExecutedEvent {
109 pub request: Request,
110 pub total: Duration,
111 pub compute: Duration,
112 pub success: bool,
113 pub timestamp: DateTime,
114 }
115}