|
|
|
/**
|
|
|
|
* Alarting is not supported yet
|
|
|
|
*/
|
|
|
|
|
|
|
|
throw new Error('not supported');
|
|
|
|
|
|
|
|
|
|
|
|
// import { runDetect } from './analytics_controller';
|
|
|
|
// import { getLabeledSegments } from './segments_controller';
|
|
|
|
// import { AnalyticUnitId } from '../models/analytic_unit';
|
|
|
|
// import { sendNotification } from '../services/notification_service';
|
|
|
|
// import { getJsonDataSync, writeJsonDataSync } from '../services/json_service';
|
|
|
|
// import { ANALYTIC_UNITS_PATH } from '../config';
|
|
|
|
|
|
|
|
// import * as path from 'path';
|
|
|
|
// import * as fs from 'fs';
|
|
|
|
|
|
|
|
|
|
|
|
// const ALERT_TIMEOUT = 60000; // ms
|
|
|
|
// const ALERTS_DB_PATH = path.join(ANALYTIC_UNITS_PATH, `alerts_anomalies.json`);
|
|
|
|
|
|
|
|
|
|
|
|
// export function getAlertsAnomalies(): AnalyticUnitId[] {
|
|
|
|
// if(!fs.existsSync(ALERTS_DB_PATH)) {
|
|
|
|
// saveAlertsAnomalies([]);
|
|
|
|
// }
|
|
|
|
// return getJsonDataSync(ALERTS_DB_PATH);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// export function saveAlertsAnomalies(units: AnalyticUnitId[]) {
|
|
|
|
// return writeJsonDataSync(ALERTS_DB_PATH, units);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// function processAlerts(id: AnalyticUnitId) {
|
|
|
|
// let segments = getLabeledSegments(id);
|
|
|
|
|
|
|
|
// const currentTime = new Date().getTime();
|
|
|
|
// const activeAlert = activeAlerts.has(id);
|
|
|
|
// let newActiveAlert = false;
|
|
|
|
|
|
|
|
// if(segments.length > 0) {
|
|
|
|
// let lastSegment = segments[segments.length - 1];
|
|
|
|
// if(lastSegment.finish >= currentTime - ALERT_TIMEOUT) {
|
|
|
|
// newActiveAlert = true;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if(!activeAlert && newActiveAlert) {
|
|
|
|
// activeAlerts.add(id);
|
|
|
|
// sendNotification(id, true);
|
|
|
|
// } else if(activeAlert && !newActiveAlert) {
|
|
|
|
// activeAlerts.delete(id);
|
|
|
|
// sendNotification(id, false);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// async function alertsTick() {
|
|
|
|
// let alertsAnomalies = getAlertsAnomalies();
|
|
|
|
// for (let detectorId of alertsAnomalies) {
|
|
|
|
// try {
|
|
|
|
// await runDetect(detectorId);
|
|
|
|
// processAlerts(detectorId);
|
|
|
|
// } catch (e) {
|
|
|
|
// console.error(e);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// setTimeout(alertsTick, 5000);
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// const activeAlerts = new Set<string>();
|
|
|
|
// setTimeout(alertsTick, 5000);
|