Declare current observation context as available since 6.0.15

See gh-31609
See gh-31646
This commit is contained in:
Juergen Hoeller
2024-01-24 12:35:30 +01:00
parent 9bd2be80b9
commit 3817936ca5
2 changed files with 41 additions and 32 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,10 +23,12 @@ import org.springframework.http.client.ClientHttpResponse;
import org.springframework.lang.Nullable;
/**
* Context that holds information for metadata collection
* during the {@link ClientHttpObservationDocumentation#HTTP_CLIENT_EXCHANGES client HTTP exchanges} observations.
* Context that holds information for metadata collection during the
* {@link ClientHttpObservationDocumentation#HTTP_CLIENT_EXCHANGES client HTTP exchanges} observations.
*
* <p>This context also extends {@link RequestReplySenderContext} for propagating tracing
* information with the HTTP client exchange.
*
* @author Brian Clozel
* @since 6.0
*/
@@ -35,6 +37,7 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
@Nullable
private String uriTemplate;
/**
* Create an observation context for {@link ClientHttpRequest} observations.
* @param request the HTTP client request
@@ -50,13 +53,6 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
}
}
/**
* Return the URI template used for the current client exchange, {@code null} if none was used.
*/
@Nullable
public String getUriTemplate() {
return this.uriTemplate;
}
/**
* Set the URI template used for the current client exchange.
@@ -65,4 +61,12 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
this.uriTemplate = uriTemplate;
}
/**
* Return the URI template used for the current client exchange, {@code null} if none was used.
*/
@Nullable
public String getUriTemplate() {
return this.uriTemplate;
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,11 +23,12 @@ import io.micrometer.observation.transport.RequestReplySenderContext;
import org.springframework.lang.Nullable;
/**
* Context that holds information for metadata collection
* during the {@link ClientHttpObservationDocumentation#HTTP_REACTIVE_CLIENT_EXCHANGES HTTP client exchange observations}.
* Context that holds information for metadata collection during the
* {@link ClientHttpObservationDocumentation#HTTP_REACTIVE_CLIENT_EXCHANGES HTTP client exchange observations}.
*
* <p>The {@link #getCarrier() tracing context carrier} is a {@link ClientRequest.Builder request builder},
* since the actual request is immutable. For {@code KeyValue} extraction, the {@link #getRequest() actual request}
* should be used instead.
* since the actual request is immutable. For {@code KeyValue} extraction,
* the {@link #getRequest() actual request} should be used instead.
*
* @author Brian Clozel
* @since 6.0
@@ -37,10 +38,11 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
/**
* Name of the request attribute holding the {@link ClientRequestObservationContext context}
* for the current observation.
* @since 6.1.1
* @since 6.0.15
*/
public static final String CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE = ClientRequestObservationContext.class.getName();
@Nullable
private String uriTemplate;
@@ -60,13 +62,6 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
}
}
/**
* Return the URI template used for the current client exchange, {@code null} if none was used.
*/
@Nullable
public String getUriTemplate() {
return this.uriTemplate;
}
/**
* Set the URI template used for the current client exchange.
@@ -76,11 +71,11 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
}
/**
* Whether the client aborted the current HTTP exchange before receiving any response.
* @return whether the exchange has been aborted
* Return the URI template used for the current client exchange, {@code null} if none was used.
*/
public boolean isAborted() {
return this.aborted;
@Nullable
public String getUriTemplate() {
return this.uriTemplate;
}
/**
@@ -92,11 +87,11 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
}
/**
* Return the immutable client request.
* Whether the client aborted the current HTTP exchange before receiving any response.
* @return whether the exchange has been aborted
*/
@Nullable
public ClientRequest getRequest() {
return this.request;
public boolean isAborted() {
return this.aborted;
}
/**
@@ -106,14 +101,24 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
this.request = request;
}
/**
* Return the immutable client request.
*/
@Nullable
public ClientRequest getRequest() {
return this.request;
}
/**
* Get the current {@link ClientRequestObservationContext observation context}
* from the given request, if available.
* @param request the current client request
* @return the current observation context
* @since 6.1.2
* @since 6.0.15
*/
public static Optional<ClientRequestObservationContext> findCurrent(ClientRequest request) {
return Optional.ofNullable((ClientRequestObservationContext) request.attributes().get(CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE));
}
}