added statsd metrics timing for each request
This commit is contained in:
@@ -11,6 +11,9 @@ module.exports =
|
||||
inc : (key, sampleRate = 1)->
|
||||
statsd.increment buildKey(key), sampleRate
|
||||
|
||||
timing: (key, timeSpan, sampleRate)->
|
||||
statsd.timing(key, timeSpan, sampleRate)
|
||||
|
||||
Timer : class
|
||||
constructor :(key, sampleRate = 1)->
|
||||
this.start = new Date()
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
settings = require("settings-sharelatex")
|
||||
logger = require "logger-sharelatex"
|
||||
os = require("os")
|
||||
metrics = require("../Metrics")
|
||||
|
||||
module.exports.logger = (req, res, next) ->
|
||||
startTime = new Date()
|
||||
end = res.end
|
||||
res.end = () ->
|
||||
end.apply(this, arguments)
|
||||
responseTime = new Date() - startTime
|
||||
routePath = req.route.path.replace(/\//g, '-').slice(1)
|
||||
|
||||
processName = if settings.internal.web.name? then "web-#{settings.internal.web.name}" else "web"
|
||||
key = "#{os.hostname()}.#{processName}.#{routePath}".toLowerCase().trim()
|
||||
metrics.timing(key, responseTime, 0.2)
|
||||
logger.log
|
||||
req:
|
||||
url: req.originalUrl || req.url
|
||||
@@ -15,7 +24,7 @@ module.exports.logger = (req, res, next) ->
|
||||
"content-length": req.headers["content-length"]
|
||||
res:
|
||||
"content-length": res._headers?["content-length"]
|
||||
"response-time": new Date() - startTime
|
||||
"response-time": responseTime
|
||||
"http request"
|
||||
next()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user