diff --git a/weed/s3api/s3api_circuit_breaker.go b/weed/s3api/s3api_circuit_breaker.go index f04b9541a..e19caf91b 100644 --- a/weed/s3api/s3api_circuit_breaker.go +++ b/weed/s3api/s3api_circuit_breaker.go @@ -123,18 +123,18 @@ func (cb *CircuitBreaker) Limit(f func(w http.ResponseWriter, r *http.Request), cb.s3a.inFlightDataLimitCond.L.Unlock() // Increment counters - atomic.AddInt64(&cb.s3a.inFlightUploads, 1) - atomic.AddInt64(&cb.s3a.inFlightDataSize, contentLength) + newUploads := atomic.AddInt64(&cb.s3a.inFlightUploads, 1) + newSize := atomic.AddInt64(&cb.s3a.inFlightDataSize, contentLength) // Update metrics - stats.S3InFlightUploadCountGauge.Set(float64(atomic.LoadInt64(&cb.s3a.inFlightUploads))) - stats.S3InFlightUploadBytesGauge.Set(float64(atomic.LoadInt64(&cb.s3a.inFlightDataSize))) + stats.S3InFlightUploadCountGauge.Set(float64(newUploads)) + stats.S3InFlightUploadBytesGauge.Set(float64(newSize)) defer func() { // Decrement counters - atomic.AddInt64(&cb.s3a.inFlightUploads, -1) - atomic.AddInt64(&cb.s3a.inFlightDataSize, -contentLength) + newUploads := atomic.AddInt64(&cb.s3a.inFlightUploads, -1) + newSize := atomic.AddInt64(&cb.s3a.inFlightDataSize, -contentLength) // Update metrics - stats.S3InFlightUploadCountGauge.Set(float64(atomic.LoadInt64(&cb.s3a.inFlightUploads))) - stats.S3InFlightUploadBytesGauge.Set(float64(atomic.LoadInt64(&cb.s3a.inFlightDataSize))) + stats.S3InFlightUploadCountGauge.Set(float64(newUploads)) + stats.S3InFlightUploadBytesGauge.Set(float64(newSize)) cb.s3a.inFlightDataLimitCond.Signal() }() } diff --git a/weed/server/filer_server_handlers.go b/weed/server/filer_server_handlers.go index 7e2ef64d2..f068579ec 100644 --- a/weed/server/filer_server_handlers.go +++ b/weed/server/filer_server_handlers.go @@ -112,18 +112,18 @@ func (fs *FilerServer) filerHandler(w http.ResponseWriter, r *http.Request) { fs.inFlightDataLimitCond.L.Unlock() // Increment counters - atomic.AddInt64(&fs.inFlightUploads, 1) - atomic.AddInt64(&fs.inFlightDataSize, contentLength) + newUploads := atomic.AddInt64(&fs.inFlightUploads, 1) + newSize := atomic.AddInt64(&fs.inFlightDataSize, contentLength) // Update metrics - stats.FilerInFlightUploadCountGauge.Set(float64(atomic.LoadInt64(&fs.inFlightUploads))) - stats.FilerInFlightUploadBytesGauge.Set(float64(atomic.LoadInt64(&fs.inFlightDataSize))) + stats.FilerInFlightUploadCountGauge.Set(float64(newUploads)) + stats.FilerInFlightUploadBytesGauge.Set(float64(newSize)) defer func() { // Decrement counters - atomic.AddInt64(&fs.inFlightUploads, -1) - atomic.AddInt64(&fs.inFlightDataSize, -contentLength) + newUploads := atomic.AddInt64(&fs.inFlightUploads, -1) + newSize := atomic.AddInt64(&fs.inFlightDataSize, -contentLength) // Update metrics - stats.FilerInFlightUploadCountGauge.Set(float64(atomic.LoadInt64(&fs.inFlightUploads))) - stats.FilerInFlightUploadBytesGauge.Set(float64(atomic.LoadInt64(&fs.inFlightDataSize))) + stats.FilerInFlightUploadCountGauge.Set(float64(newUploads)) + stats.FilerInFlightUploadBytesGauge.Set(float64(newSize)) fs.inFlightDataLimitCond.Signal() }()