-
Notifications
You must be signed in to change notification settings - Fork 0
/
analyseScript.js
119 lines (116 loc) · 4.35 KB
/
analyseScript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
var fs = require('fs');
var path = require('path');
// var usage = {
// task_name: task_name,
// cpuUsage: [],
// memUsage: []
// };
var usageAnalyse = (valueType, actionType, usageObj) => {
if (valueType == 'cpu') {
if (actionType == 'max') {
var maxCpuNum=0;
if (usageObj.cpuUsage.length) {
usageObj.cpuUsage.forEach(item => {
if (item > maxCpuNum) {
maxCpuNum = item;
}
});
}
return maxCpuNum;
} else {
var avgCpuNum=0;
if (usageObj.cpuUsage.length) {
var sum = 0;
usageObj.cpuUsage.forEach(item => {
sum += item;
});
avgCpuNum = sum/(usageObj.cpuUsage.length);
}
return avgCpuNum;
}
} else {
if (actionType == 'max') {
var maxMemNum=0;
if (usageObj.memUsage.length) {
usageObj.memUsage.forEach(item => {
if (item > maxMemNum) {
maxMemNum = item;
}
});
}
return maxMemNum;
} else {
var avgMemNum=0;
if (usageObj.memUsage.length) {
var sum = 0;
usageObj.memUsage.forEach(item => {
sum += item;
});
avgMemNum = sum/(usageObj.memUsage.length);
}
return avgMemNum;
}
}
}
let getTimeDiff = () => {
var timeDiff = {};
var fileNameList = fs.readdirSync(path.resolve("./resource/devices"));
fileNameList.forEach(item => {
deviceInfo = fs.readFileSync(path.resolve(`./resource/devices/${item}`));
try {
deviceInfoObj = JSON.parse(deviceInfo.toString());
timeDiff[item] = deviceInfoObj.cloud;
} catch (error) {
console.log("wrong devices txt ");
}
});
return timeDiff;
}
if (process.argv[2] == 'up') {
var usageStr = fs.readFileSync(path.resolve('./resource/usage/upUsage')).toString();
var timeDiffStr = fs.readFileSync(path.resolve('./resource/cloud/history')).toString();
try {
var usage = JSON.parse(usageStr);
var timeDiff = JSON.parse(timeDiffStr);
var task_name = usage.task_name;
var maxCpuUsage = usageAnalyse('cpu', 'max', usage);
var maxMemUsage = usageAnalyse('mem', 'max', usage);
var avgCpuUsage = usageAnalyse('cpu', 'avg', usage);
var avgMemUsage = usageAnalyse('mem', 'avg', usage);
delete timeDiff.task_name;
console.log("数据上传分析报告: ");
console.log("cpu使用率最大值为: " + maxCpuUsage);
console.log("mem使用率最大值为: " + maxMemUsage);
console.log("cpu使用率均值为: " + avgCpuUsage);
console.log("mem使用率均值为: " + avgMemUsage);
console.log("数据上传的时间统计: ");
console.log("格式: {虚拟设备名1: [时间1,时间2,...], 虚拟设备名2: [], ...}" );
console.log(JSON.stringify(timeDiff));
} catch (error) {
console.log(error);
console.log('wrong text type');
}
} else {
var usageStr = fs.readFileSync(path.resolve('./resource/usage/downUsage')).toString();
try {
var usage = JSON.parse(usageStr);
var timeDiff = getTimeDiff();
var task_name = usage.task_name;
var maxCpuUsage = usageAnalyse('cpu', 'max', usage);
var maxMemUsage = usageAnalyse('mem', 'max', usage);
var avgCpuUsage = usageAnalyse('cpu', 'avg', usage);
var avgMemUsage = usageAnalyse('mem', 'avg', usage);
console.log("数据下发分析报告: ");
console.log("当前服务task为: " + task_name);
console.log("cpu使用率最大值为: " + maxCpuUsage);
console.log("mem使用率最大值为: " + maxMemUsage);
console.log("cpu使用率均值为: " + avgCpuUsage);
console.log("mem使用率均值为: " + avgMemUsage);
console.log("数据下发的时间统计: ");
console.log("格式: {虚拟设备名1: [时间1,时间2,...], 虚拟设备名2: [], ...}" );
console.log(JSON.stringify(timeDiff));
} catch (error) {
console.log(error);
console.log('wrong text type');
}
}