support logs in the fake test backend (#3374)
* support logs in the fake test backend * fix copypasta
This commit is contained in:
parent
9a8df0b199
commit
bf3830a8b9
|
@ -30,6 +30,7 @@ import com.linecorp.armeria.server.Server;
|
||||||
import com.linecorp.armeria.server.grpc.GrpcService;
|
import com.linecorp.armeria.server.grpc.GrpcService;
|
||||||
import com.linecorp.armeria.server.healthcheck.HealthCheckService;
|
import com.linecorp.armeria.server.healthcheck.HealthCheckService;
|
||||||
import io.netty.buffer.ByteBufOutputStream;
|
import io.netty.buffer.ByteBufOutputStream;
|
||||||
|
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;
|
||||||
import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;
|
import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;
|
||||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
|
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -68,6 +69,15 @@ public class FakeBackendMain {
|
||||||
marshaller.writeValue(value, gen);
|
marshaller.writeValue(value, gen);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
serializers.addSerializer(
|
||||||
|
new StdSerializer<>(ExportLogsServiceRequest.class) {
|
||||||
|
@Override
|
||||||
|
public void serialize(
|
||||||
|
ExportLogsServiceRequest value, JsonGenerator gen, SerializerProvider provider)
|
||||||
|
throws IOException {
|
||||||
|
marshaller.writeValue(value, gen);
|
||||||
|
}
|
||||||
|
});
|
||||||
module.setSerializers(serializers);
|
module.setSerializers(serializers);
|
||||||
mapper.addModule(module);
|
mapper.addModule(module);
|
||||||
OBJECT_MAPPER = mapper.build();
|
OBJECT_MAPPER = mapper.build();
|
||||||
|
@ -76,18 +86,21 @@ public class FakeBackendMain {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
var traceCollector = new FakeTraceCollectorService();
|
var traceCollector = new FakeTraceCollectorService();
|
||||||
var metricsCollector = new FakeMetricsCollectorService();
|
var metricsCollector = new FakeMetricsCollectorService();
|
||||||
|
var logsCollector = new FakeLogsCollectorService();
|
||||||
var server =
|
var server =
|
||||||
Server.builder()
|
Server.builder()
|
||||||
.http(8080)
|
.http(8080)
|
||||||
.service(GrpcService.builder()
|
.service(GrpcService.builder()
|
||||||
.addService(traceCollector)
|
.addService(traceCollector)
|
||||||
.addService(metricsCollector)
|
.addService(metricsCollector)
|
||||||
|
.addService(logsCollector)
|
||||||
.build())
|
.build())
|
||||||
.service(
|
.service(
|
||||||
"/clear",
|
"/clear",
|
||||||
(ctx, req) -> {
|
(ctx, req) -> {
|
||||||
traceCollector.clearRequests();
|
traceCollector.clearRequests();
|
||||||
metricsCollector.clearRequests();
|
metricsCollector.clearRequests();
|
||||||
|
logsCollector.clearRequests();
|
||||||
return HttpResponse.of(HttpStatus.OK);
|
return HttpResponse.of(HttpStatus.OK);
|
||||||
})
|
})
|
||||||
.service(
|
.service(
|
||||||
|
@ -108,6 +121,15 @@ public class FakeBackendMain {
|
||||||
return HttpResponse.of(
|
return HttpResponse.of(
|
||||||
HttpStatus.OK, MediaType.JSON, HttpData.wrap(buf.buffer()));
|
HttpStatus.OK, MediaType.JSON, HttpData.wrap(buf.buffer()));
|
||||||
})
|
})
|
||||||
|
.service(
|
||||||
|
"/get-logs",
|
||||||
|
(ctx, req) -> {
|
||||||
|
var requests = logsCollector.getRequests();
|
||||||
|
var buf = new ByteBufOutputStream(ctx.alloc().buffer());
|
||||||
|
OBJECT_MAPPER.writeValue((OutputStream) buf, requests);
|
||||||
|
return HttpResponse.of(
|
||||||
|
HttpStatus.OK, MediaType.JSON, HttpData.wrap(buf.buffer()));
|
||||||
|
})
|
||||||
.service("/health", HealthCheckService.of())
|
.service("/health", HealthCheckService.of())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package io.opentelemetry.smoketest.fakebackend;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import io.grpc.stub.StreamObserver;
|
||||||
|
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;
|
||||||
|
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse;
|
||||||
|
import io.opentelemetry.proto.collector.logs.v1.LogsServiceGrpc;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.BlockingQueue;
|
||||||
|
import java.util.concurrent.LinkedBlockingDeque;
|
||||||
|
|
||||||
|
public class FakeLogsCollectorService extends LogsServiceGrpc.LogsServiceImplBase{
|
||||||
|
|
||||||
|
private BlockingQueue<ExportLogsServiceRequest> exportRequests = new LinkedBlockingDeque<>();
|
||||||
|
|
||||||
|
List<ExportLogsServiceRequest> getRequests() {
|
||||||
|
return ImmutableList.copyOf(exportRequests);
|
||||||
|
}
|
||||||
|
|
||||||
|
void clearRequests() {
|
||||||
|
exportRequests.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void export(ExportLogsServiceRequest request,
|
||||||
|
StreamObserver<ExportLogsServiceResponse> responseObserver) {
|
||||||
|
exportRequests.add(request);
|
||||||
|
responseObserver.onNext(ExportLogsServiceResponse.getDefaultInstance());
|
||||||
|
responseObserver.onCompleted();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue