Browse Source

todos++

pull/25/head
Alexey Velikiy 2 years ago
parent
commit
5da127270b
  1. 3
      server/src/config.rs
  2. 3
      server/src/services/analytic_service/analytic_service.rs
  3. 25
      server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs

3
server/src/config.rs

@ -73,11 +73,8 @@ fn resolve_alerting(config: &config::Config) -> anyhow::Result<Option<AlertingCo
}
// TODO: use actual config and env variables
impl Config {
pub fn new() -> anyhow::Result<Config> {
// TODO: parse alerting config
// TODO: throw error on bad config
let mut config = config::Config::default();

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

@ -20,9 +20,10 @@ use crate::services::analytic_service::analytic_unit::types::{AnalyticUnit, Lear
use anyhow;
use tokio::sync::{mpsc, oneshot, RwLock};
use tokio::sync::{mpsc, oneshot};
// TODO: now it's basically single analytic unit, service will operate on many AU
// TODO: trigger anomaly unit model update in runner
pub struct AnalyticService {
metric_service: MetricService,
segments_service: SegmentsService,

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

@ -9,6 +9,26 @@ use super::types::{AnalyticUnit, AnalyticUnitConfig, AnomalyConfig, LearningResu
use async_trait::async_trait;
use subbeat::metric::MetricResult;
struct SARIMA {
pub ts: Vec<f64>,
pub seasonality: u64
}
impl SARIMA {
pub fn learn() {
}
pub fn predict(timestamp: u64, value: f64) -> (f64, f64, f64) {
return (0.0, 0.0, 0.0);
}
// TODO: learn
// TODO: update
// TODO: predict with HSR
// TODO: don't count NaNs in model
}
// TODO: move to config
const DETECTION_STEP: u64 = 10;
@ -79,8 +99,9 @@ impl AnalyticUnit for AnomalyAnalyticUnit {
}
}
async fn learn(&mut self, _ms: MetricService, _ss: SegmentsService) -> LearningResult {
// TODO: build SARIMA model based on seasonality
// TODO: don't count NaNs in model
// TODO: ensue that learning runs on seasonaliy change
// TODO: load data to learning
// TODO: update model to work online
return LearningResult::Finished;
}

Loading…
Cancel
Save