Current File : //lib/node_modules/pm2/node_modules/@pm2/io/build/main/src/metrics/deepMetricsTracer.js |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class DeepMetricsTracer {
constructor(metricFeature, tracer, eventName) {
this.allMetrics = {
http: {
histogram: {
name: 'HTTP: Response time',
type: 'internal/http/inbound/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'HTTP: Throughput',
samples: 60,
type: 'internal/http/inbound/throughput',
unit: 'req/min'
}
},
https: {
histogram: {
name: 'HTTPS: Response time',
type: 'internal/https/inbound/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'HTTPS: Throughput',
samples: 60,
type: 'internal/https/inbound/throughput',
unit: 'req/min'
}
},
'http-outbound': {
histogram: {
name: 'HTTP out: Response time',
type: 'internal/http/outbound/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'HTTP out: Throughput',
samples: 60,
type: 'internal/http/outbound/throughput',
unit: 'req/min'
}
},
'https-outbound': {
histogram: {
name: 'HTTPS out: Response time',
type: 'internal/https/outbound/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'HTTPS out: Throughput',
samples: 60,
type: 'internal/https/outbound/throughput',
unit: 'req/min'
}
},
mysql: {
histogram: {
name: 'MYSQL: Response time',
type: 'internal/mysql/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'MYSQL: Throughput',
samples: 60,
type: 'internal/mysql/throughput',
unit: 'req/min'
}
},
mongo: {
histogram: {
name: 'Mongo: Response time',
type: 'internal/mongodb/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'Mongo: Throughput',
samples: 60,
type: 'internal/mongodb/throughput',
unit: 'req/min'
}
},
mqtt: {
histogram: {
name: 'MQTT: Response time',
type: 'internal/mqtt/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'MQTT: Throughput',
samples: 60,
type: 'internal/mqtt/throughput',
unit: 'req/min'
}
},
socketio: {
histogram: {
name: 'WS: Response time',
type: 'internal/socketio/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'WS: Throughput',
samples: 60,
type: 'internal/socketio/throughput',
unit: 'req/min'
}
},
redis: {
histogram: {
name: 'Redis: Response time',
type: 'internal/redis/latency',
measurement: 'mean',
unit: 'ms'
},
meter: {
name: 'Redis: Throughput',
samples: 60,
type: 'internal/redis/throughput',
unit: 'req/min'
}
}
};
this.metricFeature = metricFeature;
this.tracer = tracer;
this.eventName = eventName;
this.listenerFunc = this.listener.bind(this);
}
init() {
this.tracer.on(this.eventName, this.listenerFunc);
}
destroy() {
this.tracer.removeListener(this.eventName, this.listenerFunc);
}
listener(data) {
if (!this.latency) {
this.latency = this.metricFeature.histogram(this.allMetrics[this.eventName].histogram);
}
if (!this.throughput) {
this.throughput = this.metricFeature.meter(this.allMetrics[this.eventName].meter);
}
data = JSON.parse(data);
this.throughput.mark();
if (data.duration) {
this.latency.update(data.duration);
}
}
}
exports.default = DeepMetricsTracer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcE1ldHJpY3NUcmFjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWV0cmljcy9kZWVwTWV0cmljc1RyYWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBO0lBeUlFLFlBQWEsYUFBNkIsRUFBRSxNQUFNLEVBQUUsU0FBUztRQWpJckQsZUFBVSxHQUFHO1lBQ25CLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFLCtCQUErQjtvQkFDckMsV0FBVyxFQUFFLE1BQU07b0JBQ25CLElBQUksRUFBRSxJQUFJO2lCQUNYO2dCQUNELEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsa0JBQWtCO29CQUN4QixPQUFPLEVBQUUsRUFBRTtvQkFDWCxJQUFJLEVBQUUsa0NBQWtDO29CQUN4QyxJQUFJLEVBQUUsU0FBUztpQkFDaEI7YUFDRjtZQUNELEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLHNCQUFzQjtvQkFDNUIsSUFBSSxFQUFFLGdDQUFnQztvQkFDdEMsV0FBVyxFQUFFLE1BQU07b0JBQ25CLElBQUksRUFBRSxJQUFJO2lCQUNYO2dCQUNELEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsbUJBQW1CO29CQUN6QixPQUFPLEVBQUUsRUFBRTtvQkFDWCxJQUFJLEVBQUUsbUNBQW1DO29CQUN6QyxJQUFJLEVBQUUsU0FBUztpQkFDaEI7YUFDRjtZQUNELGVBQWUsRUFBRTtnQkFDZixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLHlCQUF5QjtvQkFDL0IsSUFBSSxFQUFFLGdDQUFnQztvQkFDdEMsV0FBVyxFQUFFLE1BQU07b0JBQ25CLElBQUksRUFBRSxJQUFJO2lCQUNYO2dCQUNELEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixPQUFPLEVBQUUsRUFBRTtvQkFDWCxJQUFJLEVBQUUs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