diff --git a/weed/s3api/s3api_object_handlers_put.go b/weed/s3api/s3api_object_handlers_put.go index 2ce91e07c..17fceb8d2 100644 --- a/weed/s3api/s3api_object_handlers_put.go +++ b/weed/s3api/s3api_object_handlers_put.go @@ -362,7 +362,7 @@ func (s3a *S3ApiServer) putToFiler(r *http.Request, uploadUrl string, dataReader return "", filerErrorToS3Error(ret.Error), "" } - stats_collect.RecordBucketActiveTime(bucket) + BucketTrafficReceived(ret.Size, r) // Return the SSE type determined by the unified handler return etag, s3err.ErrNone, sseResult.SSEType diff --git a/weed/s3api/stats.go b/weed/s3api/stats.go index 973871bde..14c0ad150 100644 --- a/weed/s3api/stats.go +++ b/weed/s3api/stats.go @@ -37,6 +37,12 @@ func TimeToFirstByte(action string, start time.Time, r *http.Request) { stats_collect.RecordBucketActiveTime(bucket) } +func BucketTrafficReceived(bytesReceived int64, r *http.Request) { + bucket, _ := s3_constants.GetBucketAndObject(r) + stats_collect.RecordBucketActiveTime(bucket) + stats_collect.S3BucketTrafficReceivedBytesCounter.WithLabelValues(bucket).Add(float64(bytesReceived)) +} + func BucketTrafficSent(bytesTransferred int64, r *http.Request) { bucket, _ := s3_constants.GetBucketAndObject(r) stats_collect.RecordBucketActiveTime(bucket)