aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzouyixiong <zouyixiong@gmail.com>2025-02-08 02:26:39 +0800
committerGitHub <noreply@github.com>2025-02-07 10:26:39 -0800
commit8eab76c5db2526230c1f07f406583a6b063109ec (patch)
tree61c0acc3dc38fc7a135c85bb561cf4e9cd9c9358
parent9ebc132ffc1a4c6a07864a8cec05cc380a8f00e0 (diff)
downloadseaweedfs-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.go5
-rw-r--r--weed/s3api/s3api_object_handlers_multipart.go5
-rw-r--r--weed/s3api/s3api_object_handlers_put.go2
-rw-r--r--weed/s3api/stats.go1
-rw-r--r--weed/stats/metrics.go4
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)
}
}