Skip to content

Commit 8525cf1

Browse files
authored
Merge pull request #23 from oslabs-beta/alex/healthMetricsExpanded
Alex/health metrics expanded
2 parents dd87b5b + 249ccf7 commit 8525cf1

File tree

2 files changed

+88
-16
lines changed

2 files changed

+88
-16
lines changed

chronos_npm_package/controllers/healthHelpers.js

+87-16
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,57 @@ healthHelpers.collectHealthData = () => {
1313
// for use with every object
1414
const time = Date.now();
1515
// Fill the array of promises
16+
promises.push(
17+
si
18+
.cpu()
19+
.then(data => ({
20+
speed_in_GHz: data.speed,
21+
speedMax_in_GHz: data.speedMax,
22+
num_of_cores: data.cores,
23+
num_of_processors: data.processors,
24+
'cache.l1d in bytes': data.cache.l1d,
25+
'cache.l1i in bytes': data.cache.l1i,
26+
'cache.l2 in bytes': data.cache.l2,
27+
'cache.l3 in bytes': data.cache.l3,
28+
}))
29+
.then(data => {
30+
const cpuMetrics = [];
31+
for (const metric in data) {
32+
cpuMetrics.push({
33+
metric,
34+
value: data[metric],
35+
category: 'CPU',
36+
time,
37+
});
38+
}
39+
return cpuMetrics;
40+
})
41+
.catch(err => {
42+
if (err) {
43+
throw err;
44+
}
45+
})
46+
);
1647
promises.push(
1748
si
1849
.cpuCurrentspeed()
1950
.then(data => ({
20-
metric: 'cpuspeed',
21-
value: data.avg,
22-
category: 'CPU',
23-
time,
51+
average_CPU_speed_in_GHz: data.avg,
52+
minimum_CPU_speed_in_GHz: data.min,
53+
maximum_CPU_speed_in_GHz: data.max,
2454
}))
55+
.then(data => {
56+
const cpuSpeedMetrics = [];
57+
for (const metric in data) {
58+
cpuSpeedMetrics.push({
59+
metric,
60+
value: data[metric],
61+
category: 'CPU',
62+
time,
63+
});
64+
}
65+
return cpuSpeedMetrics;
66+
})
2567
.catch(err => {
2668
if (err) {
2769
throw err;
@@ -33,11 +75,21 @@ healthHelpers.collectHealthData = () => {
3375
si
3476
.cpuTemperature()
3577
.then(data => ({
36-
metric: 'cputemp',
37-
value: data.main,
38-
category: 'CPU',
39-
time,
78+
average_temperature: data.main,
79+
max_temperature: data.max,
4080
}))
81+
.then(data => {
82+
const cpuTemperatureMetrics = [];
83+
for (const metric in data) {
84+
cpuTemperatureMetrics.push({
85+
metric,
86+
value: data[metric],
87+
category: 'CPU',
88+
time,
89+
});
90+
}
91+
return cpuTemperatureMetrics;
92+
})
4193
.catch(err => {
4294
if (err) {
4395
throw err;
@@ -49,11 +101,26 @@ healthHelpers.collectHealthData = () => {
49101
si
50102
.currentLoad()
51103
.then(data => ({
52-
metric: 'cpuloadpercent',
53-
value: data.currentload,
54-
category: 'CPU',
55-
time,
104+
average_CPU_load_percent: data.avg,
105+
current_CPU_load_percent: data.currentLoad,
106+
current_CPU_load_user_percent: data.currentLoadUser,
107+
current_CPU_load__system_percent: data.currentLoadSystem,
108+
current_CPU_load_nice_percent: data.currentLoadNice,
109+
current_CPU_load_idle_percent: data.currentLoadIdle,
110+
current_CPU_load_raw_ticks: data.rawCurrentLoad,
56111
}))
112+
.then(data => {
113+
const cpuLoadMetrics = [];
114+
for (const metric in data) {
115+
cpuLoadMetrics.push({
116+
metric,
117+
value: data[metric],
118+
category: 'CPU',
119+
time,
120+
});
121+
}
122+
return cpuLoadMetrics;
123+
})
57124
.catch(err => {
58125
throw err;
59126
})
@@ -63,10 +130,12 @@ healthHelpers.collectHealthData = () => {
63130
si
64131
.mem()
65132
.then(data => ({
66-
totalmemory: data.total,
67-
freememory: data.free,
68-
usedmemory: data.used,
69-
activememory: data.active,
133+
totalmemory_in_bytes: data.total,
134+
freememory_in_bytes: data.free,
135+
usedmemory_in_bytes: data.used,
136+
activememory_in_bytes: data.active,
137+
buffers_plus_cache_in_bytes: data.buffcache,
138+
available_memory: data.available,
70139
}))
71140
.then(data => {
72141
const memMetrics = [];
@@ -87,6 +156,8 @@ healthHelpers.collectHealthData = () => {
87156
})
88157
);
89158

159+
160+
90161
promises.push(
91162
si
92163
.processes()

chronos_npm_package/controllers/mongo.js

+1
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ chronos.health = ({ microservice, interval }) => {
110110
setInterval(() => {
111111
collectHealthData()
112112
.then(healthMetrics => {
113+
console.log('HEALTH METRICS: ', healthMetrics);
113114
const HealthModel = HealthModelFunc(`${microservice}`);
114115
return HealthModel.insertMany(healthMetrics);
115116
})

0 commit comments

Comments
 (0)