Current File : //lib/node_modules/pm2/node_modules/@pm2/io/build/main/src/metrics/deepMetrics.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const metricConfig_1 = require("../utils/metricConfig");
const deepMetricsTracer_1 = require("./deepMetricsTracer");
const deepmetrics = require("deep-metrics");
const debug_1 = require("debug");
const debug = debug_1.default('axm:deepMetrics');
class DeepMetrics {
    constructor(metricFeature) {
        this.allPossibleMetrics = {};
        this.defaultConf = {
            mongo: true,
            mysql: true,
            mqtt: true,
            socketio: true,
            redis: true,
            http: true,
            https: true,
            'http-outbound': true,
            'https-outbound': true
        };
        this.metricFeature = metricFeature;
    }
    init(config) {
        deepmetrics.start();
        // instantiate all metrics
        for (let probeName in this.defaultConf) {
            if (this.defaultConf.hasOwnProperty(probeName)) {
                this.allPossibleMetrics[probeName] = new deepMetricsTracer_1.default(this.metricFeature, deepmetrics.ee, probeName);
            }
        }
        config = metricConfig_1.default.getConfig(config, this.defaultConf);
        // initialize only metrics found in config
        for (let probeName in this.allPossibleMetrics) {
            if (this.allPossibleMetrics.hasOwnProperty(probeName) && (config === 'all' || config[probeName] === true)) {
                this.allPossibleMetrics[probeName].init();
            }
        }
    }
    destroy() {
        deepmetrics.stop();
        // clean children
        for (let probeName in this.allPossibleMetrics) {
            if (this.allPossibleMetrics.hasOwnProperty(probeName)) {
                this.allPossibleMetrics[probeName].destroy();
            }
        }
        this.allPossibleMetrics = {};
        debug('Deep metrics detroyed !');
    }
}
exports.default = DeepMetrics;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcE1ldHJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWV0cmljcy9kZWVwTWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLHdEQUFnRDtBQUNoRCwyREFBbUQ7QUFDbkQsNENBQTJDO0FBRTNDLGlDQUF5QjtBQUN6QixNQUFNLEtBQUssR0FBRyxlQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUV0QztJQWlCRSxZQUFhLGFBQTZCO1FBZGxDLHVCQUFrQixHQUFHLEVBQUUsQ0FBQTtRQUV2QixnQkFBVyxHQUFHO1lBQ3BCLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsZUFBZSxFQUFFLElBQUk7WUFDckIsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFBO1FBR0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7SUFDcEMsQ0FBQztJQUVELElBQUksQ0FBRSxNQUFzQjtRQUMxQixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7UUFFbkIsMEJBQTBCO1FBQzFCLEtBQUssSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSwyQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUE7YUFDMUc7U0FDRjtRQUVELE1BQU0sR0FBRyxzQkFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXpELDBDQUEwQztRQUMxQyxLQUFLLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDekcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO2FBQzFDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUVMLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUVsQixpQkFBaUI7UUFDakIsS0FBSyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNyRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7YUFDN0M7U0FDRjtRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUE7UUFDNUIsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7SUFDbEMsQ0FBQztDQUNGO0FBdkRELDhCQXVEQyJ9