
io.prometheus.benchmark.SummaryBenchmark Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of benchmarks Show documentation
Show all versions of benchmarks Show documentation
Benchmarks of client performance, and comparison to other systems.
package io.prometheus.benchmark;
import com.codahale.metrics.MetricRegistry;
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
@State(Scope.Benchmark)
public class SummaryBenchmark {
MetricRegistry registry;
com.codahale.metrics.Histogram codahaleHistogram;
io.prometheus.client.metrics.Summary prometheusSummary;
io.prometheus.client.metrics.Summary.Child prometheusSummaryChild;
io.prometheus.client.Summary prometheusSimpleSummary;
io.prometheus.client.Summary.Child prometheusSimpleSummaryChild;
io.prometheus.client.Summary prometheusSimpleSummaryNoLabels;
io.prometheus.client.Histogram prometheusSimpleHistogram;
io.prometheus.client.Histogram.Child prometheusSimpleHistogramChild;
io.prometheus.client.Histogram prometheusSimpleHistogramNoLabels;
@Setup
public void setup() {
prometheusSummary = io.prometheus.client.metrics.Summary.newBuilder()
.name("name")
.documentation("some description..")
.build();
prometheusSummaryChild = prometheusSummary.newPartial().apply();
prometheusSimpleSummary = io.prometheus.client.Summary.build()
.name("name")
.help("some description..")
.labelNames("some", "group").create();
prometheusSimpleSummaryChild = prometheusSimpleSummary.labels("test", "group");
prometheusSimpleSummaryNoLabels = io.prometheus.client.Summary.build()
.name("name")
.help("some description..")
.create();
prometheusSimpleHistogram = io.prometheus.client.Histogram.build()
.name("name")
.help("some description..")
.labelNames("some", "group").create();
prometheusSimpleHistogramChild = prometheusSimpleHistogram.labels("test", "group");
prometheusSimpleHistogramNoLabels = io.prometheus.client.Histogram.build()
.name("name")
.help("some description..")
.create();
registry = new MetricRegistry();
codahaleHistogram = registry.histogram("name");
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSummaryBenchmark() {
prometheusSummary.newPartial().apply().observe(1.0);
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSummaryChildBenchmark() {
prometheusSummaryChild.observe(1.0);
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSimpleSummaryBenchmark() {
prometheusSimpleSummary.labels("test", "group").observe(1) ;
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSimpleSummaryChildBenchmark() {
prometheusSimpleSummaryChild.observe(1);
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSimpleSummaryNoLabelsBenchmark() {
prometheusSimpleSummaryNoLabels.observe(1);
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSimpleHistogramBenchmark() {
prometheusSimpleHistogram.labels("test", "group").observe(1) ;
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSimpleHistogramChildBenchmark() {
prometheusSimpleHistogramChild.observe(1);
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void prometheusSimpleHistogramNoLabelsBenchmark() {
prometheusSimpleHistogramNoLabels.observe(1);
}
@Benchmark
@BenchmarkMode({Mode.AverageTime})
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public void codahaleHistogramBenchmark() {
codahaleHistogram.update(1);
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(SummaryBenchmark.class.getSimpleName())
.warmupIterations(5)
.measurementIterations(4)
.threads(4)
.forks(1)
.build();
new Runner(opt).run();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy