diff --git a/client/src/components/pods/anomaly_pod.ts b/client/src/components/pods/anomaly_pod.ts index 0c080c9..cc94f5c 100644 --- a/client/src/components/pods/anomaly_pod.ts +++ b/client/src/components/pods/anomaly_pod.ts @@ -94,7 +94,7 @@ export class AnomalyPod extends HasticPod { public fetchData(): void { let to = Math.floor(Date.now() / 1000); - let from = to - 50000; // -50000 seconds + let from = to - 2592000; // -100000 seconds if(!(this.state.xValueRange[0] == 0 && this.state.xValueRange[1] == 1)) { [from, to] = this.state?.xValueRange; @@ -163,4 +163,4 @@ export class AnomalyPod extends HasticPod { .attr('opacity', head ? 0.5 : 0.3) } -} \ No newline at end of file +} diff --git a/client/src/components/pods/pattern_pod.ts b/client/src/components/pods/pattern_pod.ts index ea37ec7..de44b5f 100644 --- a/client/src/components/pods/pattern_pod.ts +++ b/client/src/components/pods/pattern_pod.ts @@ -71,7 +71,7 @@ export class PatternPod extends HasticPod { public fetchData(): void { let to = Math.floor(Date.now() / 1000); - let from = to - 50000; // -50000 seconds + let from = to - 2592000; // -100000 seconds if(!(this.state.xValueRange[0] == 0 && this.state.xValueRange[1] == 1)) { [from, to] = this.state?.xValueRange; @@ -184,4 +184,4 @@ export class PatternPod extends HasticPod { return this._tempIdCounted.toString(); } -} \ No newline at end of file +} diff --git a/client/src/components/pods/threshold_pod.ts b/client/src/components/pods/threshold_pod.ts index 239ba0a..3cac73d 100644 --- a/client/src/components/pods/threshold_pod.ts +++ b/client/src/components/pods/threshold_pod.ts @@ -27,7 +27,7 @@ export class ThresholdPod extends HasticPod { public fetchData(): void { let to = Math.floor(Date.now() / 1000); - let from = to - 50000; // -50000 seconds + let from = to - 2592000; // -100000 seconds if(!(this.state.xValueRange[0] == 0 && this.state.xValueRange[1] == 1)) { [from, to] = this.state?.xValueRange; @@ -41,4 +41,4 @@ export class ThresholdPod extends HasticPod { .catch(() => { /* set "error" message */ }) } -} \ No newline at end of file +} diff --git a/client/src/services/analytics.service.ts b/client/src/services/analytics.service.ts index 86b3e9a..5ca0538 100644 --- a/client/src/services/analytics.service.ts +++ b/client/src/services/analytics.service.ts @@ -68,7 +68,7 @@ export async function patchConfig(patchObj: any) { } export function getStatusGenerator(): AsyncIterableIterator { - return getGenerator(100, getStatus); + return getGenerator(10000, getStatus); } diff --git a/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs b/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs index 98a3373..d8912be 100644 --- a/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs +++ b/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs @@ -56,31 +56,31 @@ impl SARIMA { )); } // TODO: ensure capacity with seasonality size - let mut res_ts = Vec::<(u64, f64)>::new(); - let from = ts[0].0; - // TODO: unwrap -> ? - let to = ts.last().unwrap().0; - let iter_steps = (self.seasonality / DETECTION_STEP) as usize; - - if to - from != self.seasonality_iterations * self.seasonality { - return Err(anyhow::format_err!( - "timeserie to learn from should be {} * sasonality", - self.seasonality_iterations - )); - } - - for k in 0..iter_steps { - let mut vts = Vec::new(); - for si in 0..self.seasonality_iterations { - vts.push(ts[k + iter_steps * si as usize].1); - } - let mut vt: f64 = vts.iter().sum(); - vt /= self.seasonality_iterations as f64; - let t = ts[ts.len() - iter_steps + k].0; - res_ts.push((t, vt)); - } - - self.ts = res_ts; + // let mut res_ts = Vec::<(u64, f64)>::new(); + // let from = ts[0].0; + // // TODO: unwrap -> ? + // let to = ts.last().unwrap().0; + // let iter_steps = 5 as usize; + + // if to - from != self.seasonality_iterations * self.seasonality { + // return Err(anyhow::format_err!( + // "timeserie to learn from should be {} * seasonality", + // self.seasonality_iterations + // )); + // } + + // for k in 0..iter_steps { + // let mut vts = Vec::new(); + // for si in 0..self.seasonality_iterations { + // vts.push(ts[k + iter_steps * si as usize].1); + // } + // let mut vt: f64 = vts.iter().sum(); + // vt /= self.seasonality_iterations as f64; + // let t = ts[ts.len() - iter_steps + k].0; + // res_ts.push((t, vt)); + // } + + self.ts = ts.to_vec(); return Ok(()); } @@ -194,7 +194,7 @@ impl AnalyticUnit for AnomalyAnalyticUnit { let utc: DateTime = Utc::now(); let to = utc.timestamp() as u64; - let from = to - self.config.seasonality * self.config.seasonality_iterations; + let from = to - 86400; let mr = ms.query(from, to, DETECTION_STEP).await?; if mr.data.keys().len() == 0 { diff --git a/server/src/services/metric_service.rs b/server/src/services/metric_service.rs index ca3a2ad..e55aafb 100644 --- a/server/src/services/metric_service.rs +++ b/server/src/services/metric_service.rs @@ -22,14 +22,14 @@ impl MetricService { let mut mr = self.datasource.query(from, to, step).await?; // let keys: Vec<_> = mr.data.keys().into_iter().collect(); - if mr.data.keys().len() > 0 { - // TODO: it's a hack, should replace all metrics - let key = mr.data.keys().nth(0).unwrap().clone(); - let ts = mr.data.get_mut(&key).unwrap(); - // TODO: make interpolate_nans_and_gaps_with_zeros configurable - *ts = subbeat::utils::interpolate_nans_and_gaps_with_zeros(&ts, from, to, step); - // mr.data.insert(*k, ts_interpolated); - } + // if mr.data.keys().len() > 0 { + // // TODO: it's a hack, should replace all metrics + // let key = mr.data.keys().nth(0).unwrap().clone(); + // let ts = mr.data.get_mut(&key).unwrap(); + // // TODO: make interpolate_nans_and_gaps_with_zeros configurable + // *ts = subbeat::utils::interpolate_nans_and_gaps_with_zeros(&ts, from, to, step); + // // mr.data.insert(*k, ts_interpolated); + // } return Ok(mr); }