@@ -33,7 +33,7 @@ use crate::{metadata, validator};
3333
3434use self :: error:: { CreateStreamError , StreamError } ;
3535
36- use super :: modal:: query_server:: { self , IngestionStats , QueriedStats , StorageStats } ;
36+ use super :: modal:: query_server:: { self , IngestionStats , QueriedStats , QueryServer , StorageStats } ;
3737
3838pub async fn delete ( req : HttpRequest ) -> Result < impl Responder , StreamError > {
3939 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
@@ -284,19 +284,19 @@ pub async fn get_stats(req: HttpRequest) -> Result<impl Responder, StreamError>
284284 let stats = stats:: get_current_stats ( & stream_name, "json" )
285285 . ok_or ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ?;
286286
287- if CONFIG . parseable . mode == Mode :: Query {
288- let stats = query_server:: QueryServer :: fetch_stats_from_ingesters ( & stream_name) . await ?;
289- let stats = serde_json :: to_value ( stats ) . unwrap ( ) ;
290- return Ok ( ( web :: Json ( stats ) , StatusCode :: OK ) ) ;
291- }
287+ let ingestor_stats = if CONFIG . parseable . mode == Mode :: Query {
288+ Some ( query_server:: QueryServer :: fetch_stats_from_ingesters ( & stream_name) . await ?)
289+ } else {
290+ None
291+ } ;
292292
293293 let hash_map = STREAM_INFO . read ( ) . unwrap ( ) ;
294294 let stream_meta = & hash_map
295295 . get ( & stream_name)
296296 . ok_or ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ?;
297297
298298 let time = Utc :: now ( ) ;
299- let qstats = match & stream_meta. first_event_at {
299+ let stats = match & stream_meta. first_event_at {
300300 Some ( first_event_at) => {
301301 let ingestion_stats = IngestionStats :: new (
302302 stats. events ,
@@ -336,10 +336,16 @@ pub async fn get_stats(req: HttpRequest) -> Result<impl Responder, StreamError>
336336 )
337337 }
338338 } ;
339+ let stats = if let Some ( mut ingestor_stats) = ingestor_stats {
340+ ingestor_stats. push ( stats) ;
341+ QueryServer :: merge_quried_stats ( ingestor_stats)
342+ } else {
343+ stats
344+ } ;
339345
340- let out_stats = serde_json:: to_value ( qstats ) . unwrap ( ) ;
346+ let stats = serde_json:: to_value ( stats ) . unwrap ( ) ;
341347
342- Ok ( ( web:: Json ( out_stats ) , StatusCode :: OK ) )
348+ Ok ( ( web:: Json ( stats ) , StatusCode :: OK ) )
343349}
344350
345351// Check if the first_event_at is empty
0 commit comments