UNPKG

metallic-metrics

Version:
38 lines (32 loc) 3.86 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); class MetricsGaugeMemoryMixin { static mix(superclass) { return class extends superclass { constructor({ interval = 0, logger }) { super(...arguments); this.interval = interval; this.logger = logger; } async run() { if (this.interval) { this.memoryInterval = setInterval(() => { const memoryUsage = process.memoryUsage(); Object.keys(memoryUsage).forEach(property => this.gauge(`memory.${property}`, memoryUsage[property])); }, this.interval); this.logger.debug('Gauge memory activated every %d seconds', this.interval / 1000); } return super.run(); } async close() { clearInterval(this.memoryInterval); this.logger.debug('Gauge CPU interval cleared', this.interval / 1000); return super.close(); } }; } } exports.default = MetricsGaugeMemoryMixin; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRyaWNzLWdhdWdlLW1lbW9yeS1taXhpbi5qcyJdLCJuYW1lcyI6WyJNZXRyaWNzR2F1Z2VNZW1vcnlNaXhpbiIsIm1peCIsInN1cGVyY2xhc3MiLCJjb25zdHJ1Y3RvciIsImludGVydmFsIiwibG9nZ2VyIiwiYXJndW1lbnRzIiwicnVuIiwibWVtb3J5SW50ZXJ2YWwiLCJzZXRJbnRlcnZhbCIsIm1lbW9yeVVzYWdlIiwicHJvY2VzcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwicHJvcGVydHkiLCJnYXVnZSIsImRlYnVnIiwiY2xvc2UiLCJjbGVhckludGVydmFsIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFlLE1BQU1BLHVCQUFOLENBQThCO0FBQzNDLFNBQU9DLEdBQVAsQ0FBWUMsVUFBWixFQUF3QjtBQUN0QixXQUFPLGNBQWNBLFVBQWQsQ0FBeUI7QUFDOUJDLGtCQUFhLEVBQUVDLFdBQVcsQ0FBYixFQUFnQkMsTUFBaEIsRUFBYixFQUF1QztBQUNyQyxjQUFNLEdBQUdDLFNBQVQ7QUFDQSxhQUFLRixRQUFMLEdBQWdCQSxRQUFoQjtBQUNBLGFBQUtDLE1BQUwsR0FBY0EsTUFBZDtBQUNEOztBQUVELFlBQU1FLEdBQU4sR0FBYTtBQUNYLFlBQUksS0FBS0gsUUFBVCxFQUFtQjtBQUNqQixlQUFLSSxjQUFMLEdBQXNCQyxZQUFZLE1BQU07QUFDdEMsa0JBQU1DLGNBQWNDLFFBQVFELFdBQVIsRUFBcEI7O0FBRUFFLG1CQUFPQyxJQUFQLENBQVlILFdBQVosRUFBeUJJLE9BQXpCLENBQWlDQyxZQUFZLEtBQUtDLEtBQUwsQ0FBWSxVQUFTRCxRQUFTLEVBQTlCLEVBQWlDTCxZQUFZSyxRQUFaLENBQWpDLENBQTdDO0FBQ0QsV0FKcUIsRUFJbkIsS0FBS1gsUUFKYyxDQUF0Qjs7QUFNQSxlQUFLQyxNQUFMLENBQVlZLEtBQVosQ0FBa0IseUNBQWxCLEVBQTZELEtBQUtiLFFBQUwsR0FBZ0IsSUFBN0U7QUFDRDs7QUFFRCxlQUFPLE1BQU1HLEdBQU4sRUFBUDtBQUNEOztBQUVELFlBQU1XLEtBQU4sR0FBZTtBQUNiQyxzQkFBYyxLQUFLWCxjQUFuQjtBQUNBLGFBQUtILE1BQUwsQ0FBWVksS0FBWixDQUFrQiw0QkFBbEIsRUFBZ0QsS0FBS2IsUUFBTCxHQUFnQixJQUFoRTtBQUNBLGVBQU8sTUFBTWMsS0FBTixFQUFQO0FBQ0Q7QUF6QjZCLEtBQWhDO0FBMkJEO0FBN0IwQztrQkFBeEJsQix1QiIsImZpbGUiOiJtZXRyaWNzLWdhdWdlLW1lbW9yeS1taXhpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldHJpY3NHYXVnZU1lbW9yeU1peGluIHtcbiAgc3RhdGljIG1peCAoc3VwZXJjbGFzcykge1xuICAgIHJldHVybiBjbGFzcyBleHRlbmRzIHN1cGVyY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IgKHsgaW50ZXJ2YWwgPSAwLCBsb2dnZXIgfSkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpXG4gICAgICAgIHRoaXMuaW50ZXJ2YWwgPSBpbnRlcnZhbFxuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICAgICAgfVxuXG4gICAgICBhc3luYyBydW4gKCkge1xuICAgICAgICBpZiAodGhpcy5pbnRlcnZhbCkge1xuICAgICAgICAgIHRoaXMubWVtb3J5SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZW1vcnlVc2FnZSA9IHByb2Nlc3MubWVtb3J5VXNhZ2UoKVxuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhtZW1vcnlVc2FnZSkuZm9yRWFjaChwcm9wZXJ0eSA9PiB0aGlzLmdhdWdlKGBtZW1vcnkuJHtwcm9wZXJ0eX1gLCBtZW1vcnlVc2FnZVtwcm9wZXJ0eV0pKVxuICAgICAgICAgIH0sIHRoaXMuaW50ZXJ2YWwpXG5cbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnR2F1Z2UgbWVtb3J5IGFjdGl2YXRlZCBldmVyeSAlZCBzZWNvbmRzJywgdGhpcy5pbnRlcnZhbCAvIDEwMDApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VwZXIucnVuKClcbiAgICAgIH1cblxuICAgICAgYXN5bmMgY2xvc2UgKCkge1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMubWVtb3J5SW50ZXJ2YWwpXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdHYXVnZSBDUFUgaW50ZXJ2YWwgY2xlYXJlZCcsIHRoaXMuaW50ZXJ2YWwgLyAxMDAwKVxuICAgICAgICByZXR1cm4gc3VwZXIuY2xvc2UoKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19