From d50a23bf4ba224da91cd6bd3c8bc7a1e42225616 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Mon, 26 Feb 2024 23:22:58 -0800 Subject: [PATCH] Clear aggregate value maps instead of deleting entries (#4981) --- .../internal/aggregate/exponential_histogram.go | 4 +++- sdk/metric/internal/aggregate/histogram.go | 4 ++-- sdk/metric/internal/aggregate/lastvalue.go | 4 ++-- sdk/metric/internal/aggregate/sum.go | 13 ++++++------- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/sdk/metric/internal/aggregate/exponential_histogram.go b/sdk/metric/internal/aggregate/exponential_histogram.go index 4139a6d1560..7b66801c315 100644 --- a/sdk/metric/internal/aggregate/exponential_histogram.go +++ b/sdk/metric/internal/aggregate/exponential_histogram.go @@ -387,9 +387,11 @@ func (e *expoHistogram[N]) delta(dest *metricdata.Aggregation) int { b.res.Collect(&hDPts[i].Exemplars) - delete(e.values, a) i++ } + // Unused attribute sets do not report. + clear(e.values) + e.start = t h.DataPoints = hDPts *dest = h diff --git a/sdk/metric/internal/aggregate/histogram.go b/sdk/metric/internal/aggregate/histogram.go index d695ad64c9e..abc12e55153 100644 --- a/sdk/metric/internal/aggregate/histogram.go +++ b/sdk/metric/internal/aggregate/histogram.go @@ -175,10 +175,10 @@ func (s *histogram[N]) delta(dest *metricdata.Aggregation) int { b.res.Collect(&hDPts[i].Exemplars) - // Unused attribute sets do not report. - delete(s.values, a) i++ } + // Unused attribute sets do not report. + clear(s.values) // The delta collection cycle resets. s.start = t diff --git a/sdk/metric/internal/aggregate/lastvalue.go b/sdk/metric/internal/aggregate/lastvalue.go index 5699e728f1f..987887042f0 100644 --- a/sdk/metric/internal/aggregate/lastvalue.go +++ b/sdk/metric/internal/aggregate/lastvalue.go @@ -82,8 +82,8 @@ func (s *lastValue[N]) computeAggregation(dest *[]metricdata.DataPoint[N]) { (*dest)[i].Time = v.timestamp (*dest)[i].Value = v.value v.res.Collect(&(*dest)[i].Exemplars) - // Do not report stale values. - delete(s.values, a) i++ } + // Do not report stale values. + clear(s.values) } diff --git a/sdk/metric/internal/aggregate/sum.go b/sdk/metric/internal/aggregate/sum.go index 02de2483f3b..29e4fd3968f 100644 --- a/sdk/metric/internal/aggregate/sum.go +++ b/sdk/metric/internal/aggregate/sum.go @@ -104,10 +104,10 @@ func (s *sum[N]) delta(dest *metricdata.Aggregation) int { dPts[i].Time = t dPts[i].Value = val.n val.res.Collect(&dPts[i].Exemplars) - // Do not report stale values. - delete(s.values, attr) i++ } + // Do not report stale values. + clear(s.values) // The delta collection cycle resets. s.start = t @@ -200,11 +200,10 @@ func (s *precomputedSum[N]) delta(dest *metricdata.Aggregation) int { value.res.Collect(&dPts[i].Exemplars) newReported[attr] = value.n - // Unused attribute sets do not report. - delete(s.values, attr) i++ } - // Unused attribute sets are forgotten. + // Unused attribute sets do not report. + clear(s.values) s.reported = newReported // The delta collection cycle resets. s.start = t @@ -238,10 +237,10 @@ func (s *precomputedSum[N]) cumulative(dest *metricdata.Aggregation) int { dPts[i].Value = val.n val.res.Collect(&dPts[i].Exemplars) - // Unused attribute sets do not report. - delete(s.values, attr) i++ } + // Unused attribute sets do not report. + clear(s.values) sData.DataPoints = dPts *dest = sData