diff --git a/proxy/metrics_monitor.go b/proxy/metrics_monitor.go index 94d2e9bd..8a671030 100644 --- a/proxy/metrics_monitor.go +++ b/proxy/metrics_monitor.go @@ -578,15 +578,11 @@ func newBodyCopier(w gin.ResponseWriter) *responseBodyCopier { ResponseWriter: w, body: bodyBuffer, tee: io.MultiWriter(w, bodyBuffer), + start: time.Now(), } } func (w *responseBodyCopier) Write(b []byte) (int, error) { - if w.start.IsZero() { - w.start = time.Now() - } - - // Single write operation that writes to both the response and buffer return w.tee.Write(b) } diff --git a/proxy/metrics_monitor_test.go b/proxy/metrics_monitor_test.go index 9fb737a5..92a59d7e 100644 --- a/proxy/metrics_monitor_test.go +++ b/proxy/metrics_monitor_test.go @@ -490,15 +490,11 @@ func TestMetricsMonitor_ResponseBodyCopier(t *testing.T) { assert.Equal(t, string(testData), rec.Body.String()) }) - t.Run("sets start time on first write", func(t *testing.T) { + t.Run("sets start time on creation", func(t *testing.T) { rec := httptest.NewRecorder() ginCtx, _ := gin.CreateTestContext(rec) copier := newBodyCopier(ginCtx.Writer) - assert.True(t, copier.StartTime().IsZero()) - - copier.Write([]byte("test")) - assert.False(t, copier.StartTime().IsZero()) })