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 pub value_bytes: u64,
37}
38
39define_event! {
40
41 pub struct MultiSweptEvent {
42 pub evictions: Vec<MultiEviction>,
43 pub persists: Vec<MultiPersist>,
44 pub version: CommitVersion,
45 }
46}
47
48#[derive(Clone, Debug)]
49pub struct MultiEviction {
50 pub key: EncodedKey,
51 pub value_bytes: ByteSize,
52 pub current: bool,
53}
54
55#[derive(Clone, Debug)]
56pub struct MultiPersist {
57 pub key: EncodedKey,
58 pub value_bytes: ByteSize,
59}
60
61define_event! {
62
63 pub struct CdcWrittenEvent {
64 pub entries: Vec<CdcWrite>,
65 pub version: CommitVersion,
66 }
67}
68
69#[derive(Clone, Debug)]
70pub struct CdcWrite {
71 pub key: EncodedKey,
72 pub value_bytes: ByteSize,
73}
74
75#[derive(Clone, Debug, Serialize, Deserialize)]
76pub struct CdcEviction {
77 pub id: MetricsId,
78 pub key_bytes: ByteSize,
79 pub value_bytes: ByteSize,
80 pub count: Count,
81}
82
83define_event! {
84
85 pub struct CdcEvictedEvent {
86 pub entries: Vec<CdcEviction>,
87 pub version: CommitVersion,
88 }
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
92pub enum Request {
93 Query {
94 fingerprint: RequestFingerprint,
95 statements: Vec<StatementMetrics>,
96 },
97 Command {
98 fingerprint: RequestFingerprint,
99 statements: Vec<StatementMetrics>,
100 },
101 Admin {
102 fingerprint: RequestFingerprint,
103 statements: Vec<StatementMetrics>,
104 },
105}
106
107define_event! {
108
109 pub struct RequestExecutedEvent {
110 pub request: Request,
111 pub total: Duration,
112 pub compute: Duration,
113 pub success: bool,
114 pub timestamp: DateTime,
115 }
116}