diff --git a/internal/newtelemetry/globalclient.go b/internal/newtelemetry/globalclient.go index 5dd16f01b2..e996a7d8b7 100644 --- a/internal/newtelemetry/globalclient.go +++ b/internal/newtelemetry/globalclient.go @@ -21,7 +21,7 @@ var ( globalClientRecorder = internal.NewRecorder[Client]() // metricsHandleHotPointers contains all the metricsHotPointer, used to replay actions done before the actual MetricHandle is set - metricsHandleHotPointers []metricsHotPointer + metricsHandleHotPointers []*metricsHotPointer metricsHandleHotPointersMu sync.Mutex ) @@ -62,8 +62,7 @@ func SwapClient(client Client) { metricsHandleHotPointersMu.Lock() defer metricsHandleHotPointersMu.Unlock() for i := range metricsHandleHotPointers { - hotPointer := &metricsHandleHotPointers[i] - hotPointer.swap(hotPointer.maker(client)) + metricsHandleHotPointers[i].swap(metricsHandleHotPointers[i].maker(client)) } } } @@ -236,8 +235,9 @@ func newMetricsHotPointer(maker func(client Client) MetricHandle) *metricsHotPoi metricsHandleHotPointersMu.Lock() defer metricsHandleHotPointersMu.Unlock() - metricsHandleHotPointers = append(metricsHandleHotPointers, metricsHotPointer{maker: maker}) - return &metricsHandleHotPointers[len(metricsHandleHotPointers)-1] + hotPtr := &metricsHotPointer{maker: maker} + metricsHandleHotPointers = append(metricsHandleHotPointers, hotPtr) + return hotPtr } var metricLogLossOnce sync.Once diff --git a/internal/newtelemetry/internal/writer_test.go b/internal/newtelemetry/internal/writer_test.go index 02a2e9ea19..bacf6accf7 100644 --- a/internal/newtelemetry/internal/writer_test.go +++ b/internal/newtelemetry/internal/writer_test.go @@ -204,7 +204,7 @@ func TestWriter_Flush_MultipleEndpoints(t *testing.T) { assert.Zero(t, results[0].PayloadByteSize) assert.Equal(t, http.StatusOK, results[1].StatusCode) - assert.InDelta(t, time.Duration(1), results[1].CallDuration, float64(time.Millisecond)) + assert.InDelta(t, time.Duration(1), results[1].CallDuration, float64(time.Second)) assert.NotZero(t, results[1].PayloadByteSize) assert.NoError(t, results[1].Error)