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 { AnalyticUnitType } from '@/types/analytic_units';
import { defineComponent, watch } from 'vue'; import { defineComponent, watch } from 'vue';
import { getHSR } from "@/services/analytics.service";
// TODO: move to store // TODO: move to store
async function resolveDataPatterns(range: TimeRange): Promise<{ async function resolveDataPatterns(range: TimeRange): Promise<{
@ -97,9 +98,13 @@ async function resolveDataAnomaly(range: TimeRange): Promise<{
// TODO: request in parallel // TODO: request in parallel
let [target, values] = await getMetrics(startTime, endTime, step); let [target, values] = await getMetrics(startTime, endTime, step);
let segments = await getSegments(startTime, endTime, false); let segments = await getSegments(startTime, endTime, false);
let hsr = await getHSR(startTime, endTime);
return { return {
timeserie: [{ target: target, datapoints: values, color: 'green' }], timeserie: [
segments: segments { target: target, datapoints: values, color: 'green' },
{ target: "HSR", datapoints: hsr, color: 'red' }
],
segments: segments,
} }
} catch (e) { } catch (e) {
this.$notify({ 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<{ export type UpdateDataCallback = (range: TimeRange) => Promise<{
timeserie: LineTimeSerie[], timeserie: LineTimeSerie[],
hsr: LineTimeSerie[],
segments: Segment[] segments: Segment[]
}>; }>;
@ -38,6 +39,7 @@ export class AnomalyPod extends HasticPod<UpdateDataCallback> {
.then(resp => { .then(resp => {
this.updateSegments(resp.segments); this.updateSegments(resp.segments);
this.updateData(resp.timeserie, undefined, true); this.updateData(resp.timeserie, undefined, true);
console.log(resp.hsr);
}) })
.catch(() => { /* set "error" message */ }) .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> { export function getStatusGenerator(): AsyncIterableIterator<string> {
return getGenerator<string>(100, getStatus); 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