Expand otlp benchmark to include otlp http case (#5327)
This commit is contained in:
parent
696eea7903
commit
c2008311f1
|
|
@ -5,12 +5,15 @@
|
|||
|
||||
package io.opentelemetry.exporter.otlp.trace;
|
||||
|
||||
import com.linecorp.armeria.common.HttpResponse;
|
||||
import com.linecorp.armeria.server.Server;
|
||||
import com.linecorp.armeria.server.grpc.GrpcService;
|
||||
import io.grpc.ManagedChannel;
|
||||
import io.grpc.ManagedChannelBuilder;
|
||||
import io.grpc.stub.StreamObserver;
|
||||
import io.opentelemetry.exporter.internal.grpc.GrpcExporter;
|
||||
import io.opentelemetry.exporter.internal.okhttp.OkHttpExporter;
|
||||
import io.opentelemetry.exporter.internal.okhttp.OkHttpExporterBuilder;
|
||||
import io.opentelemetry.exporter.internal.otlp.traces.TraceRequestMarshaler;
|
||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
|
||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;
|
||||
|
|
@ -37,7 +40,7 @@ import org.openjdk.jmh.annotations.Warmup;
|
|||
@Measurement(iterations = 20, time = 1)
|
||||
@Fork(1)
|
||||
@State(Scope.Benchmark)
|
||||
public class GrpcExporterBenchmark {
|
||||
public class OltpExporterBenchmark {
|
||||
private static final Server server =
|
||||
Server.builder()
|
||||
.service(
|
||||
|
|
@ -53,6 +56,7 @@ public class GrpcExporterBenchmark {
|
|||
}
|
||||
})
|
||||
.build())
|
||||
.service("/v1/traces", (ctx, req) -> HttpResponse.of(200))
|
||||
.http(0)
|
||||
.build();
|
||||
|
||||
|
|
@ -60,13 +64,16 @@ public class GrpcExporterBenchmark {
|
|||
|
||||
private static GrpcExporter<TraceRequestMarshaler> defaultGrpcExporter;
|
||||
private static GrpcExporter<TraceRequestMarshaler> okhttpGrpcExporter;
|
||||
private static OkHttpExporter<TraceRequestMarshaler> httpExporter;
|
||||
|
||||
@Setup(Level.Trial)
|
||||
public void setUp() {
|
||||
server.start().join();
|
||||
|
||||
defaultGrpcChannel =
|
||||
ManagedChannelBuilder.forAddress("localhost", server.activeLocalPort()).build();
|
||||
ManagedChannelBuilder.forAddress("localhost", server.activeLocalPort())
|
||||
.usePlaintext()
|
||||
.build();
|
||||
defaultGrpcExporter =
|
||||
GrpcExporter.builder(
|
||||
"otlp",
|
||||
|
|
@ -87,12 +94,18 @@ public class GrpcExporterBenchmark {
|
|||
() -> MarshalerTraceServiceGrpc::newFutureStub,
|
||||
OtlpGrpcSpanExporterBuilder.GRPC_ENDPOINT_PATH)
|
||||
.build();
|
||||
|
||||
httpExporter =
|
||||
new OkHttpExporterBuilder<TraceRequestMarshaler>(
|
||||
"otlp", "span", "http://localhost:" + server.activeLocalPort() + "/v1/traces")
|
||||
.build();
|
||||
}
|
||||
|
||||
@TearDown(Level.Trial)
|
||||
public void tearDown() {
|
||||
defaultGrpcExporter.shutdown().join(10, TimeUnit.SECONDS);
|
||||
okhttpGrpcExporter.shutdown().join(10, TimeUnit.SECONDS);
|
||||
httpExporter.shutdown().join(10, TimeUnit.SECONDS);
|
||||
defaultGrpcChannel.shutdownNow();
|
||||
server.stop().join();
|
||||
}
|
||||
|
|
@ -120,4 +133,14 @@ public class GrpcExporterBenchmark {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
public CompletableResultCode httpExporter(RequestMarshalState state) {
|
||||
CompletableResultCode result =
|
||||
httpExporter.export(state.traceRequestMarshaler, state.numSpans).join(10, TimeUnit.SECONDS);
|
||||
if (!result.isSuccess()) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue