metallic-metrics
Version:
StatsD's client for CARTO services
38 lines (32 loc) • 3.86 kB
JavaScript
;
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