From b2d8277ad0913c6995158dbb9f827c6f1824cc12 Mon Sep 17 00:00:00 2001 From: Tommy Ludwig <8924140+shakuzen@users.noreply.github.com> Date: Wed, 25 Dec 2024 11:18:53 +0900 Subject: [PATCH] Polish Disabled publishing in the CompareOTLPHistograms benchmark, which may have contributed to variability in results. --- .../compare/CompareOTLPHistograms.java | 45 ++++++++++++++++--- concurrency-tests/build.gradle | 3 +- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/benchmarks/benchmarks-core/src/jmh/java/io/micrometer/benchmark/compare/CompareOTLPHistograms.java b/benchmarks/benchmarks-core/src/jmh/java/io/micrometer/benchmark/compare/CompareOTLPHistograms.java index a5b70cf288..15f5d8f0f5 100644 --- a/benchmarks/benchmarks-core/src/jmh/java/io/micrometer/benchmark/compare/CompareOTLPHistograms.java +++ b/benchmarks/benchmarks-core/src/jmh/java/io/micrometer/benchmark/compare/CompareOTLPHistograms.java @@ -45,12 +45,26 @@ */ @Fork(1) @Measurement(iterations = 2) -@Warmup(iterations = 2) -@BenchmarkMode(Mode.AverageTime) +@Warmup(iterations = 3) +@BenchmarkMode(Mode.SampleTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Threads(16) +@Threads(2) public class CompareOTLPHistograms { + // disable publishing since we are only benchmarking recording + static OtlpConfig disabledConfig = new OtlpConfig() { + + @Override + public boolean enabled() { + return false; + } + + @Override + public String get(String key) { + return ""; + } + }; + @State(Scope.Thread) public static class Data { @@ -82,7 +96,7 @@ public static class DistributionsWithoutHistogramCumulative { @Setup(Level.Iteration) public void setup() { - registry = new OtlpMeterRegistry(); + registry = new OtlpMeterRegistry(disabledConfig, Clock.SYSTEM); distributionSummary = DistributionSummary.builder("ds").register(registry); timer = Timer.builder("timer").register(registry); } @@ -99,6 +113,11 @@ public static class DistributionsWithoutHistogramDelta { OtlpConfig otlpConfig = new OtlpConfig() { + @Override + public boolean enabled() { + return false; + } + @Override public AggregationTemporality aggregationTemporality() { return AggregationTemporality.DELTA; @@ -142,7 +161,7 @@ public static class ExplicitBucketHistogramCumulative { @Setup(Level.Iteration) public void setup() { - registry = new OtlpMeterRegistry(); + registry = new OtlpMeterRegistry(disabledConfig, Clock.SYSTEM); distributionSummary = DistributionSummary.builder("ds").publishPercentileHistogram().register(registry); timer = Timer.builder("timer").publishPercentileHistogram().register(registry); } @@ -159,6 +178,11 @@ public static class ExplicitBucketHistogramDelta { OtlpConfig otlpConfig = new OtlpConfig() { + @Override + public boolean enabled() { + return false; + } + @Override public AggregationTemporality aggregationTemporality() { return AggregationTemporality.DELTA; @@ -197,6 +221,12 @@ public static class ExponentialHistogramCumulative { MeterRegistry registry; OtlpConfig otlpConfig = new OtlpConfig() { + + @Override + public boolean enabled() { + return false; + } + @Override public HistogramFlavor histogramFlavor() { return HistogramFlavor.BASE2_EXPONENTIAL_BUCKET_HISTOGRAM; @@ -234,6 +264,11 @@ public static class ExponentialHistogramDelta { OtlpConfig otlpConfig = new OtlpConfig() { + @Override + public boolean enabled() { + return false; + } + @Override public AggregationTemporality aggregationTemporality() { return AggregationTemporality.DELTA; diff --git a/concurrency-tests/build.gradle b/concurrency-tests/build.gradle index de902b86f4..4b8e58b883 100644 --- a/concurrency-tests/build.gradle +++ b/concurrency-tests/build.gradle @@ -8,8 +8,9 @@ dependencies { implementation project(":micrometer-core") // implementation("io.micrometer:micrometer-core:1.14.1") implementation project(":micrometer-registry-prometheus") - implementation project(":micrometer-registry-otlp") // implementation("io.micrometer:micrometer-registry-prometheus:1.14.1") + implementation project(":micrometer-registry-otlp") + runtimeOnly(libs.logbackLatest) }