diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-08-04 13:44:54 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-04 01:44:54 -0700 |
| commit | 22181dd01895d5c993979678ae13c601548c20f8 (patch) | |
| tree | b3477a5e8a9edb050d0f24dcd9cb3b195385798e /weed/server/filer_server_handlers.go | |
| parent | bd13a7968f9cc7620f19511e896c6e0099ff7f86 (diff) | |
| download | seaweedfs-22181dd01895d5c993979678ae13c601548c20f8.tar.xz seaweedfs-22181dd01895d5c993979678ae13c601548c20f8.zip | |
refactor FilerRequest metrics (#3402)
* refactor FilerRequest metrics
* avoid double count proxy
* defer to
Diffstat (limited to 'weed/server/filer_server_handlers.go')
| -rw-r--r-- | weed/server/filer_server_handlers.go | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/weed/server/filer_server_handlers.go b/weed/server/filer_server_handlers.go index 762e87e4b..4fb3c9609 100644 --- a/weed/server/filer_server_handlers.go +++ b/weed/server/filer_server_handlers.go @@ -14,13 +14,9 @@ import ( ) func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { - start := time.Now() - if r.Method == "OPTIONS" { - stats.FilerRequestCounter.WithLabelValues("options").Inc() OptionsHandler(w, r, false) - stats.FilerRequestHistogram.WithLabelValues("options").Observe(time.Since(start).Seconds()) return } @@ -36,12 +32,17 @@ func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { fileId = r.RequestURI[len("/?proxyChunkId="):] } if fileId != "" { - stats.FilerRequestCounter.WithLabelValues("proxy").Inc() + stats.FilerRequestCounter.WithLabelValues(stats.ChunkProxy).Inc() fs.proxyToVolumeServer(w, r, fileId) - stats.FilerRequestHistogram.WithLabelValues("proxy").Observe(time.Since(start).Seconds()) + stats.FilerRequestHistogram.WithLabelValues(stats.ChunkProxy).Observe(time.Since(start).Seconds()) return } + stats.FilerRequestCounter.WithLabelValues(r.Method).Inc() + defer func() { + stats.FilerRequestHistogram.WithLabelValues(r.Method).Observe(time.Since(start).Seconds()) + }() + w.Header().Set("Server", "SeaweedFS Filer "+util.VERSION) if r.Header.Get("Origin") != "" { w.Header().Set("Access-Control-Allow-Origin", "*") @@ -49,23 +50,16 @@ func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { } switch r.Method { case "GET": - stats.FilerRequestCounter.WithLabelValues("get").Inc() fs.GetOrHeadHandler(w, r) - stats.FilerRequestHistogram.WithLabelValues("get").Observe(time.Since(start).Seconds()) case "HEAD": - stats.FilerRequestCounter.WithLabelValues("head").Inc() fs.GetOrHeadHandler(w, r) - stats.FilerRequestHistogram.WithLabelValues("head").Observe(time.Since(start).Seconds()) case "DELETE": - stats.FilerRequestCounter.WithLabelValues("delete").Inc() if _, ok := r.URL.Query()["tagging"]; ok { fs.DeleteTaggingHandler(w, r) } else { fs.DeleteHandler(w, r) } - stats.FilerRequestHistogram.WithLabelValues("delete").Observe(time.Since(start).Seconds()) case "POST", "PUT": - // wait until in flight data is less than the limit contentLength := getContentLength(r) fs.inFlightDataLimitCond.L.Lock() @@ -81,17 +75,13 @@ func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { }() if r.Method == "PUT" { - stats.FilerRequestCounter.WithLabelValues("put").Inc() if _, ok := r.URL.Query()["tagging"]; ok { fs.PutTaggingHandler(w, r) } else { fs.PostHandler(w, r, contentLength) } - stats.FilerRequestHistogram.WithLabelValues("put").Observe(time.Since(start).Seconds()) } else { // method == "POST" - stats.FilerRequestCounter.WithLabelValues("post").Inc() fs.PostHandler(w, r, contentLength) - stats.FilerRequestHistogram.WithLabelValues("post").Observe(time.Since(start).Seconds()) } } } @@ -99,12 +89,13 @@ func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { func (fs *FilerServer) readonlyFilerHandler(w http.ResponseWriter, r *http.Request) { start := time.Now() - + stats.FilerRequestCounter.WithLabelValues(r.Method).Inc() + defer func() { + stats.FilerRequestHistogram.WithLabelValues(r.Method).Observe(time.Since(start).Seconds()) + }() // We handle OPTIONS first because it never should be authenticated if r.Method == "OPTIONS" { - stats.FilerRequestCounter.WithLabelValues("options").Inc() OptionsHandler(w, r, true) - stats.FilerRequestHistogram.WithLabelValues("options").Observe(time.Since(start).Seconds()) return } @@ -120,13 +111,9 @@ func (fs *FilerServer) readonlyFilerHandler(w http.ResponseWriter, r *http.Reque } switch r.Method { case "GET": - stats.FilerRequestCounter.WithLabelValues("get").Inc() fs.GetOrHeadHandler(w, r) - stats.FilerRequestHistogram.WithLabelValues("get").Observe(time.Since(start).Seconds()) case "HEAD": - stats.FilerRequestCounter.WithLabelValues("head").Inc() fs.GetOrHeadHandler(w, r) - stats.FilerRequestHistogram.WithLabelValues("head").Observe(time.Since(start).Seconds()) } } |
