diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-05-20 17:16:12 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-05-20 17:16:12 +0200 |
commit | 0f3770dcc2a5403fa65a5141ec822e6922a8e350 (patch) | |
tree | 49a7bcd0c12b949bb3ad9313c5753fa517749e05 /container-core/src/main/java/com | |
parent | 990bd61e885549e291619aa45c1cc38a103fcb1e (diff) |
Add HTTP/2 stream id to request log
Diffstat (limited to 'container-core/src/main/java/com')
-rw-r--r-- | container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java index 11898381f0a..08b89094486 100644 --- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java +++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLog.java @@ -8,6 +8,10 @@ import com.yahoo.container.logging.RequestLog; import com.yahoo.container.logging.RequestLogEntry; import com.yahoo.jdisc.http.ServerConfig; import com.yahoo.jdisc.http.servlet.ServletRequest; +import org.eclipse.jetty.http2.HTTP2Stream; +import org.eclipse.jetty.http2.server.HttpTransportOverHTTP2; +import org.eclipse.jetty.server.HttpChannel; +import org.eclipse.jetty.server.HttpTransport; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Response; import org.eclipse.jetty.util.component.AbstractLifeCycle; @@ -117,6 +121,7 @@ class AccessLogRequestLog extends AbstractLifeCycle implements org.eclipse.jetty addNonNullValue(builder, accessLogEntry.getHitCounts(), RequestLogEntry.Builder::hitCounts); addNonNullValue(builder, accessLogEntry.getTrace(), RequestLogEntry.Builder::traceNode); } + http2StreamId(request).ifPresent(streamId -> builder.addExtraAttribute("http2-stream-id", Integer.toString(streamId))); requestLog.log(builder.build()); } catch (Exception e) { @@ -158,6 +163,15 @@ class AccessLogRequestLog extends AbstractLifeCycle implements org.eclipse.jetty } } + private static OptionalInt http2StreamId(Request request) { + HttpChannel httpChannel = request.getHttpChannel(); + if (httpChannel == null) return OptionalInt.empty(); + HttpTransport transport = httpChannel.getHttpTransport(); + if (!(transport instanceof HttpTransportOverHTTP2)) return OptionalInt.empty(); + HTTP2Stream stream = (HTTP2Stream) ((HttpTransportOverHTTP2) transport).getStream(); + return OptionalInt.of(stream.getId()); + } + private static <T> void addNonNullValue( RequestLogEntry.Builder builder, T value, BiConsumer<RequestLogEntry.Builder, T> setter) { if (value != null) { |