New integration vtnhbr
parent
d3f1924844
commit
76ce60060f
|
|
@ -3,9 +3,10 @@
|
||||||
"id": "90001",
|
"id": "90001",
|
||||||
"name": "server_li",
|
"name": "server_li",
|
||||||
"values": {
|
"values": {
|
||||||
"cmplxarr": [
|
"statusarr": [
|
||||||
"cpu_utilization",
|
"cpu_load_average_1",
|
||||||
"ram_usage",
|
"ram_usage",
|
||||||
|
"disk_usage",
|
||||||
"disk_read_rate",
|
"disk_read_rate",
|
||||||
"disk_write_rate",
|
"disk_write_rate",
|
||||||
"network_interface_rx_Eth_1",
|
"network_interface_rx_Eth_1",
|
||||||
|
|
@ -24,7 +25,7 @@
|
||||||
"0.1"
|
"0.1"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"formula": "cmplxarr[1]*warr[1]+cmplxarr[2]*warr[2]+(cmplxarr[3]+cmplxarr[4])/2*warr[3]+(cmplxarr[5]+cmplxarr[6]+cmplxarr[7]+cmplxarr[8]+cmplxarr[9]+cmplxarr[10]+cmplxarr[11]+cmplxarr[12])/2*warr[4]"
|
"formula": "100 * (1 - (statusarr[1]*warr[1]+statusarr[2]*warr[1]+statusarr[3]*warr[4]+statusarr[4]*warr[3]+statusarr[4]*warr[3]+statusarr[5]*warr[3]+statusarr[6]*warr[3]+statusarr[7]*warr[3]+statusarr[8]*warr[3]+statusarr[9]*warr[3]+statusarr[10]*warr[3]+statusarr[11]*warr[3]+statusarr[12]*warr[3]+statusarr[13]*warr[3])/(warr[1]+warr[1]+warr[4]+warr[3]+warr[3]+warr[3]+warr[3]+warr[3]+warr[3]+warr[3]+warr[3]+warr[3]+warr[3]+warr[3]))"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "90002",
|
"id": "90002",
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -70,7 +70,7 @@ export class ZvksmetricsService {
|
||||||
let integration: K2Metrics = new K2Metrics();
|
let integration: K2Metrics = new K2Metrics();
|
||||||
integration.service_name = inp.service_name;
|
integration.service_name = inp.service_name;
|
||||||
integration.metrics = [];
|
integration.metrics = [];
|
||||||
|
|
||||||
let scope: MetricsRanges[] = [];
|
let scope: MetricsRanges[] = [];
|
||||||
scope = await this.setMetricsRanges();
|
scope = await this.setMetricsRanges();
|
||||||
|
|
||||||
|
|
@ -150,11 +150,11 @@ export class ZvksmetricsService {
|
||||||
|
|
||||||
// const jsonData = require('../conf/devices.json');
|
// const jsonData = require('../conf/devices.json');
|
||||||
// console.log(jsonData);
|
// console.log(jsonData);
|
||||||
let uptimeElements = inputData.metrics.filter(element=> element.name == 'upTime');
|
let uptimeElements = inputData.metrics.filter(element => element.name == 'upTime');
|
||||||
if(uptimeElements){
|
if (uptimeElements) {
|
||||||
for(let uptime of uptimeElements){
|
for (let uptime of uptimeElements) {
|
||||||
let uptStr: any = uptime?.value.toString().split(' ');
|
let uptStr: any = uptime?.value.toString().split(' ');
|
||||||
uptime.value = (+uptStr[0])*3600+(uptStr[2])*60+(+uptStr[4]);
|
uptime.value = (+uptStr[0]) * 3600 + (uptStr[2]) * 60 + (+uptStr[4]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (let d = 0; d < device_len; d++) {
|
for (let d = 0; d < device_len; d++) {
|
||||||
|
|
@ -173,7 +173,7 @@ export class ZvksmetricsService {
|
||||||
complexMetric.device = devices[d];
|
complexMetric.device = devices[d];
|
||||||
complexMetric.source = metr.source;
|
complexMetric.source = metr.source;
|
||||||
metrics.push(complexMetric);
|
metrics.push(complexMetric);
|
||||||
|
|
||||||
await compare.CompareStatus(complexMetric);
|
await compare.CompareStatus(complexMetric);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -184,7 +184,7 @@ export class ZvksmetricsService {
|
||||||
return complexData;
|
return complexData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async getIntegrationMetricsValues(complexData: K2Metrics, integrationData: K2Metrics, intgrationCalc: MetricsCalculation[], scope: MetricsRanges[]): Promise<K2Metrics> {
|
async getIntegrationMetricsValues(complexData: K2Metrics, integrationData: K2Metrics, intgrationCalc: MetricsCalculation[], scope: MetricsRanges[]): Promise<K2Metrics> {
|
||||||
let length: number = intgrationCalc.length;
|
let length: number = intgrationCalc.length;
|
||||||
let metrics: MetricK2[] = integrationData.metrics;
|
let metrics: MetricK2[] = integrationData.metrics;
|
||||||
|
|
@ -197,7 +197,7 @@ export class ZvksmetricsService {
|
||||||
for (let d = 0; d < device_len; d++) {
|
for (let d = 0; d < device_len; d++) {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
let metr = { "source": "" };
|
let metr = { "source": "" };
|
||||||
let val = await this.setIntegrationMetricValue(intgrationCalc[i].values, intgrationCalc[i].formula, complexData.metrics, devices[d], metr);
|
let val = await this.setIntegrationMetricValue(intgrationCalc[i].values, intgrationCalc[i].formula, intgrationCalc[i].name, complexData.metrics, devices[d], metr);
|
||||||
if (val != null || val != undefined) {
|
if (val != null || val != undefined) {
|
||||||
let integrationMetric = new MetricK2();
|
let integrationMetric = new MetricK2();
|
||||||
integrationMetric.id = intgrationCalc[i].id;
|
integrationMetric.id = intgrationCalc[i].id;
|
||||||
|
|
@ -210,7 +210,7 @@ export class ZvksmetricsService {
|
||||||
integrationMetric.device = devices[d];
|
integrationMetric.device = devices[d];
|
||||||
integrationMetric.source = metr.source;
|
integrationMetric.source = metr.source;
|
||||||
metrics.push(integrationMetric);
|
metrics.push(integrationMetric);
|
||||||
|
|
||||||
await compare.CompareStatus(integrationMetric);
|
await compare.CompareStatus(integrationMetric);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -254,33 +254,48 @@ export class ZvksmetricsService {
|
||||||
let result: number = evaluate(formula, val);
|
let result: number = evaluate(formula, val);
|
||||||
// console.log(result);
|
// console.log(result);
|
||||||
return result;
|
return result;
|
||||||
// console.log(result);
|
|
||||||
} catch {
|
} catch {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async setIntegrationMetricValue(value: string, formula: string, metrics: MetricK2[], device: number, obj: any): Promise<any> {
|
async setIntegrationMetricValue(value: string, formula: string, metricName: string, metrics: MetricK2[], device: number, obj: any): Promise<any> {
|
||||||
const val = JSON.parse(JSON.stringify(value));
|
const val = JSON.parse(JSON.stringify(value));
|
||||||
|
let arr = val.statusarr;
|
||||||
|
let arr_len: number = 13; //arr.length;
|
||||||
|
// console.log (metricName);
|
||||||
|
if(metricName == "application_li"){
|
||||||
|
arr = val.cmplxarr;
|
||||||
|
arr_len = 4;
|
||||||
|
}
|
||||||
|
// console.log(arr);
|
||||||
|
|
||||||
|
|
||||||
// console.log(val.cmplxarr);
|
|
||||||
let arr = val.cmplxarr;
|
|
||||||
|
|
||||||
let arr_len: number = arr.length;
|
|
||||||
obj.source = metrics.find(element => element.name == arr[0] && element.device == device)?.source;
|
obj.source = metrics.find(element => element.name == arr[0] && element.device == device)?.source;
|
||||||
|
|
||||||
for (let i = 0; i < arr_len; i++) {
|
for (let i = 0; i < arr_len; i++) {
|
||||||
let temp = arr[i];
|
// let temp = arr[i];
|
||||||
arr[i] = metrics.find(element => element.name == arr[i] && element.device == device)?.value;
|
if(metricName == "server_li"){
|
||||||
if(arr[i]==undefined || arr[i]==null || Number.isNaN(arr[i])){
|
arr[i] = metrics.find(element => element.name == arr[i] && element.device == device)?.status;
|
||||||
arr[i]=Math.random()*10;
|
if(arr[i]!=0) {
|
||||||
|
arr[i]--;
|
||||||
|
}
|
||||||
|
// console.log(arr[i]);
|
||||||
|
}
|
||||||
|
if(metricName == "application_li"){
|
||||||
|
arr[i] = metrics.find(element => element.name == arr[i] && element.device == device)?.value;
|
||||||
|
}
|
||||||
|
// console.log(arr[i]);
|
||||||
|
if (arr[i] == undefined || arr[i] == null || Number.isNaN(arr[i])) {
|
||||||
|
arr[i] = Math.random() * 10;
|
||||||
}
|
}
|
||||||
// console.log(arr[i]);
|
// console.log(arr[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let result: number = evaluate(formula, val);
|
let result: number = evaluate(formula, val);
|
||||||
// console.log(result);
|
console.log(metricName, result);
|
||||||
return result;
|
return result;
|
||||||
} catch {
|
} catch {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue