From 0fcee80dcf5dc21eb4f15febb3825406fbd03368 Mon Sep 17 00:00:00 2001 From: Evgeny Smyshlyaev Date: Fri, 12 Apr 2019 16:03:50 +0300 Subject: [PATCH] System info: Hastic instance name (#558) --- server/src/config.ts | 1 + server/src/index.ts | 3 ++- server/src/services/notification_service.ts | 4 +++- .../prometheus-hastic-exporter.py | 13 ++++++++++--- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/server/src/config.ts b/server/src/config.ts index 7e0ddf0..07b26ec 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -35,6 +35,7 @@ export const INSIDE_DOCKER = process.env.INSIDE_DOCKER !== undefined; export const PRODUCTION_MODE = process.env.NODE_ENV !== 'development'; export const ZMQ_CONNECTION_STRING = createZMQConnectionString(); +export const HASTIC_INSTANCE_NAME = getConfigField('HASTIC_INSTANCE_NAME', os.hostname()); function getConfigField(field: string, defaultVal?: any) { diff --git a/server/src/index.ts b/server/src/index.ts index 873ac23..db217ac 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -6,7 +6,7 @@ import * as AnalyticsController from './controllers/analytics_controller'; import * as ProcessService from './services/process_service'; -import { HASTIC_PORT, PACKAGE_VERSION, GIT_INFO, ZMQ_CONNECTION_STRING } from './config'; +import { HASTIC_PORT, PACKAGE_VERSION, GIT_INFO, ZMQ_CONNECTION_STRING, HASTIC_INSTANCE_NAME } from './config'; import { convertPanelUrlToPanelId } from './migrations/0.3.2-beta'; @@ -66,6 +66,7 @@ async function init() { lastAlive: AnalyticsController.analyticsLastAlive(), tasksQueueLength: AnalyticsController.getQueueLength() }, + instanceName: HASTIC_INSTANCE_NAME, awaitedTasksNumber: AnalyticsController.getTaskResolversLength(), detectionsCount: AnalyticsController.getDetectionsCount(), nodeVersion: process.version, diff --git a/server/src/services/notification_service.ts b/server/src/services/notification_service.ts index 6f94ec2..f01d84c 100644 --- a/server/src/services/notification_service.ts +++ b/server/src/services/notification_service.ts @@ -1,6 +1,6 @@ import { Segment } from '../models/segment_model'; import * as AnalyticUnit from '../models/analytic_unit_model'; -import { HASTIC_WEBHOOK_URL, HASTIC_WEBHOOK_TYPE, HASTIC_WEBHOOK_SECRET } from '../config'; +import { HASTIC_WEBHOOK_URL, HASTIC_WEBHOOK_TYPE, HASTIC_WEBHOOK_SECRET, HASTIC_INSTANCE_NAME } from '../config'; import axios from 'axios'; import * as querystring from 'querystring'; @@ -68,6 +68,8 @@ export async function sendWebhook(payload: any, contentType = HASTIC_WEBHOOK_TYP throw new Error(`Can't send alert, HASTIC_WEBHOOK_URL is undefined`); } + payload.instanceName = HASTIC_INSTANCE_NAME; + // TODO: use HASTIC_WEBHOOK_SECRET const options = { method: 'POST', diff --git a/tools/prometheus-hastic-exporter/prometheus-hastic-exporter.py b/tools/prometheus-hastic-exporter/prometheus-hastic-exporter.py index 64d704b..634da6a 100755 --- a/tools/prometheus-hastic-exporter/prometheus-hastic-exporter.py +++ b/tools/prometheus-hastic-exporter/prometheus-hastic-exporter.py @@ -21,9 +21,16 @@ class JsonCollector(object): print('got exception, skip polling loop {}'.format(e)) return - commitHash = response.get('git', {}).get('commitHash') - packageVersion = response.get('packageVersion') - labels={'commitHash': commitHash, 'packageVersion': packageVersion} + labels_values = { + 'commitHash': response.get('git', {}).get('commitHash'), + 'packageVersion': response.get('packageVersion'), + 'instanceName': response.get('instanceName1') + } + + labels = {} + for k, v in labels_values.items(): + if v is not None: + labels[k] = v metrics = { 'activeWebhooks': response.get('activeWebhooks'),