diff options
| author | zouyixiong <zouyixiong@gmail.com> | 2025-02-08 02:26:39 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-07 10:26:39 -0800 |
| commit | 8eab76c5db2526230c1f07f406583a6b063109ec (patch) | |
| tree | 61c0acc3dc38fc7a135c85bb561cf4e9cd9c9358 | |
| parent | 9ebc132ffc1a4c6a07864a8cec05cc380a8f00e0 (diff) | |
| download | seaweedfs-8eab76c5db2526230c1f07f406583a6b063109ec.tar.xz seaweedfs-8eab76c5db2526230c1f07f406583a6b063109ec.zip | |
fix: record and delete bucket metrics after inactive (#6523)
Co-authored-by: XYZ <XYZ>
| -rw-r--r-- | weed/s3api/s3api_object_handlers_delete.go | 5 | ||||
| -rw-r--r-- | weed/s3api/s3api_object_handlers_multipart.go | 5 | ||||
| -rw-r--r-- | weed/s3api/s3api_object_handlers_put.go | 2 | ||||
| -rw-r--r-- | weed/s3api/stats.go | 1 | ||||
| -rw-r--r-- | weed/stats/metrics.go | 4 |
5 files changed, 14 insertions, 3 deletions
diff --git a/weed/s3api/s3api_object_handlers_delete.go b/weed/s3api/s3api_object_handlers_delete.go index def589de8..db46d2707 100644 --- a/weed/s3api/s3api_object_handlers_delete.go +++ b/weed/s3api/s3api_object_handlers_delete.go @@ -3,12 +3,13 @@ package s3api import ( "encoding/xml" "fmt" - "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" "io" "net/http" "slices" "strings" + "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" + "github.com/seaweedfs/seaweedfs/weed/filer" "github.com/seaweedfs/seaweedfs/weed/s3api/s3err" @@ -57,6 +58,7 @@ func (s3a *S3ApiServer) DeleteObjectHandler(w http.ResponseWriter, r *http.Reque return } + stats_collect.RecordBucketActiveTime(bucket) stats_collect.S3DeletedObjectsCounter.WithLabelValues(bucket).Inc() w.WriteHeader(http.StatusNoContent) } @@ -176,6 +178,7 @@ func (s3a *S3ApiServer) DeleteMultipleObjectsHandler(w http.ResponseWriter, r *h deleteResp.DeletedObjects = deletedObjects } deleteResp.Errors = deleteErrors + stats_collect.RecordBucketActiveTime(bucket) stats_collect.S3DeletedObjectsCounter.WithLabelValues(bucket).Add(float64(len(deletedObjects))) writeSuccessResponseXML(w, r, deleteResp) diff --git a/weed/s3api/s3api_object_handlers_multipart.go b/weed/s3api/s3api_object_handlers_multipart.go index 707a98df5..5fe32fa86 100644 --- a/weed/s3api/s3api_object_handlers_multipart.go +++ b/weed/s3api/s3api_object_handlers_multipart.go @@ -10,14 +10,14 @@ import ( "strconv" "strings" + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/s3" "github.com/google/uuid" "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" "github.com/seaweedfs/seaweedfs/weed/s3api/s3err" weed_server "github.com/seaweedfs/seaweedfs/weed/server" stats_collect "github.com/seaweedfs/seaweedfs/weed/stats" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/s3" ) const ( @@ -91,6 +91,7 @@ func (s3a *S3ApiServer) CompleteMultipartUploadHandler(w http.ResponseWriter, r s3err.WriteErrorResponse(w, r, errCode) return } + stats_collect.RecordBucketActiveTime(bucket) stats_collect.S3UploadedObjectsCounter.WithLabelValues(bucket).Inc() writeSuccessResponseXML(w, r, response) diff --git a/weed/s3api/s3api_object_handlers_put.go b/weed/s3api/s3api_object_handlers_put.go index 9e3f5d9d9..cc21725ee 100644 --- a/weed/s3api/s3api_object_handlers_put.go +++ b/weed/s3api/s3api_object_handlers_put.go @@ -102,6 +102,7 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) setEtag(w, etag) } + stats_collect.RecordBucketActiveTime(bucket) stats_collect.S3UploadedObjectsCounter.WithLabelValues(bucket).Inc() writeSuccessResponseEmpty(w, r) @@ -163,6 +164,7 @@ func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader glog.Errorf("upload to filer error: %v", ret.Error) return "", filerErrorToS3Error(ret.Error) } + stats_collect.RecordBucketActiveTime(bucket) stats_collect.S3BucketTrafficReceivedBytesCounter.WithLabelValues(bucket).Add(float64(ret.Size)) return etag, s3err.ErrNone } diff --git a/weed/s3api/stats.go b/weed/s3api/stats.go index 64a02bed9..85c0ce65e 100644 --- a/weed/s3api/stats.go +++ b/weed/s3api/stats.go @@ -38,5 +38,6 @@ func TimeToFirstByte(action string, start time.Time, r *http.Request) { func BucketTrafficSent(bytesTransferred int64, r *http.Request) { bucket, _ := s3_constants.GetBucketAndObject(r) + stats_collect.RecordBucketActiveTime(bucket) stats_collect.S3BucketTrafficSentBytesCounter.WithLabelValues(bucket).Add(float64(bytesTransferred)) } diff --git a/weed/stats/metrics.go b/weed/stats/metrics.go index f741aee10..76e3afbdf 100644 --- a/weed/stats/metrics.go +++ b/weed/stats/metrics.go @@ -479,6 +479,10 @@ func bucketMetricTTLControl() { c := S3RequestCounter.DeletePartialMatch(labels) c += S3RequestHistogram.DeletePartialMatch(labels) c += S3TimeToFirstByteHistogram.DeletePartialMatch(labels) + c += S3BucketTrafficReceivedBytesCounter.DeletePartialMatch(labels) + c += S3BucketTrafficSentBytesCounter.DeletePartialMatch(labels) + c += S3DeletedObjectsCounter.DeletePartialMatch(labels) + c += S3UploadedObjectsCounter.DeletePartialMatch(labels) glog.V(0).Infof("delete inactive bucket metrics, %s: %d", bucket, c) } } |
