New integration vtnhbr
parent
d3f1924844
commit
76ce60060f
|
|
@ -3,9 +3,10 @@
|
|||
"id": "90001",
|
||||
"name": "server_li",
|
||||
"values": {
|
||||
"cmplxarr": [
|
||||
"cpu_utilization",
|
||||
"statusarr": [
|
||||
"cpu_load_average_1",
|
||||
"ram_usage",
|
||||
"disk_usage",
|
||||
"disk_read_rate",
|
||||
"disk_write_rate",
|
||||
"network_interface_rx_Eth_1",
|
||||
|
|
@ -24,7 +25,7 @@
|
|||
"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",
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -150,11 +150,11 @@ export class ZvksmetricsService {
|
|||
|
||||
// const jsonData = require('../conf/devices.json');
|
||||
// console.log(jsonData);
|
||||
let uptimeElements = inputData.metrics.filter(element=> element.name == 'upTime');
|
||||
if(uptimeElements){
|
||||
for(let uptime of uptimeElements){
|
||||
let uptimeElements = inputData.metrics.filter(element => element.name == 'upTime');
|
||||
if (uptimeElements) {
|
||||
for (let uptime of uptimeElements) {
|
||||
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++) {
|
||||
|
|
@ -197,7 +197,7 @@ export class ZvksmetricsService {
|
|||
for (let d = 0; d < device_len; d++) {
|
||||
for (let i = 0; i < length; i++) {
|
||||
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) {
|
||||
let integrationMetric = new MetricK2();
|
||||
integrationMetric.id = intgrationCalc[i].id;
|
||||
|
|
@ -254,33 +254,48 @@ export class ZvksmetricsService {
|
|||
let result: number = evaluate(formula, val);
|
||||
// console.log(result);
|
||||
return result;
|
||||
// console.log(result);
|
||||
} catch {
|
||||
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));
|
||||
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;
|
||||
|
||||
for (let i = 0; i < arr_len; i++) {
|
||||
let temp = arr[i];
|
||||
// let temp = arr[i];
|
||||
if(metricName == "server_li"){
|
||||
arr[i] = metrics.find(element => element.name == arr[i] && element.device == device)?.status;
|
||||
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;
|
||||
if(arr[i]==undefined || arr[i]==null || Number.isNaN(arr[i])){
|
||||
arr[i]=Math.random()*10;
|
||||
}
|
||||
// console.log(arr[i]);
|
||||
if (arr[i] == undefined || arr[i] == null || Number.isNaN(arr[i])) {
|
||||
arr[i] = Math.random() * 10;
|
||||
}
|
||||
// console.log(arr[i]);
|
||||
}
|
||||
|
||||
try {
|
||||
let result: number = evaluate(formula, val);
|
||||
// console.log(result);
|
||||
console.log(metricName, result);
|
||||
return result;
|
||||
} catch {
|
||||
return null;
|
||||
|
|
|
|||
Loading…
Reference in New Issue