Browse Source

Grafana url to config #114 (#337)

pull/1/head
sanke1 5 years ago committed by rozetko
parent
commit
ccda13d7e8
  1. 3
      config.example.json
  2. 1
      server/src/config.ts
  3. 12
      server/src/controllers/analytics_controller.ts
  4. 12
      server/src/services/data_puller.ts

3
config.example.json

@ -3,5 +3,6 @@
"HASTIC_API_KEY": "eyJrIjoiVjZqMHY0dHk4UEE3eEN4MzgzRnd2aURlMWlIdXdHNW4iLCJuIjoiaGFzdGljIiwiaWQiOjF9", "HASTIC_API_KEY": "eyJrIjoiVjZqMHY0dHk4UEE3eEN4MzgzRnd2aURlMWlIdXdHNW4iLCJuIjoiaGFzdGljIiwiaWQiOjF9",
"HASTIC_WEBHOOK_URL": "http://localhost:8080", "HASTIC_WEBHOOK_URL": "http://localhost:8080",
"HASTIC_WEBHOOK_TYPE": "application/x-www-form-urlencoded", "HASTIC_WEBHOOK_TYPE": "application/x-www-form-urlencoded",
"HASTIC_WEBHOOK_SECRET": "mysecret" "HASTIC_WEBHOOK_SECRET": "mysecret",
"GRAFANA_URL": "http://localhost:3000/"
} }

1
server/src/config.ts

@ -23,6 +23,7 @@ export const ZMQ_IPC_PATH = getConfigField('ZMQ_IPC_PATH', path.join(os.tmpdir()
export const ZMQ_DEV_PORT = getConfigField('ZMQ_DEV_PORT', '8002'); export const ZMQ_DEV_PORT = getConfigField('ZMQ_DEV_PORT', '8002');
export const ZMQ_HOST = getConfigField('ZMQ_HOST', '127.0.0.1'); export const ZMQ_HOST = getConfigField('ZMQ_HOST', '127.0.0.1');
export const HASTIC_API_KEY = getConfigField('HASTIC_API_KEY'); export const HASTIC_API_KEY = getConfigField('HASTIC_API_KEY');
export const GRAFANA_URL = getConfigField('GRAFANA_URL', null);
export const HASTIC_WEBHOOK_URL = getConfigField('HASTIC_WEBHOOK_URL', null); export const HASTIC_WEBHOOK_URL = getConfigField('HASTIC_WEBHOOK_URL', null);
export const HASTIC_WEBHOOK_TYPE = getConfigField('HASTIC_WEBHOOK_TYPE', 'application/x-www-form-urlencoded'); export const HASTIC_WEBHOOK_TYPE = getConfigField('HASTIC_WEBHOOK_TYPE', 'application/x-www-form-urlencoded');
export const HASTIC_WEBHOOK_SECRET = getConfigField('HASTIC_WEBHOOK_SECRET', null); export const HASTIC_WEBHOOK_SECRET = getConfigField('HASTIC_WEBHOOK_SECRET', null);

12
server/src/controllers/analytics_controller.ts

@ -6,7 +6,7 @@ import * as Threshold from '../models/threshold_model';
import * as AnalyticUnit from '../models/analytic_unit_model'; import * as AnalyticUnit from '../models/analytic_unit_model';
import { AnalyticsService } from '../services/analytics_service'; import { AnalyticsService } from '../services/analytics_service';
import { sendWebhook } from '../services/notification_service'; import { sendWebhook } from '../services/notification_service';
import { HASTIC_API_KEY } from '../config' import { HASTIC_API_KEY, GRAFANA_URL } from '../config';
import { DataPuller } from '../services/data_puller'; import { DataPuller } from '../services/data_puller';
import { queryByMetric } from 'grafana-datasource-kit'; import { queryByMetric } from 'grafana-datasource-kit';
@ -106,9 +106,17 @@ async function query(analyticUnit: AnalyticUnit.AnalyticUnit, detector: Analytic
}; };
} }
console.debug(`query time range: from ${new Date(range.from)} to ${new Date(range.to)}`); console.debug(`query time range: from ${new Date(range.from)} to ${new Date(range.to)}`);
let panelUrl;
if(GRAFANA_URL !== null) {
panelUrl = GRAFANA_URL;
} else {
panelUrl = analyticUnit.panelUrl;
}
const queryResult = await queryByMetric( const queryResult = await queryByMetric(
analyticUnit.metric, analyticUnit.metric,
analyticUnit.panelUrl, panelUrl,
range.from, range.from,
range.to, range.to,
HASTIC_API_KEY HASTIC_API_KEY

12
server/src/services/data_puller.ts

@ -2,7 +2,7 @@ import { AnalyticsTask, AnalyticsTaskType } from '../models/analytics_task_model
import * as AnalyticUnit from '../models/analytic_unit_model'; import * as AnalyticUnit from '../models/analytic_unit_model';
import * as AnalyticUnitCache from '../models/analytic_unit_cache_model'; import * as AnalyticUnitCache from '../models/analytic_unit_cache_model';
import { AnalyticsService } from './analytics_service'; import { AnalyticsService } from './analytics_service';
import { HASTIC_API_KEY } from '../config'; import { HASTIC_API_KEY, GRAFANA_URL } from '../config';
import { queryByMetric } from 'grafana-datasource-kit'; import { queryByMetric } from 'grafana-datasource-kit';
@ -36,7 +36,15 @@ export class DataPuller {
throw Error(`data puller: can't pull undefined unit`); throw Error(`data puller: can't pull undefined unit`);
} }
return queryByMetric(unit.metric, unit.panelUrl, from, to, HASTIC_API_KEY); let panelUrl;
if(GRAFANA_URL !== null) {
panelUrl = GRAFANA_URL;
} else {
panelUrl = unit.panelUrl;
}
return queryByMetric(unit.metric, panelUrl, from, to, HASTIC_API_KEY);
} }
private pushData(unit: AnalyticUnit.AnalyticUnit, data: any) { private pushData(unit: AnalyticUnit.AnalyticUnit, data: any) {

Loading…
Cancel
Save