UNPKG

metallic-metrics

Version:
42 lines (34 loc) 4.17 kB
'use strict'; 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==