diff --git a/docs/metrics/customizing-the-sdk/README.md b/docs/metrics/customizing-the-sdk/README.md index 653dd4979f3..14a72aaf2ac 100644 --- a/docs/metrics/customizing-the-sdk/README.md +++ b/docs/metrics/customizing-the-sdk/README.md @@ -471,9 +471,9 @@ Histograms with buckets, and it stores at most one exemplar per histogram bucket. The exemplar stored is the last measurement recorded - i.e. any new measurement overwrites the previous one in that bucket. -* `SimpleExemplarReservoir` is the default reservoir used for all metrics except -Histograms with buckets. It has a fixed reservoir pool, and implements the -equivalent of [naive +* `SimpleFixedSizeExemplarReservoir` is the default reservoir used for all +metrics except Histograms with buckets. It has a fixed reservoir pool, and +implements the equivalent of [naive reservoir](https://en.wikipedia.org/wiki/Reservoir_sampling). The reservoir pool size (currently defaulting to 1) determines the maximum number of exemplars stored. diff --git a/src/OpenTelemetry/Metrics/Exemplar/SimpleExemplarReservoir.cs b/src/OpenTelemetry/Metrics/Exemplar/SimpleFixedSizeExemplarReservoir.cs similarity index 96% rename from src/OpenTelemetry/Metrics/Exemplar/SimpleExemplarReservoir.cs rename to src/OpenTelemetry/Metrics/Exemplar/SimpleFixedSizeExemplarReservoir.cs index b719c902edc..5324e7067d2 100644 --- a/src/OpenTelemetry/Metrics/Exemplar/SimpleExemplarReservoir.cs +++ b/src/OpenTelemetry/Metrics/Exemplar/SimpleFixedSizeExemplarReservoir.cs @@ -6,9 +6,9 @@ namespace OpenTelemetry.Metrics; /// -/// The SimpleExemplarReservoir implementation. +/// The SimpleFixedSizeExemplarReservoir implementation. /// -internal sealed class SimpleExemplarReservoir : ExemplarReservoir +internal sealed class SimpleFixedSizeExemplarReservoir : ExemplarReservoir { private readonly int poolSize; private readonly Random random; @@ -17,7 +17,7 @@ internal sealed class SimpleExemplarReservoir : ExemplarReservoir private long measurementsSeen; - public SimpleExemplarReservoir(int poolSize) + public SimpleFixedSizeExemplarReservoir(int poolSize) { this.poolSize = poolSize; this.runningExemplars = new Exemplar[poolSize]; diff --git a/src/OpenTelemetry/Metrics/MetricPoint.cs b/src/OpenTelemetry/Metrics/MetricPoint.cs index 349afd51bd9..8931c9692a9 100644 --- a/src/OpenTelemetry/Metrics/MetricPoint.cs +++ b/src/OpenTelemetry/Metrics/MetricPoint.cs @@ -91,7 +91,7 @@ internal MetricPoint( if (aggregatorStore!.IsExemplarEnabled() && reservoir == null) { - reservoir = new SimpleExemplarReservoir(DefaultSimpleReservoirPoolSize); + reservoir = new SimpleFixedSizeExemplarReservoir(DefaultSimpleReservoirPoolSize); } if (reservoir != null) diff --git a/test/OpenTelemetry.Tests/Metrics/MetricExemplarTests.cs b/test/OpenTelemetry.Tests/Metrics/MetricExemplarTests.cs index 476976e4611..b5fd844f43c 100644 --- a/test/OpenTelemetry.Tests/Metrics/MetricExemplarTests.cs +++ b/test/OpenTelemetry.Tests/Metrics/MetricExemplarTests.cs @@ -52,7 +52,7 @@ public void TestExemplarsCounter(MetricReaderTemporalityPreference temporality) var exemplars = GetExemplars(metricPoint.Value); // TODO: Modify the test to better test cumulative. - // In cumulative where SimpleExemplarReservoir's size is + // In cumulative, where SimpleFixedSizeExemplarReservoir's size is // more than the count of new measurements, it is possible // that the exemplar value is for a measurement that was recorded in the prior // cycle. The current ValidateExemplars() does not handle this case.