|
|
|
@ -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() |
|
|
|
}() |
|
|
|
} |
|
|
|
|