@Override protected void channelRead0(ChannelHandlerContext ctx, Request msg) throws Exception { if (msg instanceof SegmentedRequestData && msg.endOfMessage()) { sendResponse(ctx, msg.httpTraceInfo(), msg.streamId()); return; } else if (msg instanceof FullRequest) { sendResponse(ctx, msg.httpTraceInfo(), msg.streamId()); } ctx.write(msg); }
public static DefaultFullResponse.Builder newOk(Request request) { return defaultHeaders( DefaultFullResponse.builder() .streamId(request.streamId()) .httpTraceInfo(request.httpTraceInfo()) .status(HttpResponseStatus.OK)); } }
public static Response newServiceTimeout(Request request) { return defaultHeaders(DefaultFullResponse.builder()) .body(Unpooled.EMPTY_BUFFER) .httpTraceInfo(request.httpTraceInfo()) .streamId(request.streamId()) .status(HttpResponseStatus.GATEWAY_TIMEOUT) .build(); }
public static Response newNotFound(Request request) { return defaultHeaders(DefaultFullResponse.builder()) .body(Unpooled.EMPTY_BUFFER) .httpTraceInfo(request.httpTraceInfo()) .streamId(request.streamId()) .status(HttpResponseStatus.NOT_FOUND) .build(); }
public static Response newServiceUnavailable(Request request) { return defaultHeaders(DefaultFullResponse.builder()) .body(Unpooled.EMPTY_BUFFER) .httpTraceInfo(request.httpTraceInfo()) .streamId(request.streamId()) .status(HttpResponseStatus.SERVICE_UNAVAILABLE) .build(); }
}); Optional<Span> parentSpan = request.httpTraceInfo().getSpan(); parentSpan.ifPresent(spanBuilder::asChildOf); Format.Builtin.HTTP_HEADERS, new HttpHeadersInjectAdapter(request)); request.httpTraceInfo().setSpan(scope.span()); setSpan(ctx, request.streamId(), scope.span());
public Request buildRequest(Request request, String proxyHost, String path) { Request result; if (request instanceof FullRequest) { result = DefaultFullRequest.builder() .body(request.body()) .method(request.method()) .path(path) .streamId(request.streamId()) .headers(request.headers()) .httpTraceInfo(request.httpTraceInfo()) .host(proxyHost) .build(); } else if (request instanceof SegmentedRequest) { result = DefaultSegmentedRequest.builder() .method(request.method()) .path(path) .streamId(request.streamId()) .headers(request.headers()) .httpTraceInfo(request.httpTraceInfo()) .host(proxyHost) .build(); } else { // this should never happen! log.error("Unknown request type: {}", request); result = null; } return result; }
@Override public void channelRead0(ChannelHandlerContext ctx, Request request) throws Exception { ByteBuf content = Unpooled.copiedBuffer("Here is the default content that is returned", CharsetUtil.UTF_8); HttpResponseStatus status = OK; Tracer tracer = httpTracing.tracing().tracer(); if (request.endOfMessage()) { request .httpTraceInfo() .getSpan() .ifPresent( parent -> { if (parent instanceof brave.Span) { Span span = tracer.newChild(((brave.Span) parent).context()).name("child").start(); span.finish(); } }); val response = DefaultFullResponse.builder() .status(status) .headers(new DefaultHeaders()) .httpTraceInfo(request.httpTraceInfo()) .status(status) .body(content) .build(); ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE); } } }
request.httpTraceInfo().setSpan(scope.span());