diff --git a/build.gradle b/build.gradle index 2b8824db9e..4662c4b207 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 jsr305Version = '3.0.2' diff --git a/reactor-netty5-core/src/main/java/reactor/netty5/channel/ChannelMeters.java b/reactor-netty5-core/src/main/java/reactor/netty5/channel/ChannelMeters.java index e902effd76..6f7e34dcbd 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/channel/ChannelMeters.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/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-netty5-core/src/main/java/reactor/netty5/channel/ConnectObservations.java b/reactor-netty5-core/src/main/java/reactor/netty5/channel/ConnectObservations.java index d74fb531fe..24803508c4 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/channel/ConnectObservations.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/channel/ConnectObservations.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-core/src/main/java/reactor/netty5/channel/ConnectSpans.java b/reactor-netty5-core/src/main/java/reactor/netty5/channel/ConnectSpans.java index 0d6a37a4d9..067635d04e 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/channel/ConnectSpans.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/channel/ConnectSpans.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-core/src/main/java/reactor/netty5/channel/MicrometerChannelMetricsHandler.java b/reactor-netty5-core/src/main/java/reactor/netty5/channel/MicrometerChannelMetricsHandler.java index 3004402b18..29ed502877 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/channel/MicrometerChannelMetricsHandler.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/channel/MicrometerChannelMetricsHandler.java @@ -28,6 +28,7 @@ import reactor.util.context.ContextView; import java.net.SocketAddress; +import java.util.function.Supplier; import static reactor.netty5.Metrics.CONNECT_TIME; import static reactor.netty5.Metrics.ERROR; @@ -77,7 +78,8 @@ public MicrometerChannelMetricsRecorder recorder() { // ConnectMetricsHandler is Observation.Context and ChannelHandler 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, ChannelHandler { + static final class ConnectMetricsHandler extends Observation.Context + implements ReactorNettyHandlerContext, ChannelHandler, Supplier { static final String CONTEXTUAL_NAME = "connect"; static final String TYPE = "client"; @@ -91,6 +93,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); @@ -140,7 +147,8 @@ public KeyValues getLowCardinalityKeyValues() { } } - static final class TlsMetricsHandler extends Observation.Context implements ReactorNettyHandlerContext, ChannelHandler { + static final class TlsMetricsHandler extends Observation.Context + implements ReactorNettyHandlerContext, ChannelHandler, Supplier { static final String CONTEXTUAL_NAME = "tls handshake"; static final String TYPE_CLIENT = "client"; static final String TYPE_SERVER = "server"; @@ -181,6 +189,11 @@ public void channelActive(ChannelHandlerContext ctx) { ctx.fireChannelActive(); } + @Override + public Observation.Context get() { + return this; + } + @Override public String getContextualName() { return CONTEXTUAL_NAME; diff --git a/reactor-netty5-core/src/main/java/reactor/netty5/resources/ConnectionProviderMeters.java b/reactor-netty5-core/src/main/java/reactor/netty5/resources/ConnectionProviderMeters.java index 31824383e9..67c25d1ed9 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/resources/ConnectionProviderMeters.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/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-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeObservations.java b/reactor-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeObservations.java index 21acd902a4..b8b280f0dc 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeObservations.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeObservations.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeSpans.java b/reactor-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeSpans.java index d97db55149..dee7902074 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeSpans.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/tcp/TlsHandshakeSpans.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-core/src/main/java/reactor/netty5/transport/BufferAllocatorMeters.java b/reactor-netty5-core/src/main/java/reactor/netty5/transport/BufferAllocatorMeters.java index 3edc61c800..64f46de04d 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/transport/BufferAllocatorMeters.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/transport/BufferAllocatorMeters.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.netty5.buffer.BufferAllocator} meters. @@ -25,7 +25,7 @@ * @author Violeta Georgieva * @since 1.1.0 */ -enum BufferAllocatorMeters implements DocumentedMeter { +enum BufferAllocatorMeters implements MeterDocumentation { /** * The actual bytes consumed by in-use buffers allocated from the buffer pools. diff --git a/reactor-netty5-core/src/main/java/reactor/netty5/transport/EventLoopMeters.java b/reactor-netty5-core/src/main/java/reactor/netty5/transport/EventLoopMeters.java index 6399020d18..4d338fb4b3 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/transport/EventLoopMeters.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/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.netty5.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-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionObservations.java b/reactor-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionObservations.java index 9069052054..8f1d57b7d1 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionObservations.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionObservations.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionSpans.java b/reactor-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionSpans.java index 5a6695e504..5f259d07fa 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionSpans.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/transport/HostnameResolutionSpans.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-core/src/main/java/reactor/netty5/transport/MicrometerAddressResolverGroupMetrics.java b/reactor-netty5-core/src/main/java/reactor/netty5/transport/MicrometerAddressResolverGroupMetrics.java index 3da4a3e392..b78d2d49cd 100644 --- a/reactor-netty5-core/src/main/java/reactor/netty5/transport/MicrometerAddressResolverGroupMetrics.java +++ b/reactor-netty5-core/src/main/java/reactor/netty5/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-netty5-http/src/main/java/reactor/netty5/http/client/Http2ConnectionProviderMeters.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/client/Http2ConnectionProviderMeters.java index 90580ced42..43b1ec1f04 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/client/Http2ConnectionProviderMeters.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/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.netty5.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-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientMeters.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientMeters.java index 08f0ba0b1c..120cfc7767 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientMeters.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/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-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientObservations.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientObservations.java index 83166a2b55..1c6a3a8153 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientObservations.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientObservations.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientSpans.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientSpans.java index f7ffba6f7b..ddf0e1ff78 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientSpans.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/http/client/HttpClientSpans.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-http/src/main/java/reactor/netty5/http/client/MicrometerHttpClientMetricsHandler.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/client/MicrometerHttpClientMetricsHandler.java index 0b613415c3..2e90630edb 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/client/MicrometerHttpClientMetricsHandler.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/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.netty5.Metrics.OBSERVATION_KEY; import static reactor.netty5.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-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerMeters.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerMeters.java index c575b396ab..ef7b8bf716 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerMeters.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/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-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerObservations.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerObservations.java index 92f31a032c..3fad8ce41f 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerObservations.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerObservations.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerSpans.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerSpans.java index 0e24a4d8bc..8dbd647fc6 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerSpans.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/http/server/HttpServerSpans.java @@ -16,7 +16,7 @@ package reactor.netty5.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-netty5-http/src/main/java/reactor/netty5/http/server/MicrometerHttpServerMetricsHandler.java b/reactor-netty5-http/src/main/java/reactor/netty5/http/server/MicrometerHttpServerMetricsHandler.java index 3628292a01..9c334b25c0 100644 --- a/reactor-netty5-http/src/main/java/reactor/netty5/http/server/MicrometerHttpServerMetricsHandler.java +++ b/reactor-netty5-http/src/main/java/reactor/netty5/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.netty5.Metrics.OBSERVATION_REGISTRY; import static reactor.netty5.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; @@ -134,6 +135,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);