UNPKG

dl

Version:

DreamLab Libs

81 lines (68 loc) 2.37 kB
var logger = require('../logger'); /* * Queue service event logging * * <QUEUE> * + <servicename> * + <appname> * + <credential_id> * + connection * + connected [counter] * + disconnected [counter] * + message * + delay [miliseconds] * + ack.delay [miliseconds] * + reject.delay [miliseconds] * + postpone.delay [miliseconds] * + postpone.rounds [number] * + postpone.error [counter] * + publish * + confirm.delay [miliseconds] * + reject.delay [miliseconds] * + size.body [bytes] * + size.total [bytes] */ //TODO: this class will be probably to remove when all metrics are migrated to MaaS var QueueLogger = function () { this._config = { connection: true, message: false, publish: false }; this._monitoringConfig = { key: null, prefix: null }; this._logger = logger.get('dl.queue.QueueLogger'); this._logger.setParent(this._logger); // we do not want here to inherit from application DEFAULT logger }; QueueLogger.prototype.setConfig = function (config, monitoringConfig) { console.log('QueueLogger/setConfig', config, monitoringConfig); this._config = config; this._monitoringConfig = monitoringConfig; if (this._monitoringConfig.key && this._monitoringConfig.prefix) { this._logger.configure({ metricPrefix: this._monitoringConfig.prefix, reporters: { MAAS: { key: this._monitoringConfig.key } } }); } }; QueueLogger.prototype.log = function (area, path, value, msgId) { if (value || value === 0) { this._logger.gauge([area, path], value); } else { this._logger.counter([area, path]); } if (this._config[area]) { if (value === undefined) { value = true; } var msgIdStr = msgId ? 'messageId=' + msgId : ''; console.info('QueueLogger: %s value=%s %s', [area, path].join('.'), value, msgIdStr); } }; exports.QueueLogger = QueueLogger;