diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/aggregator/AggregatorHandle.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/aggregator/AggregatorHandle.java index 2115d8dd3c8..454ca707a69 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/aggregator/AggregatorHandle.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/aggregator/AggregatorHandle.java @@ -107,7 +107,9 @@ public void recordLong(long value, Attributes attributes, Context context) { throwUnsupportedIfNull(this.longReservoirFactory, UNSUPPORTED_LONG_MESSAGE) .offerLongMeasurement(value, attributes, context); doRecordLong(value); - valuesRecorded = true; + if (!valuesRecorded) { + valuesRecorded = true; + } } /** @@ -122,7 +124,9 @@ public final void recordDouble(double value, Attributes attributes, Context cont throwUnsupportedIfNull(this.doubleReservoirFactory, UNSUPPORTED_DOUBLE_MESSAGE) .offerDoubleMeasurement(value, attributes, context); doRecordDouble(value); - valuesRecorded = true; + if (!valuesRecorded) { + valuesRecorded = true; + } } /**