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.

87 lines
2.4 KiB

import * as AnalyticUnit from '../../src/models/analytic_units';
import * as AnalyticUnitCache from '../../src/models/analytic_unit_cache_model';
import { Metric } from 'grafana-datasource-kit';
import * as _ from 'lodash';
export const TEST_ANALYTIC_UNIT_ID: AnalyticUnit.AnalyticUnitId = 'testid';
const DEFAULT_DATASOURCE_STRUCTURE = {
url: "api/datasources/proxy/5/query",
data: null,
params: {
db:"dbname",
q: "SELECT mean(\"value\") FROM \"autogen\".\"tcpconns_value\" WHERE time >= now() - 6h GROUP BY time(20s) fill(null)",
epoch: "ms"
},
type: "influxdb"
};
const DEFAULT_TARGETS_STRUCTURE = [
{
groupBy: [
{
params: ["$__interval"],
type: "time"
},
{
params: ["null"],
type: "fill"
}
],
measurement: "tcpconns_value",
orderByTime: "ASC",
policy: "autogen",
refId: "A",
resultFormat: "time_series",
select: [[{"params":["value"],"type":"field"},{"params":[],"type":"mean"}]],"tags":[]
}
];
export const DEFAULT_METRIC = new Metric(
DEFAULT_DATASOURCE_STRUCTURE,
DEFAULT_TARGETS_STRUCTURE
);
export async function createTestDB(createCache = true) {
const analyticUnitObject = AnalyticUnitObject.getAnalyticUnitObject();
const unit = AnalyticUnit.createAnalyticUnitFromObject(analyticUnitObject);
await AnalyticUnit.create(unit);
if(createCache) {
await AnalyticUnitCache.create(TEST_ANALYTIC_UNIT_ID);
await AnalyticUnitCache.setData(TEST_ANALYTIC_UNIT_ID, { timeStep: 1 });
}
return unit;
}
export async function clearTestDB() {
await AnalyticUnit.remove(TEST_ANALYTIC_UNIT_ID);
await AnalyticUnitCache.remove(TEST_ANALYTIC_UNIT_ID);
}
export class AnalyticUnitObject {
constructor(
public _id: AnalyticUnit.AnalyticUnitId = TEST_ANALYTIC_UNIT_ID,
public name: string = 'name',
public grafanaUrl: string = 'grafanaUrl',
public panelId: string = 'panelId',
public type: string = 'type',
public metric: Metric = DEFAULT_METRIC,
public alert: boolean = false,
public labeledColor: string = '#FF99FF',
public deletedColor: string = '#00f0ff',
public detectorType: AnalyticUnit.DetectorType = AnalyticUnit.DetectorType.ANOMALY,
public visible: boolean = true,
public collapsed: boolean = false
){};
static getAnalyticUnitObject(): AnalyticUnitObject {
return new AnalyticUnitObject();
}
}