@@ -24,6 +24,7 @@ use crate::option::{Mode, CONFIG};
24
24
use crate :: storage;
25
25
use crate :: { metadata, stats} ;
26
26
27
+ use crate :: stats:: Stats ;
27
28
use actix_web:: { web, HttpRequest , Responder } ;
28
29
use chrono:: { DateTime , Utc } ;
29
30
use clokwerk:: { AsyncScheduler , Interval } ;
@@ -70,6 +71,12 @@ pub struct Report {
70
71
total_events_count : u64 ,
71
72
total_json_bytes : u64 ,
72
73
total_parquet_bytes : u64 ,
74
+ current_events_count : u64 ,
75
+ current_json_bytes : u64 ,
76
+ current_parquet_bytes : u64 ,
77
+ deleted_events_count : u64 ,
78
+ deleted_json_bytes : u64 ,
79
+ deleted_parquet_bytes : u64 ,
73
80
metrics : HashMap < String , Value > ,
74
81
}
75
82
@@ -112,6 +119,12 @@ impl Report {
112
119
total_events_count : ingestor_metrics. 3 ,
113
120
total_json_bytes : ingestor_metrics. 4 ,
114
121
total_parquet_bytes : ingestor_metrics. 5 ,
122
+ current_events_count : ingestor_metrics. 6 ,
123
+ current_json_bytes : ingestor_metrics. 7 ,
124
+ current_parquet_bytes : ingestor_metrics. 8 ,
125
+ deleted_events_count : ingestor_metrics. 9 ,
126
+ deleted_json_bytes : ingestor_metrics. 10 ,
127
+ deleted_parquet_bytes : ingestor_metrics. 11 ,
115
128
metrics : build_metrics ( ) . await ,
116
129
} )
117
130
}
@@ -132,26 +145,70 @@ fn total_streams() -> usize {
132
145
metadata:: STREAM_INFO . list_streams ( ) . len ( )
133
146
}
134
147
135
- fn total_event_stats ( ) -> ( u64 , u64 , u64 ) {
148
+ fn total_event_stats ( ) -> ( Stats , Stats , Stats ) {
136
149
let mut total_events: u64 = 0 ;
137
150
let mut total_parquet_bytes: u64 = 0 ;
138
151
let mut total_json_bytes: u64 = 0 ;
139
152
153
+ let mut current_events: u64 = 0 ;
154
+ let mut current_parquet_bytes: u64 = 0 ;
155
+ let mut current_json_bytes: u64 = 0 ;
156
+
157
+ let mut deleted_events: u64 = 0 ;
158
+ let mut deleted_parquet_bytes: u64 = 0 ;
159
+ let mut deleted_json_bytes: u64 = 0 ;
160
+
140
161
for stream in metadata:: STREAM_INFO . list_streams ( ) {
141
162
let Some ( stats) = stats:: get_current_stats ( & stream, "json" ) else {
142
163
continue ;
143
164
} ;
144
- total_events += stats. events ;
145
- total_parquet_bytes += stats. storage ;
146
- total_json_bytes += stats. ingestion ;
165
+ total_events += stats. lifetime_stats . events ;
166
+ total_parquet_bytes += stats. lifetime_stats . storage ;
167
+ total_json_bytes += stats. lifetime_stats . ingestion ;
168
+
169
+ current_events += stats. current_stats . events ;
170
+ current_parquet_bytes += stats. current_stats . storage ;
171
+ current_json_bytes += stats. current_stats . ingestion ;
172
+
173
+ deleted_events += stats. deleted_stats . events ;
174
+ deleted_parquet_bytes += stats. deleted_stats . storage ;
175
+ deleted_json_bytes += stats. deleted_stats . ingestion ;
147
176
}
148
- ( total_events, total_json_bytes, total_parquet_bytes)
177
+
178
+ (
179
+ Stats {
180
+ events : total_events,
181
+ ingestion : total_json_bytes,
182
+ storage : total_parquet_bytes,
183
+ } ,
184
+ Stats {
185
+ events : current_events,
186
+ ingestion : current_json_bytes,
187
+ storage : current_parquet_bytes,
188
+ } ,
189
+ Stats {
190
+ events : deleted_events,
191
+ ingestion : deleted_json_bytes,
192
+ storage : deleted_parquet_bytes,
193
+ } ,
194
+ )
149
195
}
150
196
151
- async fn fetch_ingestors_metrics ( ) -> anyhow:: Result < ( u64 , u64 , usize , u64 , u64 , u64 ) > {
197
+ async fn fetch_ingestors_metrics (
198
+ ) -> anyhow:: Result < ( u64 , u64 , usize , u64 , u64 , u64 , u64 , u64 , u64 , u64 , u64 , u64 ) > {
152
199
let event_stats = total_event_stats ( ) ;
153
- let mut node_metrics =
154
- NodeMetrics :: new ( total_streams ( ) , event_stats. 0 , event_stats. 1 , event_stats. 2 ) ;
200
+ let mut node_metrics = NodeMetrics :: new (
201
+ total_streams ( ) ,
202
+ event_stats. 0 . events ,
203
+ event_stats. 0 . ingestion ,
204
+ event_stats. 0 . storage ,
205
+ event_stats. 1 . events ,
206
+ event_stats. 1 . ingestion ,
207
+ event_stats. 1 . storage ,
208
+ event_stats. 2 . events ,
209
+ event_stats. 2 . ingestion ,
210
+ event_stats. 2 . storage ,
211
+ ) ;
155
212
156
213
let mut vec = vec ! [ ] ;
157
214
let mut active_ingestors = 0u64 ;
@@ -198,6 +255,12 @@ async fn fetch_ingestors_metrics() -> anyhow::Result<(u64, u64, usize, u64, u64,
198
255
node_metrics. total_events_count ,
199
256
node_metrics. total_json_bytes ,
200
257
node_metrics. total_parquet_bytes ,
258
+ node_metrics. current_events_count ,
259
+ node_metrics. current_json_bytes ,
260
+ node_metrics. current_parquet_bytes ,
261
+ node_metrics. deleted_events_count ,
262
+ node_metrics. deleted_json_bytes ,
263
+ node_metrics. deleted_parquet_bytes ,
201
264
) )
202
265
}
203
266
@@ -255,30 +318,56 @@ struct NodeMetrics {
255
318
total_events_count : u64 ,
256
319
total_json_bytes : u64 ,
257
320
total_parquet_bytes : u64 ,
321
+ current_events_count : u64 ,
322
+ current_json_bytes : u64 ,
323
+ current_parquet_bytes : u64 ,
324
+ deleted_events_count : u64 ,
325
+ deleted_json_bytes : u64 ,
326
+ deleted_parquet_bytes : u64 ,
258
327
}
259
328
260
329
impl NodeMetrics {
261
330
fn build ( ) -> Self {
262
331
let event_stats = total_event_stats ( ) ;
263
332
Self {
264
333
stream_count : total_streams ( ) ,
265
- total_events_count : event_stats. 0 ,
266
- total_json_bytes : event_stats. 1 ,
267
- total_parquet_bytes : event_stats. 2 ,
334
+ total_events_count : event_stats. 0 . events ,
335
+ total_json_bytes : event_stats. 0 . ingestion ,
336
+ total_parquet_bytes : event_stats. 0 . storage ,
337
+
338
+ current_events_count : event_stats. 1 . events ,
339
+ current_json_bytes : event_stats. 1 . ingestion ,
340
+ current_parquet_bytes : event_stats. 1 . storage ,
341
+
342
+ deleted_events_count : event_stats. 2 . events ,
343
+ deleted_json_bytes : event_stats. 2 . ingestion ,
344
+ deleted_parquet_bytes : event_stats. 2 . storage ,
268
345
}
269
346
}
270
-
347
+ # [ allow ( clippy :: too_many_arguments ) ]
271
348
fn new (
272
349
stream_count : usize ,
273
350
total_events_count : u64 ,
274
351
total_json_bytes : u64 ,
275
352
total_parquet_bytes : u64 ,
353
+ current_events_count : u64 ,
354
+ current_json_bytes : u64 ,
355
+ current_parquet_bytes : u64 ,
356
+ deleted_events_count : u64 ,
357
+ deleted_json_bytes : u64 ,
358
+ deleted_parquet_bytes : u64 ,
276
359
) -> Self {
277
360
Self {
278
361
stream_count,
279
362
total_events_count,
280
363
total_json_bytes,
281
364
total_parquet_bytes,
365
+ current_events_count,
366
+ current_json_bytes,
367
+ current_parquet_bytes,
368
+ deleted_events_count,
369
+ deleted_json_bytes,
370
+ deleted_parquet_bytes,
282
371
}
283
372
}
284
373
0 commit comments