mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-04-05 20:52:50 +08:00
fix: record and delete bucket metrics after inactive (#6523)
Co-authored-by: XYZ <XYZ>
This commit is contained in:
parent
9ebc132ffc
commit
8eab76c5db
@ -3,12 +3,13 @@ package s3api
|
|||||||
import (
|
import (
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
|
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"slices"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
|
||||||
|
|
||||||
"github.com/seaweedfs/seaweedfs/weed/filer"
|
"github.com/seaweedfs/seaweedfs/weed/filer"
|
||||||
|
|
||||||
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
|
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
|
||||||
@ -57,6 +58,7 @@ func (s3a *S3ApiServer) DeleteObjectHandler(w http.ResponseWriter, r *http.Reque
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stats_collect.RecordBucketActiveTime(bucket)
|
||||||
stats_collect.S3DeletedObjectsCounter.WithLabelValues(bucket).Inc()
|
stats_collect.S3DeletedObjectsCounter.WithLabelValues(bucket).Inc()
|
||||||
w.WriteHeader(http.StatusNoContent)
|
w.WriteHeader(http.StatusNoContent)
|
||||||
}
|
}
|
||||||
@ -176,6 +178,7 @@ func (s3a *S3ApiServer) DeleteMultipleObjectsHandler(w http.ResponseWriter, r *h
|
|||||||
deleteResp.DeletedObjects = deletedObjects
|
deleteResp.DeletedObjects = deletedObjects
|
||||||
}
|
}
|
||||||
deleteResp.Errors = deleteErrors
|
deleteResp.Errors = deleteErrors
|
||||||
|
stats_collect.RecordBucketActiveTime(bucket)
|
||||||
stats_collect.S3DeletedObjectsCounter.WithLabelValues(bucket).Add(float64(len(deletedObjects)))
|
stats_collect.S3DeletedObjectsCounter.WithLabelValues(bucket).Add(float64(len(deletedObjects)))
|
||||||
|
|
||||||
writeSuccessResponseXML(w, r, deleteResp)
|
writeSuccessResponseXML(w, r, deleteResp)
|
||||||
|
@ -10,14 +10,14 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
|
"github.com/aws/aws-sdk-go/service/s3"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/glog"
|
"github.com/seaweedfs/seaweedfs/weed/glog"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
|
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
|
||||||
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
|
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
|
||||||
weed_server "github.com/seaweedfs/seaweedfs/weed/server"
|
weed_server "github.com/seaweedfs/seaweedfs/weed/server"
|
||||||
stats_collect "github.com/seaweedfs/seaweedfs/weed/stats"
|
stats_collect "github.com/seaweedfs/seaweedfs/weed/stats"
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
|
||||||
"github.com/aws/aws-sdk-go/service/s3"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -91,6 +91,7 @@ func (s3a *S3ApiServer) CompleteMultipartUploadHandler(w http.ResponseWriter, r
|
|||||||
s3err.WriteErrorResponse(w, r, errCode)
|
s3err.WriteErrorResponse(w, r, errCode)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
stats_collect.RecordBucketActiveTime(bucket)
|
||||||
stats_collect.S3UploadedObjectsCounter.WithLabelValues(bucket).Inc()
|
stats_collect.S3UploadedObjectsCounter.WithLabelValues(bucket).Inc()
|
||||||
|
|
||||||
writeSuccessResponseXML(w, r, response)
|
writeSuccessResponseXML(w, r, response)
|
||||||
|
@ -102,6 +102,7 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request)
|
|||||||
|
|
||||||
setEtag(w, etag)
|
setEtag(w, etag)
|
||||||
}
|
}
|
||||||
|
stats_collect.RecordBucketActiveTime(bucket)
|
||||||
stats_collect.S3UploadedObjectsCounter.WithLabelValues(bucket).Inc()
|
stats_collect.S3UploadedObjectsCounter.WithLabelValues(bucket).Inc()
|
||||||
|
|
||||||
writeSuccessResponseEmpty(w, r)
|
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)
|
glog.Errorf("upload to filer error: %v", ret.Error)
|
||||||
return "", filerErrorToS3Error(ret.Error)
|
return "", filerErrorToS3Error(ret.Error)
|
||||||
}
|
}
|
||||||
|
stats_collect.RecordBucketActiveTime(bucket)
|
||||||
stats_collect.S3BucketTrafficReceivedBytesCounter.WithLabelValues(bucket).Add(float64(ret.Size))
|
stats_collect.S3BucketTrafficReceivedBytesCounter.WithLabelValues(bucket).Add(float64(ret.Size))
|
||||||
return etag, s3err.ErrNone
|
return etag, s3err.ErrNone
|
||||||
}
|
}
|
||||||
|
@ -38,5 +38,6 @@ func TimeToFirstByte(action string, start time.Time, r *http.Request) {
|
|||||||
|
|
||||||
func BucketTrafficSent(bytesTransferred int64, r *http.Request) {
|
func BucketTrafficSent(bytesTransferred int64, r *http.Request) {
|
||||||
bucket, _ := s3_constants.GetBucketAndObject(r)
|
bucket, _ := s3_constants.GetBucketAndObject(r)
|
||||||
|
stats_collect.RecordBucketActiveTime(bucket)
|
||||||
stats_collect.S3BucketTrafficSentBytesCounter.WithLabelValues(bucket).Add(float64(bytesTransferred))
|
stats_collect.S3BucketTrafficSentBytesCounter.WithLabelValues(bucket).Add(float64(bytesTransferred))
|
||||||
}
|
}
|
||||||
|
@ -479,6 +479,10 @@ func bucketMetricTTLControl() {
|
|||||||
c := S3RequestCounter.DeletePartialMatch(labels)
|
c := S3RequestCounter.DeletePartialMatch(labels)
|
||||||
c += S3RequestHistogram.DeletePartialMatch(labels)
|
c += S3RequestHistogram.DeletePartialMatch(labels)
|
||||||
c += S3TimeToFirstByteHistogram.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)
|
glog.V(0).Infof("delete inactive bucket metrics, %s: %d", bucket, c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user