|
|
|
@ -3,9 +3,9 @@
|
|
|
|
|
const EVENT_VERSION = '1';
|
|
|
|
|
const MAX_LENGTH = 100;
|
|
|
|
|
|
|
|
|
|
module.exports = function pubSubMetrics ({ enabled, metricsBackend, logger, tags }) {
|
|
|
|
|
module.exports = function metrics ({ enabled, metricsBackend, logger, tags }) {
|
|
|
|
|
if (!enabled) {
|
|
|
|
|
return function pubSubMetricsDisabledMiddleware (req, res, next) {
|
|
|
|
|
return function metricsDisabledMiddleware (req, res, next) {
|
|
|
|
|
next();
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
@ -14,13 +14,13 @@ module.exports = function pubSubMetrics ({ enabled, metricsBackend, logger, tags
|
|
|
|
|
throw new Error('Missing required "event" parameter to report metrics');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return function pubSubMetricsMiddleware (req, res, next) {
|
|
|
|
|
return function metricsMiddleware (req, res, next) {
|
|
|
|
|
res.on('finish', () => {
|
|
|
|
|
const { event, attributes } = getEventData(req, res, tags);
|
|
|
|
|
|
|
|
|
|
metricsBackend.send(event, attributes)
|
|
|
|
|
.then(() => logger.debug(`PubSubTracker: event '${event}' published succesfully`))
|
|
|
|
|
.catch((error) => logger.error(`ERROR: pubsub middleware failed to publish event '${event}': ${error.message}`));
|
|
|
|
|
.then(() => logger.debug(`Event "${event}" published succesfully`))
|
|
|
|
|
.catch((error) => logger.error(`Failed to publish event "${event}": ${error.message}`));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return next();
|