@@ -7,7 +7,7 @@ var rrdtool= "rrdtool";
7
7
/******************************************************************************/
8
8
// CONFIGURATION
9
9
// The root of rrd data, collected by collectd
10
- var collectDataRoot = __dirname + "/sampledata2 " ;
10
+ var collectDataRoot = __dirname + "/sampledata " ;
11
11
12
12
13
13
/******************************************************************************/
@@ -56,7 +56,13 @@ var getCpuHeatmap = exports.getCpuHeatmap = function(req, res, next) {
56
56
if ( err ) {
57
57
next ( err ) ;
58
58
} else {
59
- res . json ( data ) ;
59
+ normalizeLoad ( data , function ( err , data ) {
60
+ if ( err ) {
61
+ next ( err ) ;
62
+ } else {
63
+ res . json ( data ) ;
64
+ }
65
+ } ) ;
60
66
}
61
67
} ) ;
62
68
}
@@ -199,22 +205,50 @@ var getInfoForAllHosts = function (path, keys, callback) {
199
205
} ) ;
200
206
}
201
207
208
+ var normalizeLoad = function ( data , callback ) {
209
+ async . each ( data , function ( server , cb ) {
210
+ var dir = collectDataRoot + '/' + server [ 0 ]
211
+ var str = "cpu-" ;
212
+
213
+ fs . readdir ( dir , function ( err , filenames ) {
214
+ if ( err ) {
215
+ cb ( err ) ;
216
+ } else {
217
+ var numberOfCpus = filenames . filter ( function ( e ) { return e . slice ( 0 , str . length ) === str ; } ) . length ;
218
+ server [ 1 ] = server [ 1 ] / numberOfCpus ;
219
+ cb ( ) ;
220
+ }
221
+ } ) ;
222
+ } , function ( err ) {
223
+ callback ( err , data )
224
+ } ) ;
225
+ } ;
226
+
202
227
/* Quick & dirty testing */
203
228
// infoRRD("memory/memory-active.rrd", "localhost", function(info) {
204
229
// console.log(info);
205
230
// });
206
- var resmock = { json : function ( data ) {
207
- console . log ( JSON . stringify ( data , null , 2 ) ) ;
208
- } } ;
209
- var nextmock = function ( err ) { console . log ( err ) ; }
210
- var reqmock = { params : { id :"localhost" } , query :{ from : 1370556816 , to : 1370643216 , r :1000 } } ;
211
- getMemoryHeatmap ( reqmock , resmock , nextmock ) ;
231
+ // var resmock = { json: function (data) {
232
+ // console.log(JSON.stringify(data, null, 2));
233
+ // }};
234
+ // var nextmock = function(err) { console.log(err); }
235
+ // var reqmock = { params: { id:"localhost"}, query:{from: 1370556816, to: 1370643216, r:1000} };
236
+ // getMemoryHeatmap(reqmock, resmock, nextmock);
212
237
213
238
// getInfoForAllHosts("load/load.rrd", ["ds[shortterm].value", "last_update"], function(err, data) {
214
239
// if (!err) {
215
- // console.log(data);
216
- // console.log(data.length);
240
+ // normalizeLoad(data, function (err, data) {
241
+ // if (err) {
242
+ // console.log("ERROR: ", err);
243
+ // } else {
244
+ // console.log(data);
245
+ // }
246
+ // });
217
247
// } else {
218
248
// console.log("ERROR: ", err);
219
249
// }
220
250
// });
251
+
252
+ // fs.readdir(collectDataRoot, function (err, filenames) {
253
+ // console.log(filenames);
254
+ // });
0 commit comments