diff --git a/lib/middleware.js b/lib/middleware.js index f8b2bc7..ea423e7 100644 --- a/lib/middleware.js +++ b/lib/middleware.js @@ -1,9 +1,22 @@ const debug = require('debug')('jambonz:sbc-inbound'); +const Emitter = require('events'); + +class AuthOutcomeReporter extends Emitter { + constructor(stats) { + super(); + this.on('regHookOutcome', ({rtt, status}) => { + stats.histogram('app.hook.response_time', rtt, ['hook_type:auth', `status:${status}`]); + }); + } +} module.exports = function(srf, logger) { const {lookupSipGatewayBySignalingAddress, lookupAuthHook} = srf.locals.dbHelpers; - const authenticator = require('jambonz-http-authenticator')(lookupAuthHook, logger, {blacklistUnknownRealms: true}); const {stats} = srf.locals; + const authenticator = require('jambonz-http-authenticator')(lookupAuthHook, logger, { + blacklistUnknownRealms: true, + emitter: new AuthOutcomeReporter(stats) + }); function initLocals(req, res, next) { req.locals = req.locals || {};