NewBaseEvents
parent
818900f276
commit
60c4cbcc6c
|
|
@ -5,12 +5,14 @@ import { ZvksmetricsModule } from './zvksmetrics/zvksmetrics.module';
|
|||
import { GruberModule } from './gruber/gruber.module';
|
||||
import { DatabaseModule } from './database/database.module';
|
||||
import { ConfigModule } from '@nestjs/config';
|
||||
import { StatusModule } from './status/status.module';
|
||||
import { EventsModule } from './events/events.module';
|
||||
|
||||
@Module({
|
||||
imports: [ZvksmetricsModule, GruberModule, DatabaseModule, ConfigModule.forRoot({
|
||||
isGlobal: true,
|
||||
envFilePath: './.env',
|
||||
}),],
|
||||
}), StatusModule, EventsModule,],
|
||||
controllers: [AppController],
|
||||
providers: [AppService],
|
||||
})
|
||||
|
|
|
|||
|
|
@ -144,7 +144,12 @@ export class ClickhouseService {
|
|||
insertRawQuery = insertRawQuery.replace('{{parameterBody}}', parameterBody);
|
||||
// console.log(insertRawQuery);
|
||||
// for (let query of insertQuery) {
|
||||
try{
|
||||
let retRaw = await connectionData.query(insertRawQuery).toPromise();
|
||||
}
|
||||
catch{
|
||||
console.log(insertRawQuery);
|
||||
}
|
||||
// console.log(retRaw);
|
||||
// }
|
||||
break;
|
||||
|
|
@ -161,4 +166,19 @@ export class ClickhouseService {
|
|||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
async ClickHouseAddEvents(parameterID: string, parameterName: string, parameterValue: string, parameterBody: string, previousStatus: string, currentStatus: string): Promise<any>{
|
||||
let connectionData = await this.ClickHouseDBsCreate();
|
||||
let insertEventQuery = 'INSERT INTO status_events VALUES(toDateTime(now()), {{parameterID}}, \'{{parameterName}}\', {{parameterValue}}, \'{{parameterBody}}\', {{previousStatus}}, {{currentStatus}}, toDateTime(now()));';
|
||||
insertEventQuery = insertEventQuery.replace('{{parameterID}}', parameterID);
|
||||
insertEventQuery = insertEventQuery.replace('{{parameterName}}', parameterName);
|
||||
insertEventQuery = insertEventQuery.replace('{{parameterValue}}', parameterValue);
|
||||
insertEventQuery = insertEventQuery.replace('{{parameterBody}}', parameterBody);
|
||||
insertEventQuery = insertEventQuery.replace('{{previousStatus}}', previousStatus);
|
||||
insertEventQuery = insertEventQuery.replace('{{currentStatus}}', currentStatus);
|
||||
let retEvent = await connectionData.query(insertEventQuery).toPromise();
|
||||
// console.log(retEvent);
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { EventsService } from './events.service';
|
||||
|
||||
@Module({
|
||||
providers: [EventsService]
|
||||
})
|
||||
export class EventsModule {}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { EventsService } from './events.service';
|
||||
|
||||
describe('EventsService', () => {
|
||||
let service: EventsService;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [EventsService],
|
||||
}).compile();
|
||||
|
||||
service = module.get<EventsService>(EventsService);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(service).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { ClickhouseService } from 'src/database/clickhouse/clickhouse.service';
|
||||
import { MetricK2 } from 'src/zvksmetrics/zvksmetrics.service';
|
||||
import { classToPlain } from 'class-transformer';
|
||||
|
||||
@Injectable()
|
||||
export class EventsService {
|
||||
async CompareStatus(parameter: MetricK2) : Promise <any>{
|
||||
let diff = Math.floor(Math.random() * (2)) + 1;
|
||||
console.log(diff);
|
||||
if(parameter.status != (parameter.status + diff) ){
|
||||
await this.RecordChangedMetricToClicHouse(parameter.id, parameter.name, parameter.value, parameter, parameter.status, parameter.status + diff);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
async RecordChangedMetricToClicHouse(parameterID: string, parameterName: string, parameterValue: number, parameterBody: MetricK2, previousStatus: number, currentStatus: number) : Promise <any>{
|
||||
let rec = new ClickhouseService();
|
||||
await rec.ClickHouseAddEvents(parameterID, parameterName, parameterValue.toString(), JSON.stringify(classToPlain(parameterBody)), previousStatus.toString(), currentStatus.toString());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { StatusService } from './status.service';
|
||||
|
||||
@Module({
|
||||
providers: [StatusService]
|
||||
})
|
||||
export class StatusModule {}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { StatusService } from './status.service';
|
||||
|
||||
describe('StatusService', () => {
|
||||
let service: StatusService;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [StatusService],
|
||||
}).compile();
|
||||
|
||||
service = module.get<StatusService>(StatusService);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(service).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
export class StatusService {}
|
||||
|
|
@ -5,6 +5,7 @@ import { response } from 'express';
|
|||
import { json } from 'node:stream/consumers';
|
||||
import math, { create, all, evaluate, number, random, complex, string, SQRT1_2 } from 'mathjs';
|
||||
import { ClickhouseService } from 'src/database/clickhouse/clickhouse.service';
|
||||
import { EventsService } from 'src/events/events.service';
|
||||
import { classToPlain } from 'class-transformer';
|
||||
|
||||
|
||||
|
|
@ -132,6 +133,8 @@ export class ZvksmetricsService {
|
|||
let devices: number[] = [18, 19];
|
||||
let device_len: number = devices.length;
|
||||
|
||||
let compare = new EventsService();
|
||||
|
||||
// const jsonData = require('../conf/devices.json');
|
||||
// console.log(jsonData);
|
||||
for (let d = 0; d < device_len; d++) {
|
||||
|
|
@ -150,6 +153,8 @@ export class ZvksmetricsService {
|
|||
complexMetric.device = devices[d];
|
||||
complexMetric.source = metr.source;
|
||||
metrics.push(complexMetric);
|
||||
|
||||
await compare.CompareStatus(complexMetric);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue