diff --git a/apm-agent-benchmarks/pom.xml b/apm-agent-benchmarks/pom.xml
index 914109d45f..83917d9331 100644
--- a/apm-agent-benchmarks/pom.xml
+++ b/apm-agent-benchmarks/pom.xml
@@ -119,6 +119,7 @@
org.openjdk.jmh.Main
+
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/AbstractBenchmark.java
similarity index 95%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/AbstractBenchmark.java
index c79ecd41f1..94d15a305a 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/AbstractBenchmark.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,9 +17,9 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark;
-import co.elastic.apm.CpuProfiler;
+import co.elastic.apm.benchmark.profiler.CpuProfiler;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Scope;
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/ElasticApmBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/ElasticApmContinuousBenchmark.java
similarity index 98%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/ElasticApmBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/ElasticApmContinuousBenchmark.java
index 768469f030..35a6b21279 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/ElasticApmBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/ElasticApmContinuousBenchmark.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,10 +17,9 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm;
+package co.elastic.apm.benchmark;
import co.elastic.apm.configuration.CoreConfiguration;
-import co.elastic.apm.impl.AbstractBenchmark;
import co.elastic.apm.impl.ElasticApmTracer;
import co.elastic.apm.report.Reporter;
import co.elastic.apm.servlet.ApmFilter;
@@ -88,7 +87,7 @@
@BenchmarkMode(Mode.SampleTime)
@OutputTimeUnit(TimeUnit.MICROSECONDS)
@State(Scope.Thread)
-public class ElasticApmBenchmark extends AbstractBenchmark {
+public class ElasticApmContinuousBenchmark extends AbstractBenchmark {
private ApmFilter apmFilter;
private MockHttpServletRequest request;
@@ -101,7 +100,7 @@ public class ElasticApmBenchmark extends AbstractBenchmark {
private FilterChain filterChainWithoutApm;
public static void main(String[] args) throws RunnerException {
- run(ElasticApmBenchmark.class);
+ run(ElasticApmContinuousBenchmark.class);
}
@Setup
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/ObjectPoolBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/objectpool/ObjectPoolBenchmark.java
similarity index 84%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/ObjectPoolBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/objectpool/ObjectPoolBenchmark.java
index 8b408b46d3..679f977bc6 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/ObjectPoolBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/objectpool/ObjectPoolBenchmark.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,8 +17,9 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.objectpool;
+import co.elastic.apm.benchmark.AbstractBenchmark;
import co.elastic.apm.impl.transaction.Transaction;
import co.elastic.apm.objectpool.impl.BlockingQueueObjectPool;
import co.elastic.apm.objectpool.impl.MixedObjectPool;
@@ -28,23 +29,16 @@
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
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.annotations.TearDown;
import org.openjdk.jmh.annotations.Threads;
-import org.openjdk.jmh.profile.GCProfiler;
-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;
import java.util.concurrent.TimeUnit;
-@State(Scope.Benchmark)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
-public class ObjectPoolBenchmark {
+public class ObjectPoolBenchmark extends AbstractBenchmark {
private RingBufferObjectPool ringBufferObjectPool;
private BlockingQueueObjectPool blockingQueueObjectPool;
@@ -52,15 +46,7 @@ public class ObjectPoolBenchmark {
private ThreadLocalObjectPool threadLocalObjectPool;
public static void main(String[] args) throws RunnerException {
- Options opt = new OptionsBuilder()
- .include(ObjectPoolBenchmark.class.getSimpleName())
- .warmupIterations(2)
- .measurementIterations(2)
- .forks(1)
- .addProfiler(GCProfiler.class)
- .build();
-
- new Runner(opt).run();
+ run(ObjectPoolBenchmark.class);
}
@Setup
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/CpuProfiler.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/profiler/CpuProfiler.java
similarity index 98%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/CpuProfiler.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/profiler/CpuProfiler.java
index d63a718eb3..f3beb740a1 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/CpuProfiler.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/profiler/CpuProfiler.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,7 +17,7 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm;
+package co.elastic.apm.benchmark.profiler;
import com.sun.management.OperatingSystemMXBean;
import org.openjdk.jmh.infra.BenchmarkParams;
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractHttpJacksonReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractHttpJacksonReporterBenchmark.java
similarity index 96%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractHttpJacksonReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractHttpJacksonReporterBenchmark.java
index e2d2746998..946bb2d833 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractHttpJacksonReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractHttpJacksonReporterBenchmark.java
@@ -17,9 +17,9 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
-import co.elastic.apm.CpuProfiler;
+import co.elastic.apm.benchmark.profiler.CpuProfiler;
import co.elastic.apm.report.serialize.JacksonPayloadSerializer;
import co.elastic.apm.report.serialize.PayloadSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractHttpReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractHttpReporterBenchmark.java
similarity index 99%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractHttpReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractHttpReporterBenchmark.java
index 7b49e808b8..295af9bbc4 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractHttpReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractHttpReporterBenchmark.java
@@ -17,7 +17,7 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
import co.elastic.apm.report.ApmServerHttpPayloadSender;
import co.elastic.apm.report.PayloadSender;
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractReporterBenchmark.java
similarity index 97%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractReporterBenchmark.java
index c92d513593..8bbc317c8c 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/AbstractReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/AbstractReporterBenchmark.java
@@ -17,8 +17,10 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
+import co.elastic.apm.benchmark.AbstractBenchmark;
+import co.elastic.apm.impl.ElasticApmTracer;
import co.elastic.apm.impl.context.Context;
import co.elastic.apm.impl.context.Request;
import co.elastic.apm.impl.payload.Agent;
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpCborJacksonReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpCborJacksonReporterBenchmark.java
similarity index 75%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpCborJacksonReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpCborJacksonReporterBenchmark.java
index 462d292f00..4b2ca54578 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpCborJacksonReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpCborJacksonReporterBenchmark.java
@@ -17,15 +17,11 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
-import co.elastic.apm.CpuProfiler;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.cbor.CBORFactory;
-import org.openjdk.jmh.profile.GCProfiler;
-import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
public class HttpCborJacksonReporterBenchmark extends AbstractHttpJacksonReporterBenchmark {
@@ -36,12 +32,7 @@ public class HttpCborJacksonReporterBenchmark extends AbstractHttpJacksonReporte
* {@code java -jar apm-agent-benchmarks/target/benchmarks.jar -prof gc}
*/
public static void main(String[] args) throws RunnerException {
- new Runner(new OptionsBuilder()
- .include(HttpCborJacksonReporterBenchmark.class.getSimpleName())
- .addProfiler(GCProfiler.class)
- .addProfiler(CpuProfiler.class)
- .build())
- .run();
+ run(HttpCborJacksonReporterBenchmark.class);
}
protected ObjectMapper getObjectMapper() {
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpVanillaJacksonReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpJacksonReporterContinuousBenchmark.java
similarity index 68%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpVanillaJacksonReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpJacksonReporterContinuousBenchmark.java
index a678c8fa31..34c84e23c4 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpVanillaJacksonReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpJacksonReporterContinuousBenchmark.java
@@ -17,16 +17,16 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
-import co.elastic.apm.CpuProfiler;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.openjdk.jmh.profile.GCProfiler;
-import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
-public class HttpVanillaJacksonReporterBenchmark extends AbstractHttpJacksonReporterBenchmark {
+/**
+ * Measures the performance of the actually used reporter implementation
+ * including JSON serialization and reporting payloads over HTTP
+ */
+public class HttpJacksonReporterContinuousBenchmark extends AbstractHttpJacksonReporterBenchmark {
/**
* Convenience benchmark run method
@@ -35,12 +35,7 @@ public class HttpVanillaJacksonReporterBenchmark extends AbstractHttpJacksonRepo
* {@code java -jar apm-agent-benchmarks/target/benchmarks.jar -prof gc}
*/
public static void main(String[] args) throws RunnerException {
- new Runner(new OptionsBuilder()
- .include(HttpVanillaJacksonReporterBenchmark.class.getSimpleName())
- .addProfiler(GCProfiler.class)
- .addProfiler(CpuProfiler.class)
- .build())
- .run();
+ run(HttpJacksonReporterContinuousBenchmark.class);
}
protected ObjectMapper getObjectMapper() {
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpMoshiReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpMoshiReporterBenchmark.java
similarity index 75%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpMoshiReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpMoshiReporterBenchmark.java
index 24e7524764..30d6d42b9b 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpMoshiReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpMoshiReporterBenchmark.java
@@ -17,14 +17,11 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
-import co.elastic.apm.report.serialize.MoshiPayloadSerializer;
+import co.elastic.apm.benchmark.serializer.MoshiPayloadSerializer;
import co.elastic.apm.report.serialize.PayloadSerializer;
-import org.openjdk.jmh.profile.GCProfiler;
-import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
public class HttpMoshiReporterBenchmark extends AbstractHttpReporterBenchmark {
@@ -35,11 +32,7 @@ public class HttpMoshiReporterBenchmark extends AbstractHttpReporterBenchmark {
* {@code java -jar apm-agent-benchmarks/target/benchmarks.jar -prof gc}
*/
public static void main(String[] args) throws RunnerException {
- new Runner(new OptionsBuilder()
- .include(HttpMoshiReporterBenchmark.class.getSimpleName())
- .addProfiler(GCProfiler.class)
- .build())
- .run();
+ run(HttpMoshiReporterBenchmark.class);
}
@Override
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpNoopJsonReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpNoopJsonReporterBenchmark.java
similarity index 78%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpNoopJsonReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpNoopJsonReporterBenchmark.java
index 75c84086dc..050ea7a09f 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/HttpNoopJsonReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/HttpNoopJsonReporterBenchmark.java
@@ -17,13 +17,10 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
import co.elastic.apm.report.serialize.PayloadSerializer;
-import org.openjdk.jmh.profile.GCProfiler;
-import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
public class HttpNoopJsonReporterBenchmark extends AbstractHttpReporterBenchmark {
@@ -34,11 +31,7 @@ public class HttpNoopJsonReporterBenchmark extends AbstractHttpReporterBenchmark
* {@code java -jar apm-agent-benchmarks/target/benchmarks.jar -prof gc}
*/
public static void main(String[] args) throws RunnerException {
- new Runner(new OptionsBuilder()
- .include(HttpNoopJsonReporterBenchmark.class.getSimpleName())
- .addProfiler(GCProfiler.class)
- .build())
- .run();
+ run(HttpNoopJsonReporterBenchmark.class);
}
@Override
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/NoopReporterBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/NoopReporterBenchmark.java
similarity index 78%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/NoopReporterBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/NoopReporterBenchmark.java
index 9ece739854..e7ddee803a 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/NoopReporterBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/reporter/NoopReporterBenchmark.java
@@ -17,15 +17,16 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl;
+package co.elastic.apm.benchmark.reporter;
import co.elastic.apm.impl.payload.Payload;
import co.elastic.apm.report.PayloadSender;
-import org.openjdk.jmh.profile.GCProfiler;
-import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
+/**
+ * Measures how many events the reporter can handle,
+ * not accounting for JSON serialization and sending payloads over HTTP.
+ */
public class NoopReporterBenchmark extends AbstractReporterBenchmark {
/**
@@ -35,11 +36,7 @@ public class NoopReporterBenchmark extends AbstractReporterBenchmark {
* {@code java -jar apm-agent-benchmarks/target/benchmarks.jar -prof gc}
*/
public static void main(String[] args) throws RunnerException {
- new Runner(new OptionsBuilder()
- .include(NoopReporterBenchmark.class.getSimpleName())
- .addProfiler(GCProfiler.class)
- .build())
- .run();
+ run(NoopReporterBenchmark.class);
}
protected PayloadSender getPayloadSender() {
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/report/serialize/MoshiPayloadSerializer.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/serializer/MoshiPayloadSerializer.java
similarity index 97%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/report/serialize/MoshiPayloadSerializer.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/serializer/MoshiPayloadSerializer.java
index e9342b3f2b..2fdc873fa9 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/report/serialize/MoshiPayloadSerializer.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/serializer/MoshiPayloadSerializer.java
@@ -17,7 +17,7 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.report.serialize;
+package co.elastic.apm.benchmark.serializer;
import co.elastic.apm.impl.payload.Payload;
import co.elastic.apm.report.serialize.PayloadSerializer;
diff --git a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/stacktrace/StackTraceFactoryBenchmark.java b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/stacktrace/StackTraceFactoryBenchmark.java
similarity index 80%
rename from apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/stacktrace/StackTraceFactoryBenchmark.java
rename to apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/stacktrace/StackTraceFactoryBenchmark.java
index ddaf4d5ae7..197cf1f95d 100644
--- a/apm-agent-benchmarks/src/main/java/co/elastic/apm/impl/stacktrace/StackTraceFactoryBenchmark.java
+++ b/apm-agent-benchmarks/src/main/java/co/elastic/apm/benchmark/stacktrace/StackTraceFactoryBenchmark.java
@@ -17,40 +17,32 @@
* limitations under the License.
* #L%
*/
-package co.elastic.apm.impl.stacktrace;
+package co.elastic.apm.benchmark.stacktrace;
-import co.elastic.apm.CpuProfiler;
+import co.elastic.apm.benchmark.AbstractBenchmark;
+import co.elastic.apm.impl.stacktrace.Stacktrace;
+import co.elastic.apm.impl.stacktrace.StacktraceConfiguration;
+import co.elastic.apm.impl.stacktrace.StacktraceFactory;
import co.elastic.apm.objectpool.NoopObjectPool;
import co.elastic.apm.objectpool.ObjectPool;
import co.elastic.apm.objectpool.impl.RingBufferObjectPool;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
-import org.openjdk.jmh.annotations.Fork;
-import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
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.annotations.Threads;
-import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.profile.GCProfiler;
-import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@State(Scope.Benchmark)
-@Warmup(iterations = 5)
-@Measurement(iterations = 5)
-@Fork(1)
-@Threads(1)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
-public class StackTraceFactoryBenchmark {
+public class StackTraceFactoryBenchmark extends AbstractBenchmark {
private StacktraceFactory.CurrentThreadStackTraceFactory currentThreadStackTraceFactory;
private List stacktraces;
@@ -64,12 +56,7 @@ public class StackTraceFactoryBenchmark {
* {@code java -jar apm-agent-benchmarks/target/benchmarks.jar -prof gc}
*/
public static void main(String[] args) throws RunnerException {
- new Runner(new OptionsBuilder()
- .include(StackTraceFactoryBenchmark.class.getSimpleName())
- .addProfiler(GCProfiler.class)
- .addProfiler(CpuProfiler.class)
- .build())
- .run();
+ run(StackTraceFactoryBenchmark.class);
}
@Setup