Browse Source

detection runner continue + code clearup

pull/25/head
Alexey Velikiy 2 years ago
parent
commit
6007a2a4c3
  1. 7
      server/src/services/analytic_service/analytic_client.rs
  2. 11
      server/src/services/analytic_service/analytic_service.rs
  3. 3
      server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs
  4. 4
      server/src/services/analytic_service/analytic_unit/pattern_analytic_unit.rs
  5. 2
      server/src/services/analytic_service/analytic_unit/threshold_analytic_unit.rs
  6. 9
      server/src/services/analytic_service/detection_runner.rs
  7. 2
      server/src/services/analytic_service/mod.rs
  8. 2
      server/src/services/analytic_service/types.rs

7
server/src/services/analytic_service/analytic_client.rs

@ -1,4 +1,3 @@
use serde_json::Value;
use tokio::sync::mpsc;
use tokio::sync::oneshot;
@ -9,7 +8,7 @@ use super::analytic_unit::types::PatchConfig;
use super::types::DetectionTask;
use super::types::HSRTask;
use super::types::LearningStatus;
use super::types::LearningTrain;
use super::types::HSR;
use super::types::{AnalyticServiceMessage, RequestType};
@ -74,7 +73,7 @@ impl AnalyticClient {
// TODO: handle second error
match rx.await? {
Ok(r) => Ok(r),
Err(e) => Ok(Vec::new()),
Err(_) => Ok(Vec::new()),
}
}
@ -89,7 +88,7 @@ impl AnalyticClient {
// TODO: handle second error
match rx.await? {
Ok(r) => Ok(r),
Err(e) => Ok(HSR::TimeSerie(Vec::new())),
Err(_) => Ok(HSR::TimeSerie(Vec::new())),
}
}
}

11
server/src/services/analytic_service/analytic_service.rs

@ -1,11 +1,11 @@
use std::sync::Arc;
use super::analytic_unit::types::{AnalyticUnitConfig, PatchConfig, PatternConfig};
use super::types::{self, DetectionRunnerConfig, LearningTrain, LearningWaiter, HSR};
use super::analytic_unit::types::{AnalyticUnitConfig, PatchConfig};
use super::detection_runner::DetectionRunner;
use super::types::{self, DetectionRunnerConfig, LearningWaiter, HSR};
use super::{
analytic_client::AnalyticClient,
analytic_unit::pattern_analytic_unit::{self, LearningResults, PatternAnalyticUnit},
types::{AnalyticServiceMessage, DetectionTask, LearningStatus, RequestType, ResponseType},
types::{AnalyticServiceMessage, LearningStatus, RequestType, ResponseType},
};
use crate::config::AlertingConfig;
@ -40,7 +40,7 @@ pub struct AnalyticService {
// awaiters
learning_waiters: Vec<LearningWaiter>,
detection_runner: Option<DetectionRunnerConfig>,
detection_runner: Option<DetectionRunner>,
}
impl AnalyticService {
@ -97,6 +97,7 @@ impl AnalyticService {
}
fn run_detection_runner(&mut self, task: DetectionRunnerConfig) {
// TODO: rerun detection runner on analytic unit change
// if self.runner_handler.is_some() {
// self.runner_handler.as_mut().unwrap().abort();
// }

3
server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs

@ -1,5 +1,5 @@
use crate::services::{
analytic_service::types::{self, HSR},
analytic_service::types::{HSR},
metric_service::MetricService,
segments_service::SegmentsService,
};
@ -14,6 +14,7 @@ const DETECTION_STEP: u64 = 10;
// offset from intex in timrange in seconds
fn get_value_with_offset(ts: &Vec<(u64, f64)>, index: usize, offset: u64) -> anyhow::Result<f64> {
// TODO: implement
if index == 0 {
return Err(anyhow::format_err!("index should be > 0"));
}

4
server/src/services/analytic_service/analytic_unit/pattern_analytic_unit.rs

@ -4,11 +4,11 @@ use futures::future;
use parking_lot::Mutex;
use gbdt::config::Config;
use gbdt::decision_tree::{Data, DataVec, PredVec};
use gbdt::decision_tree::{Data};
use gbdt::gradient_boost::GBDT;
use crate::services::{
analytic_service::types::{self, LearningTrain, HSR},
analytic_service::types::{LearningTrain, HSR},
metric_service::MetricService,
segments_service::{Segment, SegmentType, SegmentsService},
};

2
server/src/services/analytic_service/analytic_unit/threshold_analytic_unit.rs

@ -1,5 +1,5 @@
use crate::services::{
analytic_service::types::{self, HSR},
analytic_service::types::{HSR},
metric_service::MetricService,
segments_service::SegmentsService,
};

9
server/src/services/analytic_service/detection_runner.rs

@ -2,20 +2,21 @@ use crate::services::analytic_service::analytic_unit::types::AnalyticUnit;
use std::sync::Arc;
use crate::config::Config;
use chrono::Utc;
use tokio::sync::{mpsc, RwLock};
struct DetectionRunner {
config: Config,
use super::types::DetectionRunnerConfig;
pub struct DetectionRunner {
config: DetectionRunnerConfig,
analytic_unit: Arc<RwLock<Box<dyn AnalyticUnit + Send + Sync>>>,
}
impl DetectionRunner {
pub fn new(
config: Config,
config: DetectionRunnerConfig,
analytic_unit: Arc<RwLock<Box<dyn AnalyticUnit + Send + Sync>>>,
) -> DetectionRunner {
DetectionRunner {

2
server/src/services/analytic_service/mod.rs

@ -1,9 +1,9 @@
mod analytic_service;
pub mod analytic_unit;
pub mod types;
pub mod detection_runner;
pub mod analytic_client;
mod detection_runner;
pub use analytic_service::AnalyticService;

2
server/src/services/analytic_service/types.rs

@ -3,7 +3,7 @@ use std::fmt;
use crate::services::segments_service::Segment;
use super::analytic_unit::{
pattern_analytic_unit::{self, LearningResults},
pattern_analytic_unit::{self},
types::AnalyticUnitConfig,
};

Loading…
Cancel
Save