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;
|
package io.opentelemetry.exporter.otlp.trace;
|
||||||
|
|
||||||
|
import com.linecorp.armeria.common.HttpResponse;
|
||||||
import com.linecorp.armeria.server.Server;
|
import com.linecorp.armeria.server.Server;
|
||||||
import com.linecorp.armeria.server.grpc.GrpcService;
|
import com.linecorp.armeria.server.grpc.GrpcService;
|
||||||
import io.grpc.ManagedChannel;
|
import io.grpc.ManagedChannel;
|
||||||
import io.grpc.ManagedChannelBuilder;
|
import io.grpc.ManagedChannelBuilder;
|
||||||
import io.grpc.stub.StreamObserver;
|
import io.grpc.stub.StreamObserver;
|
||||||
import io.opentelemetry.exporter.internal.grpc.GrpcExporter;
|
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.exporter.internal.otlp.traces.TraceRequestMarshaler;
|
||||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
|
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
|
||||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;
|
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;
|
||||||
|
|
@ -37,7 +40,7 @@ import org.openjdk.jmh.annotations.Warmup;
|
||||||
@Measurement(iterations = 20, time = 1)
|
@Measurement(iterations = 20, time = 1)
|
||||||
@Fork(1)
|
@Fork(1)
|
||||||
@State(Scope.Benchmark)
|
@State(Scope.Benchmark)
|
||||||
public class GrpcExporterBenchmark {
|
public class OltpExporterBenchmark {
|
||||||
private static final Server server =
|
private static final Server server =
|
||||||
Server.builder()
|
Server.builder()
|
||||||
.service(
|
.service(
|
||||||
|
|
@ -53,6 +56,7 @@ public class GrpcExporterBenchmark {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.build())
|
.build())
|
||||||
|
.service("/v1/traces", (ctx, req) -> HttpResponse.of(200))
|
||||||
.http(0)
|
.http(0)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
@ -60,13 +64,16 @@ public class GrpcExporterBenchmark {
|
||||||
|
|
||||||
private static GrpcExporter<TraceRequestMarshaler> defaultGrpcExporter;
|
private static GrpcExporter<TraceRequestMarshaler> defaultGrpcExporter;
|
||||||
private static GrpcExporter<TraceRequestMarshaler> okhttpGrpcExporter;
|
private static GrpcExporter<TraceRequestMarshaler> okhttpGrpcExporter;
|
||||||
|
private static OkHttpExporter<TraceRequestMarshaler> httpExporter;
|
||||||
|
|
||||||
@Setup(Level.Trial)
|
@Setup(Level.Trial)
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
server.start().join();
|
server.start().join();
|
||||||
|
|
||||||
defaultGrpcChannel =
|
defaultGrpcChannel =
|
||||||
ManagedChannelBuilder.forAddress("localhost", server.activeLocalPort()).build();
|
ManagedChannelBuilder.forAddress("localhost", server.activeLocalPort())
|
||||||
|
.usePlaintext()
|
||||||
|
.build();
|
||||||
defaultGrpcExporter =
|
defaultGrpcExporter =
|
||||||
GrpcExporter.builder(
|
GrpcExporter.builder(
|
||||||
"otlp",
|
"otlp",
|
||||||
|
|
@ -87,12 +94,18 @@ public class GrpcExporterBenchmark {
|
||||||
() -> MarshalerTraceServiceGrpc::newFutureStub,
|
() -> MarshalerTraceServiceGrpc::newFutureStub,
|
||||||
OtlpGrpcSpanExporterBuilder.GRPC_ENDPOINT_PATH)
|
OtlpGrpcSpanExporterBuilder.GRPC_ENDPOINT_PATH)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
httpExporter =
|
||||||
|
new OkHttpExporterBuilder<TraceRequestMarshaler>(
|
||||||
|
"otlp", "span", "http://localhost:" + server.activeLocalPort() + "/v1/traces")
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@TearDown(Level.Trial)
|
@TearDown(Level.Trial)
|
||||||
public void tearDown() {
|
public void tearDown() {
|
||||||
defaultGrpcExporter.shutdown().join(10, TimeUnit.SECONDS);
|
defaultGrpcExporter.shutdown().join(10, TimeUnit.SECONDS);
|
||||||
okhttpGrpcExporter.shutdown().join(10, TimeUnit.SECONDS);
|
okhttpGrpcExporter.shutdown().join(10, TimeUnit.SECONDS);
|
||||||
|
httpExporter.shutdown().join(10, TimeUnit.SECONDS);
|
||||||
defaultGrpcChannel.shutdownNow();
|
defaultGrpcChannel.shutdownNow();
|
||||||
server.stop().join();
|
server.stop().join();
|
||||||
}
|
}
|
||||||
|
|
@ -120,4 +133,14 @@ public class GrpcExporterBenchmark {
|
||||||
}
|
}
|
||||||
return result;
|
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