Merge pull request 'rc' (#15) from rc into master

pull/52/head
deployer3000 2025-03-10 16:19:29 +03:00
commit 9d2e8100df
3 changed files with 18 additions and 10 deletions

View File

@ -1,6 +1,6 @@
[package] [package]
name = "api-grub" name = "api-grub"
version = "1.0.1" version = "1.0.2"
edition = "2021" edition = "2021"
[dependencies] [dependencies]

View File

@ -33,7 +33,7 @@ pub async fn setup_logger() -> Result<()> {
record.args(), record.args(),
) )
}) })
.filter(None, LevelFilter::Debug) .filter(None, LevelFilter::Info)
.target(env_logger::Target::Stdout) .target(env_logger::Target::Stdout)
.init(); .init();

View File

@ -40,19 +40,26 @@ use std::collections::HashMap;
/// ///
pub async fn get_metrics_from_monitoring(duration: usize, delay: usize) -> anyhow::Result<()> { pub async fn get_metrics_from_monitoring(duration: usize, delay: usize) -> anyhow::Result<()> {
let timer = tokio::time::Instant::now(); let timer = tokio::time::Instant::now();
'outer: loop {
let mut a = MonitoringImporter::new().await; let mut a = MonitoringImporter::new().await;
'outer: loop {
// let mut a = MonitoringImporter::new().await;
a.start_session().await?; a.start_session().await?;
info!("Started a new CM session");
let vec = Arc::new(a.get_metrics_list().await.unwrap_or_else(|_| vec![])); let vec = Arc::new(a.get_metrics_list().await.unwrap_or_else(|_| vec![]));
'inner: loop { 'inner: loop {
if duration != 0 && timer.elapsed() >= tokio::time::Duration::from_secs(duration as u64) { if duration != 0 && timer.elapsed() >= tokio::time::Duration::from_secs(duration as u64) {
break 'outer; 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 ..."); warn!("Session dropped, creating new ...");
break 'inner; 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 tokio::time::sleep(tokio::time::Duration::from_secs(delay as u64)).await
} }
} }
@ -235,14 +242,15 @@ impl MonitoringImporter {
for event in jh_vec { for event in jh_vec {
match event.await { match event.await {
Ok(val) => { Ok(val) => {
if let Ok(val) = val { match crate::export::Exporter::export_extended_metrics(val?).await {
match crate::export::Exporter::export_extended_metrics(val).await {
Ok(bytes) => {info!("Successfully transmitted {} bytes to the Prometehus exporter", bytes)}, 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) => 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(()) Ok(())