Adding metrics for caching mechanisms (#4828)

Этот коммит содержится в:
Christopher Speller
2016-12-19 10:16:22 -05:00
коммит произвёл GitHub
родитель 6a5cdd5cdf
Коммит f96173528f
14 изменённых файлов: 113 добавлений и 22 удалений

Просмотреть файл

@@ -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
}