You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.0 KiB
72 lines
2.0 KiB
/** |
|
* Alarting is not supported yet |
|
*/ |
|
|
|
throw new Error('not supported'); |
|
|
|
|
|
// import { runPredict } 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 predictorId of alertsAnomalies) { |
|
// try { |
|
// await runPredict(predictorId); |
|
// processAlerts(predictorId); |
|
// } catch (e) { |
|
// console.error(e); |
|
// } |
|
// } |
|
// setTimeout(alertsTick, 5000); |
|
// } |
|
|
|
|
|
// const activeAlerts = new Set<string>(); |
|
// setTimeout(alertsTick, 5000);
|
|
|