From b43871ba26bf148b54366d61ebe3a85a392e1e6c Mon Sep 17 00:00:00 2001 From: Violeta Georgieva Date: Thu, 6 Oct 2022 15:19:41 +0300 Subject: [PATCH] Update Micrometer dependencies to 1.10.0-SNAPSHOT before RC1 (#2526) Update Micrometer Tracing dependency to version 1.0.0-SNAPSHOT Update Micrometer Docs Generator dependency to version 1.0.0-SNAPSHOT Update Context Propagation dependency to version 1.0.0-SNAPSHOT --- build.gradle | 8 ++++---- .../reactor/netty/channel/ChannelMeters.java | 4 ++-- .../netty/channel/ConnectObservations.java | 4 ++-- .../reactor/netty/channel/ConnectSpans.java | 4 ++-- .../MicrometerChannelMetricsHandler.java | 17 +++++++++++++++-- .../resources/ConnectionProviderMeters.java | 4 ++-- .../netty/tcp/TlsHandshakeObservations.java | 4 ++-- .../reactor/netty/tcp/TlsHandshakeSpans.java | 4 ++-- .../netty/transport/ByteBufAllocatorMeters.java | 4 ++-- .../netty/transport/EventLoopMeters.java | 4 ++-- .../HostnameResolutionObservations.java | 4 ++-- .../transport/HostnameResolutionSpans.java | 4 ++-- .../MicrometerAddressResolverGroupMetrics.java | 8 +++++++- .../client/Http2ConnectionProviderMeters.java | 4 ++-- .../netty/http/client/HttpClientMeters.java | 4 ++-- .../http/client/HttpClientObservations.java | 4 ++-- .../netty/http/client/HttpClientSpans.java | 4 ++-- .../MicrometerHttpClientMetricsHandler.java | 8 +++++++- .../netty/http/server/HttpServerMeters.java | 4 ++-- .../http/server/HttpServerObservations.java | 4 ++-- .../netty/http/server/HttpServerSpans.java | 4 ++-- .../MicrometerHttpServerMetricsHandler.java | 8 +++++++- 22 files changed, 74 insertions(+), 43 deletions(-) diff --git a/build.gradle b/build.gradle index 0c8dbd164b..a1df541b59 100644 --- a/build.gradle +++ b/build.gradle @@ -84,11 +84,11 @@ ext { } //Metrics - micrometerVersion = '1.10.0-M6' //optional baseline - micrometerTracingVersion = '1.0.0-M8' //optional baseline - micrometerDocsVersion = '1.0.0-M7' //optional baseline + micrometerVersion = '1.10.0-SNAPSHOT' // was M6 //optional baseline + micrometerTracingVersion = '1.0.0-SNAPSHOT' // was M8 //optional baseline + micrometerDocsVersion = '1.0.0-SNAPSHOT' // was M7 //optional baseline - contextPropagationVersion = '1.0.0-M5' + contextPropagationVersion = '1.0.0-SNAPSHOT' // was M5 //optional baseline braveVersion = '5.14.1' diff --git a/reactor-netty-core/src/main/java/reactor/netty/channel/ChannelMeters.java b/reactor-netty-core/src/main/java/reactor/netty/channel/ChannelMeters.java index 79c5aa2071..fa94c90866 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/channel/ChannelMeters.java +++ b/reactor-netty-core/src/main/java/reactor/netty/channel/ChannelMeters.java @@ -17,7 +17,7 @@ import io.micrometer.common.docs.KeyName; import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.docs.DocumentedMeter; +import io.micrometer.core.instrument.docs.MeterDocumentation; /** * Channel meters. @@ -26,7 +26,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -public enum ChannelMeters implements DocumentedMeter { +public enum ChannelMeters implements MeterDocumentation { /** * The number of all opened connections on the server. diff --git a/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectObservations.java b/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectObservations.java index d89a1efc41..14212fe1ab 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectObservations.java +++ b/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectObservations.java @@ -16,7 +16,7 @@ package reactor.netty.channel; import io.micrometer.common.docs.KeyName; -import io.micrometer.observation.docs.DocumentedObservation; +import io.micrometer.observation.docs.ObservationDocumentation; /** * Connect observations. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum ConnectObservations implements DocumentedObservation { +enum ConnectObservations implements ObservationDocumentation { /** * Connect metric. diff --git a/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectSpans.java b/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectSpans.java index 0a524d9f53..161dce1ad6 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectSpans.java +++ b/reactor-netty-core/src/main/java/reactor/netty/channel/ConnectSpans.java @@ -16,7 +16,7 @@ package reactor.netty.channel; import io.micrometer.common.docs.KeyName; -import io.micrometer.tracing.docs.DocumentedSpan; +import io.micrometer.tracing.docs.SpanDocumentation; /** * Connect spans. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum ConnectSpans implements DocumentedSpan { +enum ConnectSpans implements SpanDocumentation { /** * Connect Span. diff --git a/reactor-netty-core/src/main/java/reactor/netty/channel/MicrometerChannelMetricsHandler.java b/reactor-netty-core/src/main/java/reactor/netty/channel/MicrometerChannelMetricsHandler.java index effb1fb1b0..db71a7328e 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/channel/MicrometerChannelMetricsHandler.java +++ b/reactor-netty-core/src/main/java/reactor/netty/channel/MicrometerChannelMetricsHandler.java @@ -30,6 +30,7 @@ import reactor.util.context.ContextView; import java.net.SocketAddress; +import java.util.function.Supplier; import static reactor.netty.Metrics.CONNECT_TIME; import static reactor.netty.Metrics.ERROR; @@ -79,7 +80,8 @@ public MicrometerChannelMetricsRecorder recorder() { // ConnectMetricsHandler is Observation.Context and ChannelOutboundHandler in order to reduce allocations, // this is invoked on every connection establishment // This handler is not shared and as such it is different object per connection. - static final class ConnectMetricsHandler extends Observation.Context implements ReactorNettyHandlerContext, ChannelOutboundHandler { + static final class ConnectMetricsHandler extends Observation.Context + implements ReactorNettyHandlerContext, ChannelOutboundHandler, Supplier { static final String CONTEXTUAL_NAME = "connect"; static final String TYPE = "client"; @@ -93,6 +95,11 @@ static final class ConnectMetricsHandler extends Observation.Context implements this.recorder = recorder; } + @Override + public Observation.Context get() { + return this; + } + @Override public Timer getTimer() { return recorder.getConnectTimer(getName(), remoteAddress, status); @@ -204,7 +211,8 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) } } - static final class TlsMetricsHandler extends Observation.Context implements ReactorNettyHandlerContext, ChannelInboundHandler { + static final class TlsMetricsHandler extends Observation.Context + implements ReactorNettyHandlerContext, ChannelInboundHandler, Supplier { static final String CONTEXTUAL_NAME = "tls handshake"; static final String TYPE_CLIENT = "client"; static final String TYPE_SERVER = "server"; @@ -281,6 +289,11 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { ctx.fireExceptionCaught(cause); } + @Override + public Observation.Context get() { + return this; + } + @Override public String getContextualName() { return CONTEXTUAL_NAME; diff --git a/reactor-netty-core/src/main/java/reactor/netty/resources/ConnectionProviderMeters.java b/reactor-netty-core/src/main/java/reactor/netty/resources/ConnectionProviderMeters.java index 10d2b9c69d..4398ad5053 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/resources/ConnectionProviderMeters.java +++ b/reactor-netty-core/src/main/java/reactor/netty/resources/ConnectionProviderMeters.java @@ -17,7 +17,7 @@ import io.micrometer.common.docs.KeyName; import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.docs.DocumentedMeter; +import io.micrometer.core.instrument.docs.MeterDocumentation; /** * {@link ConnectionProvider} meters. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum ConnectionProviderMeters implements DocumentedMeter { +enum ConnectionProviderMeters implements MeterDocumentation { /** * The number of the connections in the connection pool that have been successfully acquired and are in active use. diff --git a/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeObservations.java b/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeObservations.java index 3602855c77..a3dd717b8f 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeObservations.java +++ b/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeObservations.java @@ -16,7 +16,7 @@ package reactor.netty.tcp; import io.micrometer.common.docs.KeyName; -import io.micrometer.observation.docs.DocumentedObservation; +import io.micrometer.observation.docs.ObservationDocumentation; /** * TLS handshake observations. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum TlsHandshakeObservations implements DocumentedObservation { +enum TlsHandshakeObservations implements ObservationDocumentation { /** * TLS handshake metric. diff --git a/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeSpans.java b/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeSpans.java index df066f6ad8..6367da2662 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeSpans.java +++ b/reactor-netty-core/src/main/java/reactor/netty/tcp/TlsHandshakeSpans.java @@ -16,7 +16,7 @@ package reactor.netty.tcp; import io.micrometer.common.docs.KeyName; -import io.micrometer.tracing.docs.DocumentedSpan; +import io.micrometer.tracing.docs.SpanDocumentation; /** * TLS handshake spans. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum TlsHandshakeSpans implements DocumentedSpan { +enum TlsHandshakeSpans implements SpanDocumentation { /** * TLS Handshake Span. diff --git a/reactor-netty-core/src/main/java/reactor/netty/transport/ByteBufAllocatorMeters.java b/reactor-netty-core/src/main/java/reactor/netty/transport/ByteBufAllocatorMeters.java index b6a986b56d..e31193a577 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/transport/ByteBufAllocatorMeters.java +++ b/reactor-netty-core/src/main/java/reactor/netty/transport/ByteBufAllocatorMeters.java @@ -17,7 +17,7 @@ import io.micrometer.common.docs.KeyName; import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.docs.DocumentedMeter; +import io.micrometer.core.instrument.docs.MeterDocumentation; /** * {@link io.netty.buffer.ByteBufAllocator} meters. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum ByteBufAllocatorMeters implements DocumentedMeter { +enum ByteBufAllocatorMeters implements MeterDocumentation { /** * The actual bytes consumed by in-use buffers allocated from direct buffer pools. diff --git a/reactor-netty-core/src/main/java/reactor/netty/transport/EventLoopMeters.java b/reactor-netty-core/src/main/java/reactor/netty/transport/EventLoopMeters.java index 74e7516d0c..51f1ede1a5 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/transport/EventLoopMeters.java +++ b/reactor-netty-core/src/main/java/reactor/netty/transport/EventLoopMeters.java @@ -17,7 +17,7 @@ import io.micrometer.common.docs.KeyName; import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.docs.DocumentedMeter; +import io.micrometer.core.instrument.docs.MeterDocumentation; /** * {@link io.netty.channel.EventLoop} meters. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum EventLoopMeters implements DocumentedMeter { +enum EventLoopMeters implements MeterDocumentation { /** * Event loop pending scheduled tasks. diff --git a/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionObservations.java b/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionObservations.java index fe351774a2..e68aa268c2 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionObservations.java +++ b/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionObservations.java @@ -16,7 +16,7 @@ package reactor.netty.transport; import io.micrometer.common.docs.KeyName; -import io.micrometer.observation.docs.DocumentedObservation; +import io.micrometer.observation.docs.ObservationDocumentation; /** * Hostname resolution observations. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HostnameResolutionObservations implements DocumentedObservation { +enum HostnameResolutionObservations implements ObservationDocumentation { /** * Hostname resolution metric. diff --git a/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionSpans.java b/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionSpans.java index d8930b9416..9968086d5b 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionSpans.java +++ b/reactor-netty-core/src/main/java/reactor/netty/transport/HostnameResolutionSpans.java @@ -16,7 +16,7 @@ package reactor.netty.transport; import io.micrometer.common.docs.KeyName; -import io.micrometer.tracing.docs.DocumentedSpan; +import io.micrometer.tracing.docs.SpanDocumentation; /** * Hostname resolution spans. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HostnameResolutionSpans implements DocumentedSpan { +enum HostnameResolutionSpans implements SpanDocumentation { /** * Hostname Resolution Span. diff --git a/reactor-netty-core/src/main/java/reactor/netty/transport/MicrometerAddressResolverGroupMetrics.java b/reactor-netty-core/src/main/java/reactor/netty/transport/MicrometerAddressResolverGroupMetrics.java index 5a443a909a..1ee0825a18 100644 --- a/reactor-netty-core/src/main/java/reactor/netty/transport/MicrometerAddressResolverGroupMetrics.java +++ b/reactor-netty-core/src/main/java/reactor/netty/transport/MicrometerAddressResolverGroupMetrics.java @@ -70,7 +70,8 @@ protected AddressResolver newResolver(EventExecutor executor) { return new MicrometerDelegatingAddressResolver<>((MicrometerChannelMetricsRecorder) recorder, resolverGroup.getResolver(executor)); } - static final class FutureHandlerContext extends Observation.Context implements ReactorNettyHandlerContext { + static final class FutureHandlerContext extends Observation.Context + implements ReactorNettyHandlerContext, Supplier { static final String CONTEXTUAL_NAME = "hostname resolution"; static final String TYPE = "client"; @@ -85,6 +86,11 @@ static final class FutureHandlerContext extends Observation.Context implements R this.remoteAddress = remoteAddress; } + @Override + public Observation.Context get() { + return this; + } + @Override public Timer getTimer() { return recorder.getResolveAddressTimer(getName(), remoteAddress, status); diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/client/Http2ConnectionProviderMeters.java b/reactor-netty-http/src/main/java/reactor/netty/http/client/Http2ConnectionProviderMeters.java index 6c6d03a9b7..a43270dba2 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/client/Http2ConnectionProviderMeters.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/client/Http2ConnectionProviderMeters.java @@ -17,7 +17,7 @@ import io.micrometer.common.docs.KeyName; import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.docs.DocumentedMeter; +import io.micrometer.core.instrument.docs.MeterDocumentation; /** * HTTP/2 {@link reactor.netty.resources.ConnectionProvider} meters. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum Http2ConnectionProviderMeters implements DocumentedMeter { +enum Http2ConnectionProviderMeters implements MeterDocumentation { /** * The number of the connections in the connection pool that have been successfully acquired and are in active use. diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientMeters.java b/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientMeters.java index d8a662835a..3608066ef2 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientMeters.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientMeters.java @@ -17,7 +17,7 @@ import io.micrometer.common.docs.KeyName; import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.docs.DocumentedMeter; +import io.micrometer.core.instrument.docs.MeterDocumentation; /** * {@link HttpClient} meters. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HttpClientMeters implements DocumentedMeter { +enum HttpClientMeters implements MeterDocumentation { /** * Time spent in consuming incoming data on the client. diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientObservations.java b/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientObservations.java index 43af12748a..af11bafe72 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientObservations.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientObservations.java @@ -16,7 +16,7 @@ package reactor.netty.http.client; import io.micrometer.common.docs.KeyName; -import io.micrometer.observation.docs.DocumentedObservation; +import io.micrometer.observation.docs.ObservationDocumentation; /** * {@link HttpClient} observations. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HttpClientObservations implements DocumentedObservation { +enum HttpClientObservations implements ObservationDocumentation { /** * Response metric. diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientSpans.java b/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientSpans.java index d26ac450d1..925d070843 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientSpans.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/client/HttpClientSpans.java @@ -16,7 +16,7 @@ package reactor.netty.http.client; import io.micrometer.common.docs.KeyName; -import io.micrometer.tracing.docs.DocumentedSpan; +import io.micrometer.tracing.docs.SpanDocumentation; /** * {@link HttpClient} spans. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HttpClientSpans implements DocumentedSpan { +enum HttpClientSpans implements SpanDocumentation { /** * Response Span. diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/client/MicrometerHttpClientMetricsHandler.java b/reactor-netty-http/src/main/java/reactor/netty/http/client/MicrometerHttpClientMetricsHandler.java index d2b6ad0344..028fa98cf2 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/client/MicrometerHttpClientMetricsHandler.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/client/MicrometerHttpClientMetricsHandler.java @@ -30,6 +30,7 @@ import java.time.Duration; import java.util.Objects; import java.util.function.Function; +import java.util.function.Supplier; import static reactor.netty.Metrics.OBSERVATION_KEY; import static reactor.netty.Metrics.OBSERVATION_REGISTRY; @@ -120,7 +121,7 @@ protected void startWrite(HttpRequest msg, Channel channel, @Nullable ContextVie } static final class ResponseTimeHandlerContext extends RequestReplySenderContext - implements ReactorNettyHandlerContext { + implements ReactorNettyHandlerContext, Supplier { static final String TYPE = "client"; final String method; @@ -142,6 +143,11 @@ static final class ResponseTimeHandlerContext extends RequestReplySenderContext< setContextualName(this.method); } + @Override + public Observation.Context get() { + return this; + } + @Override public Timer getTimer() { return recorder.getResponseTimeTimer(getName(), remoteAddress, path, method, status); diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerMeters.java b/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerMeters.java index 92504d9542..10182740e2 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerMeters.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerMeters.java @@ -17,7 +17,7 @@ import io.micrometer.common.docs.KeyName; import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.docs.DocumentedMeter; +import io.micrometer.core.instrument.docs.MeterDocumentation; /** * {@link HttpServer} meters. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HttpServerMeters implements DocumentedMeter { +enum HttpServerMeters implements MeterDocumentation { /** * The number of http connections, on the server, currently processing requests. diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerObservations.java b/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerObservations.java index be7ad84a39..92816989fd 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerObservations.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerObservations.java @@ -16,7 +16,7 @@ package reactor.netty.http.server; import io.micrometer.common.docs.KeyName; -import io.micrometer.observation.docs.DocumentedObservation; +import io.micrometer.observation.docs.ObservationDocumentation; /** * {@link HttpServer} observations. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HttpServerObservations implements DocumentedObservation { +enum HttpServerObservations implements ObservationDocumentation { /** * Response metric. diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerSpans.java b/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerSpans.java index 67decb19a1..d095431efe 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerSpans.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/server/HttpServerSpans.java @@ -16,7 +16,7 @@ package reactor.netty.http.server; import io.micrometer.common.docs.KeyName; -import io.micrometer.tracing.docs.DocumentedSpan; +import io.micrometer.tracing.docs.SpanDocumentation; /** * {@link HttpServer} spans. @@ -24,7 +24,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum HttpServerSpans implements DocumentedSpan { +enum HttpServerSpans implements SpanDocumentation { /** * Response Span. diff --git a/reactor-netty-http/src/main/java/reactor/netty/http/server/MicrometerHttpServerMetricsHandler.java b/reactor-netty-http/src/main/java/reactor/netty/http/server/MicrometerHttpServerMetricsHandler.java index 6231ce615d..a99338c222 100644 --- a/reactor-netty-http/src/main/java/reactor/netty/http/server/MicrometerHttpServerMetricsHandler.java +++ b/reactor-netty-http/src/main/java/reactor/netty/http/server/MicrometerHttpServerMetricsHandler.java @@ -27,6 +27,7 @@ import java.time.Duration; import java.util.Objects; import java.util.function.Function; +import java.util.function.Supplier; import static reactor.netty.Metrics.OBSERVATION_REGISTRY; import static reactor.netty.Metrics.RESPONSE_TIME; @@ -111,7 +112,7 @@ protected void startWrite(HttpServerOperations ops, String path, String method, } static final class ResponseTimeHandlerContext extends RequestReplyReceiverContext - implements ReactorNettyHandlerContext { + implements ReactorNettyHandlerContext, Supplier { static final String TYPE = "server"; final String method; @@ -131,6 +132,11 @@ static final class ResponseTimeHandlerContext extends RequestReplyReceiverContex setContextualName(this.method); } + @Override + public Observation.Context get() { + return this; + } + @Override public Timer getTimer() { return recorder.getResponseTimeTimer(getName(), path, method, status);