metallic-metrics
Version:
StatsD's client for CARTO services
72 lines (45 loc) • 6.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _metallicInterfaces = require('metallic-interfaces');
var _errorListener = require('./error-listener');
var _errorListener2 = _interopRequireDefault(_errorListener);
var _metricsErrorListenerMixin = require('./metrics-error-listener-mixin');
var _metricsErrorListenerMixin2 = _interopRequireDefault(_metricsErrorListenerMixin);
var _metrics = require('./metrics');
var _metrics2 = _interopRequireDefault(_metrics);
var _nodeStatsd = require('node-statsd');
var _nodeStatsd2 = _interopRequireDefault(_nodeStatsd);
var _defaults = require('./defaults');
var _defaults2 = _interopRequireDefault(_defaults);
var _metricsLoggerMixin = require('./metrics-logger-mixin');
var _metricsLoggerMixin2 = _interopRequireDefault(_metricsLoggerMixin);
var _metricsGaugeMemoryMixin = require('./metrics-gauge-memory-mixin');
var _metricsGaugeMemoryMixin2 = _interopRequireDefault(_metricsGaugeMemoryMixin);
var _metricsGaugeCpuMixin = require('./metrics-gauge-cpu-mixin');
var _metricsGaugeCpuMixin2 = _interopRequireDefault(_metricsGaugeCpuMixin);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class MetricsFactory extends _metallicInterfaces.FactoryInterface {
static create({ logger, options } = {}) {
const opts = _extends({}, _defaults2.default, options);
if (!opts.enabled) {
return;
}
const { host, port, prefix, suffix, globalize, cacheDns, mock, globalTags, interval } = opts;
const statsd = new _nodeStatsd2.default(host, port, prefix, suffix, globalize, cacheDns, mock, globalTags);
const errorListener = new _errorListener2.default(statsd.socket);
const GaugedMetrics = interval > 0 ? _metricsGaugeMemoryMixin2.default.mix(_metricsGaugeCpuMixin2.default.mix(_metrics2.default)) : _metrics2.default;
const LoggedGaugedMetrics = logger ? _metricsLoggerMixin2.default.mix(_metricsErrorListenerMixin2.default.mix(GaugedMetrics)) : _metrics2.default;
const metrics = new LoggedGaugedMetrics({
provider: statsd,
errorListener,
interval,
logger
});
return metrics;
}
}
exports.default = MetricsFactory;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRyaWNzLWZhY3RvcnkuanMiXSwibmFtZXMiOlsiTWV0cmljc0ZhY3RvcnkiLCJjcmVhdGUiLCJsb2dnZXIiLCJvcHRpb25zIiwib3B0cyIsImVuYWJsZWQiLCJob3N0IiwicG9ydCIsInByZWZpeCIsInN1ZmZpeCIsImdsb2JhbGl6ZSIsImNhY2hlRG5zIiwibW9jayIsImdsb2JhbFRhZ3MiLCJpbnRlcnZhbCIsInN0YXRzZCIsImVycm9yTGlzdGVuZXIiLCJzb2NrZXQiLCJHYXVnZWRNZXRyaWNzIiwibWl4IiwiTG9nZ2VkR2F1Z2VkTWV0cmljcyIsIm1ldHJpY3MiLCJwcm92aWRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFZSxNQUFNQSxjQUFOLDhDQUE4QztBQUMzRCxTQUFPQyxNQUFQLENBQWUsRUFBRUMsTUFBRixFQUFVQyxPQUFWLEtBQXNCLEVBQXJDLEVBQXlDO0FBQ3ZDLFVBQU1DLHdDQUF5QkQsT0FBekIsQ0FBTjs7QUFFQSxRQUFJLENBQUNDLEtBQUtDLE9BQVYsRUFBbUI7QUFDakI7QUFDRDs7QUFFRCxVQUFNLEVBQUVDLElBQUYsRUFBUUMsSUFBUixFQUFjQyxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QkMsU0FBOUIsRUFBeUNDLFFBQXpDLEVBQW1EQyxJQUFuRCxFQUF5REMsVUFBekQsRUFBcUVDLFFBQXJFLEtBQWtGVixJQUF4RjtBQUNBLFVBQU1XLFNBQVMseUJBQVdULElBQVgsRUFBaUJDLElBQWpCLEVBQXVCQyxNQUF2QixFQUErQkMsTUFBL0IsRUFBdUNDLFNBQXZDLEVBQWtEQyxRQUFsRCxFQUE0REMsSUFBNUQsRUFBa0VDLFVBQWxFLENBQWY7QUFDQSxVQUFNRyxnQkFBZ0IsNEJBQWtCRCxPQUFPRSxNQUF6QixDQUF0Qjs7QUFFQSxVQUFNQyxnQkFBZ0JKLFdBQVcsQ0FBWCxHQUNsQixrQ0FBd0JLLEdBQXhCLENBQ0EsK0JBQXFCQSxHQUFyQixtQkFEQSxDQURrQixvQkFBdEI7O0FBUUEsVUFBTUMsc0JBQXNCbEIsU0FDeEIsNkJBQW1CaUIsR0FBbkIsQ0FDQSxvQ0FBMEJBLEdBQTFCLENBQ0VELGFBREYsQ0FEQSxDQUR3QixvQkFBNUI7O0FBUUEsVUFBTUcsVUFBVSxJQUFJRCxtQkFBSixDQUF3QjtBQUN0Q0UsZ0JBQVVQLE1BRDRCO0FBRXRDQyxtQkFGc0M7QUFHdENGLGNBSHNDO0FBSXRDWjtBQUpzQyxLQUF4QixDQUFoQjs7QUFPQSxXQUFPbUIsT0FBUDtBQUNEO0FBcEMwRDtrQkFBeENyQixjIiwiZmlsZSI6Im1ldHJpY3MtZmFjdG9yeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhY3RvcnlJbnRlcmZhY2UgfSBmcm9tICdtZXRhbGxpYy1pbnRlcmZhY2VzJ1xuaW1wb3J0IEVycm9yTGlzdGVuZXIgZnJvbSAnLi9lcnJvci1saXN0ZW5lcidcbmltcG9ydCBNZXRyaWNzRXJyb3JMaXN0ZW5lck1peGluIGZyb20gJy4vbWV0cmljcy1lcnJvci1saXN0ZW5lci1taXhpbidcbmltcG9ydCBNZXRyaWNzIGZyb20gJy4vbWV0cmljcydcbmltcG9ydCBTdGF0c0QgZnJvbSAnbm9kZS1zdGF0c2QnXG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi9kZWZhdWx0cydcbmltcG9ydCBNZXRyaWNzTG9nZ2VyTWl4aW4gZnJvbSAnLi9tZXRyaWNzLWxvZ2dlci1taXhpbidcbmltcG9ydCBNZXRyaWNzR2F1Z2VNZW1vcnlNaXhpbiBmcm9tICcuL21ldHJpY3MtZ2F1Z2UtbWVtb3J5LW1peGluJ1xuaW1wb3J0IE1ldHJpY3NHYXVnZUNQVU1peGluIGZyb20gJy4vbWV0cmljcy1nYXVnZS1jcHUtbWl4aW4nXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldHJpY3NGYWN0b3J5IGV4dGVuZHMgRmFjdG9yeUludGVyZmFjZSB7XG4gIHN0YXRpYyBjcmVhdGUgKHsgbG9nZ2VyLCBvcHRpb25zIH0gPSB7fSkge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5vcHRpb25zIH1cblxuICAgIGlmICghb3B0cy5lbmFibGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB7IGhvc3QsIHBvcnQsIHByZWZpeCwgc3VmZml4LCBnbG9iYWxpemUsIGNhY2hlRG5zLCBtb2NrLCBnbG9iYWxUYWdzLCBpbnRlcnZhbCB9ID0gb3B0c1xuICAgIGNvbnN0IHN0YXRzZCA9IG5ldyBTdGF0c0QoaG9zdCwgcG9ydCwgcHJlZml4LCBzdWZmaXgsIGdsb2JhbGl6ZSwgY2FjaGVEbnMsIG1vY2ssIGdsb2JhbFRhZ3MpXG4gICAgY29uc3QgZXJyb3JMaXN0ZW5lciA9IG5ldyBFcnJvckxpc3RlbmVyKHN0YXRzZC5zb2NrZXQpXG5cbiAgICBjb25zdCBHYXVnZWRNZXRyaWNzID0gaW50ZXJ2YWwgPiAwXG4gICAgICA/IE1ldHJpY3NHYXVnZU1lbW9yeU1peGluLm1peChcbiAgICAgICAgTWV0cmljc0dhdWdlQ1BVTWl4aW4ubWl4KFxuICAgICAgICAgIE1ldHJpY3NcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgOiBNZXRyaWNzXG5cbiAgICBjb25zdCBMb2dnZWRHYXVnZWRNZXRyaWNzID0gbG9nZ2VyXG4gICAgICA/IE1ldHJpY3NMb2dnZXJNaXhpbi5taXgoXG4gICAgICAgIE1ldHJpY3NFcnJvckxpc3RlbmVyTWl4aW4ubWl4KFxuICAgICAgICAgIEdhdWdlZE1ldHJpY3NcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgOiBNZXRyaWNzXG5cbiAgICBjb25zdCBtZXRyaWNzID0gbmV3IExvZ2dlZEdhdWdlZE1ldHJpY3Moe1xuICAgICAgcHJvdmlkZXI6IHN0YXRzZCxcbiAgICAgIGVycm9yTGlzdGVuZXIsXG4gICAgICBpbnRlcnZhbCxcbiAgICAgIGxvZ2dlclxuICAgIH0pXG5cbiAgICByZXR1cm4gbWV0cmljc1xuICB9XG59XG4iXX0=