@@ -368,64 +368,29 @@ pub async fn sync_role_update_with_ingestors(
368368    Ok ( ( ) ) 
369369} 
370370
371- pub  async  fn  fetch_daily_stats_from_ingestors ( 
372-     stream_name :  & str , 
371+ pub  fn  fetch_daily_stats_from_ingestors ( 
373372    date :  & str , 
373+     stream_meta_list :  & [ ObjectStoreFormat ] , 
374374)  -> Result < Stats ,  StreamError >  { 
375-     let  mut  total_events_ingested:  u64  = 0 ; 
376-     let  mut  total_ingestion_size:  u64  = 0 ; 
377-     let  mut  total_storage_size:  u64  = 0 ; 
378- 
379-     let  ingestor_infos = get_ingestor_info ( ) . await . map_err ( |err| { 
380-         error ! ( "Fatal: failed to get ingestor info: {:?}" ,  err) ; 
381-         StreamError :: Anyhow ( err) 
382-     } ) ?; 
383-     for  ingestor in  ingestor_infos. iter ( )  { 
384-         let  uri = Url :: parse ( & format ! ( 
385-             "{}{}/metrics" , 
386-             & ingestor. domain_name, 
387-             base_path_without_preceding_slash( ) 
388-         ) ) 
389-         . map_err ( |err| { 
390-             StreamError :: Anyhow ( anyhow:: anyhow!( "Invalid URL in Ingestor Metadata: {}" ,  err) ) 
391-         } ) ?; 
392- 
393-         let  res = HTTP_CLIENT 
394-             . get ( uri) 
395-             . header ( header:: AUTHORIZATION ,  & ingestor. token ) 
396-             . header ( header:: CONTENT_TYPE ,  "application/json" ) 
397-             . send ( ) 
398-             . await ; 
399- 
400-         if  let  Ok ( res)  = res { 
401-             let  text = res
402-                 . text ( ) 
403-                 . await 
404-                 . map_err ( |err| StreamError :: Anyhow ( anyhow:: anyhow!( "Request failed: {}" ,  err) ) ) ?; 
405-             let  lines:  Vec < Result < String ,  std:: io:: Error > >  =
406-                 text. lines ( ) . map ( |line| Ok ( line. to_owned ( ) ) ) . collect_vec ( ) ; 
407- 
408-             let  sample = prometheus_parse:: Scrape :: parse ( lines. into_iter ( ) ) 
409-                 . map_err ( |err| { 
410-                     StreamError :: Anyhow ( anyhow:: anyhow!( 
411-                         "Invalid URL in Ingestor Metadata: {}" , 
412-                         err
413-                     ) ) 
414-                 } ) ?
415-                 . samples ; 
416- 
417-             let  ( events_ingested,  ingestion_size,  storage_size)  =
418-                 Metrics :: get_daily_stats_from_samples ( sample,  stream_name,  date) ; 
419-             total_events_ingested += events_ingested; 
420-             total_ingestion_size += ingestion_size; 
421-             total_storage_size += storage_size; 
375+     // for the given date, get the stats from the ingestors 
376+     let  mut  events_ingested = 0 ; 
377+     let  mut  ingestion_size = 0 ; 
378+     let  mut  storage_size = 0 ; 
379+ 
380+     for  meta in  stream_meta_list. iter ( )  { 
381+         for  manifest in  meta. snapshot . manifest_list . iter ( )  { 
382+             if  manifest. time_lower_bound . date_naive ( ) . to_string ( )  == date { 
383+                 events_ingested += manifest. events_ingested ; 
384+                 ingestion_size += manifest. ingestion_size ; 
385+                 storage_size += manifest. storage_size ; 
386+             } 
422387        } 
423388    } 
424389
425390    let  stats = Stats  { 
426-         events :  total_events_ingested , 
427-         ingestion :  total_ingestion_size , 
428-         storage :  total_storage_size , 
391+         events :  events_ingested , 
392+         ingestion :  ingestion_size , 
393+         storage :  storage_size , 
429394    } ; 
430395    Ok ( stats) 
431396} 
@@ -475,17 +440,17 @@ pub async fn fetch_stats_from_ingestors(
475440        Utc :: now ( ) , 
476441        IngestionStats :: new ( 
477442            count, 
478-             format ! ( "{} Bytes" ,   ingestion_size) , 
443+             ingestion_size, 
479444            lifetime_count, 
480-             format ! ( "{} Bytes" ,   lifetime_ingestion_size) , 
445+             lifetime_ingestion_size, 
481446            deleted_count, 
482-             format ! ( "{} Bytes" ,   deleted_ingestion_size) , 
447+             deleted_ingestion_size, 
483448            "json" , 
484449        ) , 
485450        StorageStats :: new ( 
486-             format ! ( "{} Bytes" ,   storage_size) , 
487-             format ! ( "{} Bytes" ,   lifetime_storage_size) , 
488-             format ! ( "{} Bytes" ,   deleted_storage_size) , 
451+             storage_size, 
452+             lifetime_storage_size, 
453+             deleted_storage_size, 
489454            "parquet" , 
490455        ) , 
491456    ) ; 
0 commit comments