diff options
Diffstat (limited to 'api/api.go')
-rw-r--r-- | api/api.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/api/api.go b/api/api.go index 926edfe34..122a6b933 100644 --- a/api/api.go +++ b/api/api.go @@ -7,6 +7,7 @@ import ( "net/http" "github.com/gorilla/mux" + "github.com/mattermost/platform/einterfaces" "github.com/mattermost/platform/model" "github.com/mattermost/platform/utils" @@ -114,15 +115,23 @@ func InitApi() { InitEmailBatching() } -func HandleEtag(etag string, w http.ResponseWriter, r *http.Request) bool { +func HandleEtag(etag string, routeName string, w http.ResponseWriter, r *http.Request) bool { + metrics := einterfaces.GetMetricsInterface() if et := r.Header.Get(model.HEADER_ETAG_CLIENT); len(etag) > 0 { if et == etag { w.Header().Set(model.HEADER_ETAG_SERVER, etag) w.WriteHeader(http.StatusNotModified) + if metrics != nil { + metrics.IncrementEtagHitCounter(routeName) + } return true } } + if metrics != nil { + metrics.IncrementEtagMissCounter(routeName) + } + return false } |