-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtimers.js
35 lines (28 loc) · 793 Bytes
/
timers.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
/* global process, require, module */
/* jshint strict:false */
var prommetrics = require('./prommetrics.js');
var timers = {};
function timer(name) {
timers[name + '_start'] = process.hrtime();
}
function timerEnd(name) {
if (!timers[name + '_start']) {
return undefined;
}
var realtime = process.hrtime(timers[name + '_start']);
var ts = realtime[0] * 1000;
var tms = realtime[1] / 1000000;
var time = ts + tms;
timers[name + '_avg'] = ((timers[name + '_avg'] || 0) + time) / 2;
delete timers[name + '_start'];
prommetrics.hobs('analytics_server_generationtime', time, {
"section": name,
"appid": prommetrics.appid
});
return time;
}
module.exports = {
timers: timers,
start: timer,
end: timerEnd
};