diff --git a/src/constants.rs b/src/constants.rs index b3bca4d..d018676 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -86,7 +86,7 @@ lazy_static! { "on_off_price_deviation", "On chain price deviation from the reference price" ), - &["network", "pair"] + &["network", "pair", "type"] ) .unwrap(); pub static ref API_TIME_SINCE_LAST_UPDATE: GaugeVec = register_gauge_vec!( diff --git a/src/main.rs b/src/main.rs index 6e545bf..620b793 100644 --- a/src/main.rs +++ b/src/main.rs @@ -53,7 +53,6 @@ async fn main() { let database_url: String = env::var("DATABASE_URL").expect("DATABASE_URL must be set"); let config = AsyncDieselConnectionManager::::new(database_url); let pool = Pool::builder(config).build().unwrap(); - // Monitor spot/future in parallel let spot_monitoring = tokio::spawn(monitor(pool.clone(), true, &DataType::Spot)); let future_monitoring = tokio::spawn(monitor(pool.clone(), true, &DataType::Future)); diff --git a/src/monitoring/on_off_deviation.rs b/src/monitoring/on_off_deviation.rs index 703085e..2177ab0 100644 --- a/src/monitoring/on_off_deviation.rs +++ b/src/monitoring/on_off_deviation.rs @@ -13,12 +13,12 @@ use crate::{ config::{get_config, DataType}, constants::COINGECKO_IDS, error::MonitoringError, - types::Entry, }; -pub async fn on_off_price_deviation( +pub async fn on_off_price_deviation( pair_id: String, timestamp: u64, + data_type: DataType, ) -> Result<(f64, u32), MonitoringError> { let ids = &COINGECKO_IDS; let config = get_config(None).await; @@ -37,14 +37,13 @@ pub async fn on_off_price_deviation( .await .map_err(|e| MonitoringError::OnChain(e.to_string()))?; - let decimals = - config - .decimals(DataType::Spot) - .get(&pair_id) - .ok_or(MonitoringError::OnChain(format!( - "Failed to get decimals for pair {:?}", - pair_id - )))?; + let decimals = config + .decimals(data_type) + .get(&pair_id) + .ok_or(MonitoringError::OnChain(format!( + "Failed to get decimals for pair {:?}", + pair_id + )))?; let on_chain_price = data .first() diff --git a/src/processing/future.rs b/src/processing/future.rs index e8a243e..0d22f4a 100644 --- a/src/processing/future.rs +++ b/src/processing/future.rs @@ -97,7 +97,7 @@ pub async fn process_data_by_pair_and_sources( } let (on_off_deviation, _) = - on_off_price_deviation::(pair.clone(), *timestamps.last().unwrap()).await?; + on_off_price_deviation(pair.clone(), *timestamps.last().unwrap(), DataType::Future).await?; ON_OFF_PRICE_DEVIATION .with_label_values(&[network_env, &pair.clone(), data_type]) .set(on_off_deviation); diff --git a/src/processing/spot.rs b/src/processing/spot.rs index bee3c18..8220284 100644 --- a/src/processing/spot.rs +++ b/src/processing/spot.rs @@ -92,7 +92,7 @@ pub async fn process_data_by_pair_and_sources( timestamps.push(res); } let (on_off_deviation, _) = - on_off_price_deviation::(pair.clone(), *timestamps.last().unwrap()).await?; + on_off_price_deviation(pair.clone(), *timestamps.last().unwrap(), DataType::Spot).await?; ON_OFF_PRICE_DEVIATION .with_label_values(&[network_env, &pair.clone(), data_type]) .set(on_off_deviation);