Browse Source

Threshold config

pull/25/head
Alexey Velikiy 3 years ago
parent
commit
ad4dcc43b8
  1. 17
      client/src/views/Home.vue
  2. 2
      server/src/services/analytic_service/analytic_unit/threshold_analytic_unit.rs
  3. 5
      server/src/services/analytic_service/analytic_unit/types.rs

17
client/src/views/Home.vue

@ -5,12 +5,17 @@
<analytic-status /> <analytic-status />
<div> <div>
Analytic unit type: <select :value="analyticUnitType" @change="changeAnalyticUnitType"> Analytic unit type:
<select :value="analyticUnitType" @change="changeAnalyticUnitType">
<option disabled value="">Please Select</option> <option disabled value="">Please Select</option>
<option v-bind:key="option" v-for="option in analyticUnitTypes" :value="option">{{option}}</option> <option v-bind:key="option" v-for="option in analyticUnitTypes" :value="option">{{option}}</option>
</select> <br/><br/> </select> <br/><br/>
</div> </div>
<div id="controls"> <div id="controls">
<div v-if="analyticUnitType == analyticUnitTypes[0]">
Threshold:
<input :value="analyticUnitConfig.threshold" @change="thresholdChange" /> <br/><br/>
</div>
<div v-if="analyticUnitType == analyticUnitTypes[1]"> <div v-if="analyticUnitType == analyticUnitTypes[1]">
Hold <pre>S</pre> to label patterns; Hold <pre>S</pre> to label patterns;
Hold <pre>A</pre> to label anti patterns <br/> Hold <pre>A</pre> to label anti patterns <br/>
@ -53,6 +58,15 @@ export default defineComponent({
changeAnalyticUnitType(e) { changeAnalyticUnitType(e) {
this.$store.dispatch('patchConfig', { [e.target.value]: null } ); this.$store.dispatch('patchConfig', { [e.target.value]: null } );
}, },
// Threshold
thresholdChange(e) {
let cfg = _.clone(this.analyticUnitConfig);
cfg.threshold = parseFloat(e.target.value);
this.$store.dispatch('patchConfig', { Threshold: cfg });
},
// Pattern
correlationScoreChange(e) { correlationScoreChange(e) {
let cfg = _.clone(this.analyticUnitConfig); let cfg = _.clone(this.analyticUnitConfig);
cfg.correlation_score = parseFloat(e.target.value); cfg.correlation_score = parseFloat(e.target.value);
@ -73,6 +87,7 @@ export default defineComponent({
cfg.threshold_score = parseFloat(e.target.value); cfg.threshold_score = parseFloat(e.target.value);
this.$store.dispatch('patchConfig', { Pattern: cfg }); this.$store.dispatch('patchConfig', { Pattern: cfg });
} }
}, },
data: function () { data: function () {
return { return {

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

@ -52,7 +52,7 @@ impl AnalyticUnit for ThresholdAnalyticUnit {
let mut result = Vec::<(u64, u64)>::new(); let mut result = Vec::<(u64, u64)>::new();
let mut from: Option<u64> = None; let mut from: Option<u64> = None;
for (t, v) in ts { for (t, v) in ts {
if *v > self.config.threashold { if *v > self.config.threshold {
if from.is_some() { if from.is_some() {
continue; continue;
} else { } else {

5
server/src/services/analytic_service/analytic_unit/types.rs

@ -1,4 +1,3 @@
use fastrand::bool;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use async_trait::async_trait; use async_trait::async_trait;
@ -37,12 +36,12 @@ impl Default for AnomalyConfig {
#[derive(Debug, Serialize, Deserialize, Clone)] #[derive(Debug, Serialize, Deserialize, Clone)]
pub struct ThresholdConfig { pub struct ThresholdConfig {
pub threashold: f64, pub threshold: f64,
} }
impl Default for ThresholdConfig { impl Default for ThresholdConfig {
fn default() -> Self { fn default() -> Self {
ThresholdConfig { threashold: 0.5 } ThresholdConfig { threshold: 0.5 }
} }
} }

Loading…
Cancel
Save