@@ -29,13 +29,10 @@ use tracing::error;
29
29
use crate :: {
30
30
alerts:: { get_alerts_info, AlertError , AlertsInfo , ALERTS } ,
31
31
correlation:: { CorrelationError , CORRELATIONS } ,
32
- handlers:: http:: {
33
- cluster:: fetch_daily_stats_from_ingestors,
34
- logstream:: { error:: StreamError , get_stats_date} ,
35
- } ,
32
+ handlers:: http:: logstream:: error:: StreamError ,
36
33
parseable:: PARSEABLE ,
37
34
rbac:: { map:: SessionKey , role:: Action , Users } ,
38
- stats:: Stats ,
35
+ stats:: { DatedStats , Stats } ,
39
36
storage:: { ObjectStorageError , ObjectStoreFormat , STREAM_ROOT_DIRECTORY } ,
40
37
users:: { dashboards:: DASHBOARDS , filters:: FILTERS } ,
41
38
} ;
@@ -47,14 +44,6 @@ struct StreamInfo {
47
44
stats_summary : Stats ,
48
45
}
49
46
50
- #[ derive( Debug , Serialize , Default ) ]
51
- struct DatedStats {
52
- date : String ,
53
- events : u64 ,
54
- ingestion_size : u64 ,
55
- storage_size : u64 ,
56
- }
57
-
58
47
#[ derive( Debug , Serialize ) ]
59
48
struct TitleAndId {
60
49
title : String ,
@@ -155,8 +144,8 @@ pub async fn generate_home_response(key: &SessionKey) -> Result<HomeResponse, Pr
155
144
. checked_sub_signed ( chrono:: Duration :: days ( i) )
156
145
. ok_or_else ( || anyhow:: Error :: msg ( "Date conversion faield" ) )
157
146
. unwrap ( )
147
+ . date_naive ( )
158
148
} )
159
- . map ( |date| date. format ( "%Y-%m-%d" ) . to_string ( ) )
160
149
. collect_vec ( ) ;
161
150
162
151
let mut stream_details = Vec :: new ( ) ;
@@ -193,7 +182,11 @@ pub async fn generate_home_response(key: &SessionKey) -> Result<HomeResponse, Pr
193
182
}
194
183
195
184
for date in dates. into_iter ( ) {
196
- let dated_stats = stats_for_date ( date, stream_wise_ingestor_stream_json. clone ( ) ) . await ?;
185
+ let Some ( dated_stats) =
186
+ DatedStats :: for_all_streams ( date, & stream_wise_ingestor_stream_json) . await ?
187
+ else {
188
+ continue ;
189
+ } ;
197
190
summary. stats_summary . events += dated_stats. events ;
198
191
summary. stats_summary . ingestion += dated_stats. ingestion_size ;
199
192
summary. stats_summary . storage += dated_stats. storage_size ;
@@ -213,28 +206,6 @@ pub async fn generate_home_response(key: &SessionKey) -> Result<HomeResponse, Pr
213
206
} )
214
207
}
215
208
216
- async fn stats_for_date (
217
- date : String ,
218
- stream_wise_meta : HashMap < String , Vec < ObjectStoreFormat > > ,
219
- ) -> Result < DatedStats , PrismHomeError > {
220
- // collect stats for all the streams for the given date
221
- let mut details = DatedStats {
222
- date : date. clone ( ) ,
223
- ..Default :: default ( )
224
- } ;
225
-
226
- for ( stream, meta) in stream_wise_meta {
227
- let querier_stats = get_stats_date ( & stream, & date) . await ?;
228
- let ingestor_stats = fetch_daily_stats_from_ingestors ( & date, & meta) ?;
229
- // collect date-wise stats for all streams
230
- details. events += querier_stats. events + ingestor_stats. events ;
231
- details. ingestion_size += querier_stats. ingestion + ingestor_stats. ingestion ;
232
- details. storage_size += querier_stats. storage + ingestor_stats. storage ;
233
- }
234
-
235
- Ok ( details)
236
- }
237
-
238
209
#[ derive( Debug , thiserror:: Error ) ]
239
210
pub enum PrismHomeError {
240
211
#[ error( "Error: {0}" ) ]
0 commit comments