Browse Source

basic hsr on client

pull/25/head
Alexey Velikiy 3 years ago
parent
commit
e09209fb11
  1. 9
      client/src/components/Graph.vue
  2. 2
      client/src/components/pods/anomaly_pod.ts
  3. 14
      client/src/services/analytics.service.ts

9
client/src/components/Graph.vue

@ -21,6 +21,7 @@ import _ from "lodash";
import { AnalyticUnitType } from '@/types/analytic_units';
import { defineComponent, watch } from 'vue';
import { getHSR } from "@/services/analytics.service";
// TODO: move to store
async function resolveDataPatterns(range: TimeRange): Promise<{
@ -97,9 +98,13 @@ async function resolveDataAnomaly(range: TimeRange): Promise<{
// TODO: request in parallel
let [target, values] = await getMetrics(startTime, endTime, step);
let segments = await getSegments(startTime, endTime, false);
let hsr = await getHSR(startTime, endTime);
return {
timeserie: [{ target: target, datapoints: values, color: 'green' }],
segments: segments
timeserie: [
{ target: target, datapoints: values, color: 'green' },
{ target: "HSR", datapoints: hsr, color: 'red' }
],
segments: segments,
}
} catch (e) {
this.$notify({

2
client/src/components/pods/anomaly_pod.ts

@ -8,6 +8,7 @@ import { SegmentsSet } from '@/types/segment_set';
export type UpdateDataCallback = (range: TimeRange) => Promise<{
timeserie: LineTimeSerie[],
hsr: LineTimeSerie[],
segments: Segment[]
}>;
@ -38,6 +39,7 @@ export class AnomalyPod extends HasticPod<UpdateDataCallback> {
.then(resp => {
this.updateSegments(resp.segments);
this.updateData(resp.timeserie, undefined, true);
console.log(resp.hsr);
})
.catch(() => { /* set "error" message */ })
}

14
client/src/services/analytics.service.ts

@ -56,3 +56,17 @@ export async function patchConfig(patchObj: any) {
export function getStatusGenerator(): AsyncIterableIterator<string> {
return getGenerator<string>(100, getStatus);
}
export async function getHSR(from: number, to: number): Promise<[number, number][]> {
if(from >= to) {
throw new Error("`from` can`t be less than `to`");
}
const uri = ANALYTICS_API_URL + `hsr/?from=${from}&to=${to}`;
const res = await axios.get(uri);
const values = res["data"]["TimeSerie"];
console.log(values);
return values as [number, number][];
}

Loading…
Cancel
Save