diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2023-11-06 23:51:47 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-06 10:51:47 -0800 |
| commit | d693beea875a11172df69789f6eb95ccf4078156 (patch) | |
| tree | c330f8f2b38f8293c7b759996025cad48e267b3b | |
| parent | 8a6a7c63c05c24d9512bd32df18c2a14e45a6465 (diff) | |
| download | seaweedfs-d693beea875a11172df69789f6eb95ccf4078156.tar.xz seaweedfs-d693beea875a11172df69789f6eb95ccf4078156.zip | |
Replace an invalid method in a metric with an invalid one (#4987)
| -rw-r--r-- | weed/server/volume_server_handlers.go | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/weed/server/volume_server_handlers.go b/weed/server/volume_server_handlers.go index dcb92aa6b..9523eee56 100644 --- a/weed/server/volume_server_handlers.go +++ b/weed/server/volume_server_handlers.go @@ -36,13 +36,14 @@ func (vs *VolumeServer) privateStoreHandler(w http.ResponseWriter, r *http.Reque w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Credentials", "true") } - stats.VolumeServerRequestCounter.WithLabelValues(r.Method).Inc() start := time.Now() - defer func(start time.Time) { - stats.VolumeServerRequestHistogram.WithLabelValues(r.Method).Observe(time.Since(start).Seconds()) - }(start) + requestMethod := r.Method + defer func(start time.Time, method *string) { + stats.VolumeServerRequestCounter.WithLabelValues(*method).Inc() + stats.VolumeServerRequestHistogram.WithLabelValues(*method).Observe(time.Since(start).Seconds()) + }(start, &requestMethod) switch r.Method { - case "GET", "HEAD": + case http.MethodGet, http.MethodHead: stats.ReadRequest() vs.inFlightDownloadDataLimitCond.L.Lock() inFlightDownloadSize := atomic.LoadInt64(&vs.inFlightDownloadDataSize) @@ -61,10 +62,12 @@ func (vs *VolumeServer) privateStoreHandler(w http.ResponseWriter, r *http.Reque } vs.inFlightDownloadDataLimitCond.L.Unlock() vs.GetOrHeadHandler(w, r) - case "DELETE": + case http.MethodDelete: + stats.VolumeServerRequestCounter.WithLabelValues(r.Method).Inc() stats.DeleteRequest() vs.guard.WhiteList(vs.DeleteHandler)(w, r) - case "PUT", "POST": + case http.MethodPut, http.MethodPost: + stats.VolumeServerRequestCounter.WithLabelValues(r.Method).Inc() contentLength := getContentLength(r) // exclude the replication from the concurrentUploadLimitMB if r.URL.Query().Get("type") != "replicate" && vs.concurrentUploadLimit != 0 { @@ -98,10 +101,13 @@ func (vs *VolumeServer) privateStoreHandler(w http.ResponseWriter, r *http.Reque stats.WriteRequest() vs.guard.WhiteList(vs.PostHandler)(w, r) - case "OPTIONS": + case http.MethodOptions: stats.ReadRequest() w.Header().Add("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS") w.Header().Add("Access-Control-Allow-Headers", "*") + default: + requestMethod = "INVALID" + writeJsonError(w, r, http.StatusBadRequest, fmt.Errorf("unsupported method %s", r.Method)) } } @@ -124,7 +130,7 @@ func (vs *VolumeServer) publicReadOnlyHandler(w http.ResponseWriter, r *http.Req w.Header().Set("Access-Control-Allow-Credentials", "true") } switch r.Method { - case "GET", "HEAD": + case http.MethodGet, http.MethodHead: stats.ReadRequest() vs.inFlightDownloadDataLimitCond.L.Lock() inFlightDownloadSize := atomic.LoadInt64(&vs.inFlightDownloadDataSize) @@ -135,7 +141,7 @@ func (vs *VolumeServer) publicReadOnlyHandler(w http.ResponseWriter, r *http.Req } vs.inFlightDownloadDataLimitCond.L.Unlock() vs.GetOrHeadHandler(w, r) - case "OPTIONS": + case http.MethodOptions: stats.ReadRequest() w.Header().Add("Access-Control-Allow-Methods", "GET, OPTIONS") w.Header().Add("Access-Control-Allow-Headers", "*") |
