Code coverage report for kappa/lib/stats.js

Statements: 100% (16 / 16)      Branches: 100% (0 / 0)      Functions: 100% (5 / 5)      Lines: 100% (16 / 16)      Ignored: none     

All files » kappa/lib/ » stats.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                                      1 1         1 1                     1 3       1 47       1 23               1 2 8 8     2   2    
/*───────────────────────────────────────────────────────────────────────────*\
│  Copyright (C) 2014 eBay Software Foundation                                │
│                                                                             │
│hh ,'""`.                                                                    │
│  / _  _ \  Licensed under the Apache License, Version 2.0 (the "License");  │
│  |(@)(@)|  you may not use this file except in compliance with the License. │
│  )  __  (  You may obtain a copy of the License at                          │
│ /,'))((`.\                                                                  │
│(( ((  )) ))    http://www.apache.org/licenses/LICENSE-2.0                   │
│ `\ `)(' /'                                                                  │
│                                                                             │
│   Unless required by applicable law or agreed to in writing, software       │
│   distributed under the License is distributed on an "AS IS" BASIS,         │
│   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  │
│   See the License for the specific language governing permissions and       │
│   limitations under the License.                                            │
\*───────────────────────────────────────────────────────────────────────────*/
'use strict';
 
var Os = require('os');
var Util = require('./util');
 
 
// XXX: This is NOT built to be used in a clustered scenario just yet.
 
var OS_STATS = ['hostname', 'loadavg', 'totalmem', 'freemem'];
var data = {
    counters: {}
};
 
 
 
/**
 * The HAPI request handler for serving stats.
 * @param req
 * @param reply
 */
exports.handler = function (req, reply) {
    reply(data);
};
 
 
exports.increment = Util.init(data.counters, function (obj, prop) {
    obj[prop] += 1;
});
 
 
exports.decrement = Util.maybe(data.counters, function (obj, prop) {
    obj[prop] -= 1;
});
 
 
 
/**
 * Manages aggregating all the relevant info
 */
(function calculate() {
    OS_STATS.reduce(function (data, stat) {
        data[stat] = Os[stat]();
        return data;
    }, data);
 
    data.memoryUsage = process.memoryUsage();
 
    setTimeout(calculate, 5000).unref();
})();