diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2024-03-14 20:19:09 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-14 08:19:09 -0700 |
| commit | 54ee73287d0389459dbeb4b6cbb37389c81afed4 (patch) | |
| tree | 3d14b15511f2762bfdaaba6ebe7cd34a44067979 | |
| parent | 604091a4807a56b7a56caeeb316c0e5a7642e57d (diff) | |
| download | seaweedfs-54ee73287d0389459dbeb4b6cbb37389c81afed4.tar.xz seaweedfs-54ee73287d0389459dbeb4b6cbb37389c81afed4.zip | |
[filer] replace an invalid methods in a metric with an invalid one (#5378)
fix: replace an invalid methods in a metric with an invalid one for filer
| -rw-r--r-- | weed/server/filer_server_handlers.go | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/weed/server/filer_server_handlers.go b/weed/server/filer_server_handlers.go index b5e070fb2..33f63f65a 100644 --- a/weed/server/filer_server_handlers.go +++ b/weed/server/filer_server_handlers.go @@ -63,11 +63,11 @@ func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { stats.FilerRequestHistogram.WithLabelValues(stats.ChunkProxy).Observe(time.Since(start).Seconds()) return } - - defer func() { - stats.FilerRequestCounter.WithLabelValues(r.Method, strconv.Itoa(statusRecorder.Status)).Inc() - stats.FilerRequestHistogram.WithLabelValues(r.Method).Observe(time.Since(start).Seconds()) - }() + requestMethod := r.Method + defer func(method *string) { + stats.FilerRequestCounter.WithLabelValues(*method, strconv.Itoa(statusRecorder.Status)).Inc() + stats.FilerRequestHistogram.WithLabelValues(*method).Observe(time.Since(start).Seconds()) + }(&requestMethod) isReadHttpCall := r.Method == http.MethodGet || r.Method == http.MethodHead if !fs.maybeCheckJwtAuthorization(r, !isReadHttpCall) { @@ -113,6 +113,7 @@ func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { fs.PostHandler(w, r, contentLength) } default: + requestMethod = "INVALID" w.WriteHeader(http.StatusMethodNotAllowed) } } @@ -146,11 +147,11 @@ func (fs *FilerServer) readonlyFilerHandler(w http.ResponseWriter, r *http.Reque w.Header().Set("Access-Control-Allow-Headers", "OPTIONS, GET, HEAD") w.Header().Set("Access-Control-Allow-Credentials", "true") } - - defer func() { - stats.FilerRequestCounter.WithLabelValues(r.Method, strconv.Itoa(statusRecorder.Status)).Inc() - stats.FilerRequestHistogram.WithLabelValues(r.Method).Observe(time.Since(start).Seconds()) - }() + requestMethod := r.Method + defer func(method *string) { + stats.FilerRequestCounter.WithLabelValues(*method, strconv.Itoa(statusRecorder.Status)).Inc() + stats.FilerRequestHistogram.WithLabelValues(*method).Observe(time.Since(start).Seconds()) + }(&requestMethod) // We handle OPTIONS first because it never should be authenticated if r.Method == http.MethodOptions { OptionsHandler(w, r, true) @@ -168,6 +169,7 @@ func (fs *FilerServer) readonlyFilerHandler(w http.ResponseWriter, r *http.Reque case http.MethodGet, http.MethodHead: fs.GetOrHeadHandler(w, r) default: + requestMethod = "INVALID" w.WriteHeader(http.StatusMethodNotAllowed) } } |
