diff --git a/crates/api-grub/Cargo.toml b/crates/api-grub/Cargo.toml index 5926743..3779d20 100644 --- a/crates/api-grub/Cargo.toml +++ b/crates/api-grub/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "api-grub" -version = "1.0.1" +version = "1.0.2" edition = "2021" [dependencies] diff --git a/crates/api-grub/src/logger.rs b/crates/api-grub/src/logger.rs index f69fe22..b77faf2 100644 --- a/crates/api-grub/src/logger.rs +++ b/crates/api-grub/src/logger.rs @@ -33,7 +33,7 @@ pub async fn setup_logger() -> Result<()> { record.args(), ) }) - .filter(None, LevelFilter::Debug) + .filter(None, LevelFilter::Info) .target(env_logger::Target::Stdout) .init(); diff --git a/crates/api-grub/src/monitoring.rs b/crates/api-grub/src/monitoring.rs index 8203c4c..dfdbf87 100644 --- a/crates/api-grub/src/monitoring.rs +++ b/crates/api-grub/src/monitoring.rs @@ -40,19 +40,26 @@ use std::collections::HashMap; /// pub async fn get_metrics_from_monitoring(duration: usize, delay: usize) -> anyhow::Result<()> { let timer = tokio::time::Instant::now(); + let mut a = MonitoringImporter::new().await; 'outer: loop { - let mut a = MonitoringImporter::new().await; + // let mut a = MonitoringImporter::new().await; a.start_session().await?; + info!("Started a new CM session"); + let vec = Arc::new(a.get_metrics_list().await.unwrap_or_else(|_| vec![])); 'inner: loop { if duration != 0 && timer.elapsed() >= tokio::time::Duration::from_secs(duration as u64) { break 'outer; } - if let Err(_) = a.get_measure_info(vec.clone()).await { + if vec.len() == 0 || a.get_measure_info(vec.clone()).await.is_err() { warn!("Session dropped, creating new ..."); break 'inner; } + // if let Err(_) = a.get_measure_info(vec.clone()).await { + // warn!("Session dropped, creating new ..."); + // break 'inner; + // } tokio::time::sleep(tokio::time::Duration::from_secs(delay as u64)).await } } @@ -235,14 +242,15 @@ impl MonitoringImporter { for event in jh_vec { match event.await { Ok(val) => { - if let Ok(val) = val { - match crate::export::Exporter::export_extended_metrics(val).await { - Ok(bytes) => {info!("Successfully transmitted {} bytes to the Prometehus exporter", bytes)}, - Err(er) => error!("Cannot export data to the Prometehus exporter due to : `{}`", er), - } + match crate::export::Exporter::export_extended_metrics(val?).await { + Ok(bytes) => {info!("Successfully transmitted {} bytes to the Prometehus exporter", bytes)}, + Err(er) => error!("Cannot export data to the Prometehus exporter due to : `{}`", er), } }, - Err(er) => println!("Fatal error on async task: {}", er), + Err(er) => { + println!("Fatal error on async task: {}", er); + return Err(anyhow::Error::msg(format!("Fatal error on async task: {}", er))) + }, } } Ok(())