metallic-metrics
Version:
StatsD's client for CARTO services
42 lines (34 loc) • 4.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
class MetricsGaugeCPUMixin {
static mix(superclass) {
return class extends superclass {
constructor({ interval = 0, logger }) {
super(...arguments);
this.interval = interval;
this.logger = logger;
}
async run() {
if (this.interval) {
let previousCPUUsage = process.cpuUsage();
this.cpuInterval = setInterval(() => {
const CPUUsage = process.cpuUsage(previousCPUUsage);
Object.keys(CPUUsage).forEach(property => this.gauge(`cpu.${property}`, CPUUsage[property]));
previousCPUUsage = CPUUsage;
}, this.interval);
this.logger.debug('Gauge CPU activated every %d seconds', this.interval / 1000);
}
return super.run();
}
async close() {
clearInterval(this.cpuInterval);
this.logger.debug('Gauge CPU interval cleared', this.interval / 1000);
return super.close();
}
};
}
}
exports.default = MetricsGaugeCPUMixin;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRyaWNzLWdhdWdlLWNwdS1taXhpbi5qcyJdLCJuYW1lcyI6WyJNZXRyaWNzR2F1Z2VDUFVNaXhpbiIsIm1peCIsInN1cGVyY2xhc3MiLCJjb25zdHJ1Y3RvciIsImludGVydmFsIiwibG9nZ2VyIiwiYXJndW1lbnRzIiwicnVuIiwicHJldmlvdXNDUFVVc2FnZSIsInByb2Nlc3MiLCJjcHVVc2FnZSIsImNwdUludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJDUFVVc2FnZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwicHJvcGVydHkiLCJnYXVnZSIsImRlYnVnIiwiY2xvc2UiLCJjbGVhckludGVydmFsIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFlLE1BQU1BLG9CQUFOLENBQTJCO0FBQ3hDLFNBQU9DLEdBQVAsQ0FBWUMsVUFBWixFQUF3QjtBQUN0QixXQUFPLGNBQWNBLFVBQWQsQ0FBeUI7QUFDOUJDLGtCQUFhLEVBQUVDLFdBQVcsQ0FBYixFQUFnQkMsTUFBaEIsRUFBYixFQUF1QztBQUNyQyxjQUFNLEdBQUdDLFNBQVQ7QUFDQSxhQUFLRixRQUFMLEdBQWdCQSxRQUFoQjtBQUNBLGFBQUtDLE1BQUwsR0FBY0EsTUFBZDtBQUNEOztBQUVELFlBQU1FLEdBQU4sR0FBYTtBQUNYLFlBQUksS0FBS0gsUUFBVCxFQUFtQjtBQUNqQixjQUFJSSxtQkFBbUJDLFFBQVFDLFFBQVIsRUFBdkI7O0FBRUEsZUFBS0MsV0FBTCxHQUFtQkMsWUFBWSxNQUFNO0FBQ25DLGtCQUFNQyxXQUFXSixRQUFRQyxRQUFSLENBQWlCRixnQkFBakIsQ0FBakI7O0FBRUFNLG1CQUFPQyxJQUFQLENBQVlGLFFBQVosRUFBc0JHLE9BQXRCLENBQThCQyxZQUFZLEtBQUtDLEtBQUwsQ0FBWSxPQUFNRCxRQUFTLEVBQTNCLEVBQThCSixTQUFTSSxRQUFULENBQTlCLENBQTFDOztBQUVBVCwrQkFBbUJLLFFBQW5CO0FBQ0QsV0FOa0IsRUFNaEIsS0FBS1QsUUFOVyxDQUFuQjs7QUFRQSxlQUFLQyxNQUFMLENBQVljLEtBQVosQ0FBa0Isc0NBQWxCLEVBQTBELEtBQUtmLFFBQUwsR0FBZ0IsSUFBMUU7QUFDRDs7QUFFRCxlQUFPLE1BQU1HLEdBQU4sRUFBUDtBQUNEOztBQUVELFlBQU1hLEtBQU4sR0FBZTtBQUNiQyxzQkFBYyxLQUFLVixXQUFuQjtBQUNBLGFBQUtOLE1BQUwsQ0FBWWMsS0FBWixDQUFrQiw0QkFBbEIsRUFBZ0QsS0FBS2YsUUFBTCxHQUFnQixJQUFoRTtBQUNBLGVBQU8sTUFBTWdCLEtBQU4sRUFBUDtBQUNEO0FBN0I2QixLQUFoQztBQStCRDtBQWpDdUM7a0JBQXJCcEIsb0IiLCJmaWxlIjoibWV0cmljcy1nYXVnZS1jcHUtbWl4aW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBNZXRyaWNzR2F1Z2VDUFVNaXhpbiB7XG4gIHN0YXRpYyBtaXggKHN1cGVyY2xhc3MpIHtcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBzdXBlcmNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yICh7IGludGVydmFsID0gMCwgbG9nZ2VyIH0pIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKVxuICAgICAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWxcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXJcbiAgICAgIH1cblxuICAgICAgYXN5bmMgcnVuICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgICAgICBsZXQgcHJldmlvdXNDUFVVc2FnZSA9IHByb2Nlc3MuY3B1VXNhZ2UoKVxuXG4gICAgICAgICAgdGhpcy5jcHVJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IENQVVVzYWdlID0gcHJvY2Vzcy5jcHVVc2FnZShwcmV2aW91c0NQVVVzYWdlKVxuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhDUFVVc2FnZSkuZm9yRWFjaChwcm9wZXJ0eSA9PiB0aGlzLmdhdWdlKGBjcHUuJHtwcm9wZXJ0eX1gLCBDUFVVc2FnZVtwcm9wZXJ0eV0pKVxuXG4gICAgICAgICAgICBwcmV2aW91c0NQVVVzYWdlID0gQ1BVVXNhZ2VcbiAgICAgICAgICB9LCB0aGlzLmludGVydmFsKVxuXG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0dhdWdlIENQVSBhY3RpdmF0ZWQgZXZlcnkgJWQgc2Vjb25kcycsIHRoaXMuaW50ZXJ2YWwgLyAxMDAwKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1cGVyLnJ1bigpXG4gICAgICB9XG5cbiAgICAgIGFzeW5jIGNsb3NlICgpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmNwdUludGVydmFsKVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnR2F1Z2UgQ1BVIGludGVydmFsIGNsZWFyZWQnLCB0aGlzLmludGVydmFsIC8gMTAwMClcbiAgICAgICAgcmV0dXJuIHN1cGVyLmNsb3NlKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==