Expand otlp benchmark to include otlp http case (#5327)

This commit is contained in:
jack-berg 2023-03-30 10:30:53 -05:00 committed by GitHub
parent 696eea7903
commit c2008311f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 2 deletions

View File

@ -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;
}
}