@atomist/automation-client
Version:
Atomist API for software low-level client
39 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _metrics = require("metrics");
const os = require("os");
const report = new _metrics.Report();
function increment(name) {
const counter = getCounter(name);
counter.inc();
report.addMetric(name, counter);
}
exports.increment = increment;
// tslint:disable-next-line:no-shadowed-variable
function duration(name, duration) {
const timer = getTimer(name);
timer.update(duration);
report.addMetric(name, timer);
}
exports.duration = duration;
function getCounter(name) {
return report.getMetric(name) || new _metrics.Counter();
}
exports.getCounter = getCounter;
function getTimer(name) {
return report.getMetric(name) || new _metrics.Timer();
}
exports.getTimer = getTimer;
function metrics() {
const m = Object.assign(Object.assign({}, report.summary()), { heap: {
used: process.memoryUsage().heapUsed,
total: process.memoryUsage().heapTotal,
rss: process.memoryUsage().rss,
}, memory: {
free: os.freemem(),
total: os.totalmem(),
}, uptime: process.uptime() });
return m;
}
exports.metrics = metrics;
//# sourceMappingURL=metric.js.map