From 43ee0e4baf2bac1ee72a55d4f9568e2d725e302a Mon Sep 17 00:00:00 2001 From: Tim Raymond Date: Wed, 3 May 2017 16:43:37 -0400 Subject: [PATCH] Add logging of response times This makes monitoring Chronograf :+1: --- server/logger.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/server/logger.go b/server/logger.go index eacacd5379..fb7172c406 100644 --- a/server/logger.go +++ b/server/logger.go @@ -2,6 +2,7 @@ package server import ( "net/http" + "time" "github.com/influxdata/chronograf" ) @@ -9,6 +10,7 @@ import ( // Logger is middleware that logs the request func Logger(logger chronograf.Logger, next http.Handler) http.Handler { fn := func(w http.ResponseWriter, r *http.Request) { + now := time.Now() logger. WithField("component", "server"). WithField("remote_addr", r.RemoteAddr). @@ -16,6 +18,14 @@ func Logger(logger chronograf.Logger, next http.Handler) http.Handler { WithField("url", r.URL). Info("Request") next.ServeHTTP(w, r) + later := time.Now() + elapsed := later.Sub(now) + + logger. + WithField("component", "server"). + WithField("remote_addr", r.RemoteAddr). + WithField("response_time", elapsed.String()). + Info("Success") } return http.HandlerFunc(fn) }