diff --git a/orca/call_metrics.go b/orca/call_metrics.go index 798fe8cf1209..157dad49c657 100644 --- a/orca/call_metrics.go +++ b/orca/call_metrics.go @@ -91,7 +91,7 @@ func (rw *recorderWrapper) recorder() CallMetricsRecorder { func (rw *recorderWrapper) setTrailerMetadata(ctx context.Context) { var sm *ServerMetrics if rw.smp != nil { - sm = copyServerMetrics(rw.smp.ServerMetrics()) + sm = rw.smp.ServerMetrics() sm.merge(rw.r.ServerMetrics()) } else { sm = rw.r.ServerMetrics() diff --git a/orca/server_metrics.go b/orca/server_metrics.go index 62e4a435aaae..67d1fa9d7f2b 100644 --- a/orca/server_metrics.go +++ b/orca/server_metrics.go @@ -142,7 +142,7 @@ type ServerMetricsRecorder interface { } type serverMetricsRecorder struct { - state atomic.Pointer[ServerMetrics] // latest snapshot of the current metrics + state atomic.Pointer[ServerMetrics] // the current metrics } // NewServerMetricsRecorder returns an in-memory store for ServerMetrics and @@ -167,9 +167,9 @@ func newServerMetricsRecorder() *serverMetricsRecorder { return s } -// ServerMetrics returns a pointer to the latest snapshot of ServerMetrics. +// ServerMetrics returns a copy of the current ServerMetrics. func (s *serverMetricsRecorder) ServerMetrics() *ServerMetrics { - return s.state.Load() + return copyServerMetrics(s.state.Load()) } func copyMap(m map[string]float64) map[string]float64 {