Browse Source

Declare current observation context as available since 6.0.15

See gh-31609
See gh-31646
pull/32145/head
Juergen Hoeller 2 years ago
parent
commit
3817936ca5
  1. 24
      spring-web/src/main/java/org/springframework/http/client/observation/ClientRequestObservationContext.java
  2. 45
      spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientRequestObservationContext.java

24
spring-web/src/main/java/org/springframework/http/client/observation/ClientRequestObservationContext.java

@ -1,5 +1,5 @@ @@ -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; @@ -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 @@ -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 @@ -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 @@ -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;
}
}

45
spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientRequestObservationContext.java

@ -1,5 +1,5 @@ @@ -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; @@ -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 @@ -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,6 +62,14 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C @@ -60,6 +62,14 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
}
}
/**
* Set the URI template used for the current client exchange.
*/
public void setUriTemplate(@Nullable String uriTemplate) {
this.uriTemplate = uriTemplate;
}
/**
* Return the URI template used for the current client exchange, {@code null} if none was used.
*/
@ -69,10 +79,11 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C @@ -69,10 +79,11 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
}
/**
* Set the URI template used for the current client exchange.
* Set whether the client aborted the current HTTP exchange.
* @param aborted whether the exchange has been aborted
*/
public void setUriTemplate(@Nullable String uriTemplate) {
this.uriTemplate = uriTemplate;
void setAborted(boolean aborted) {
this.aborted = aborted;
}
/**
@ -84,11 +95,10 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C @@ -84,11 +95,10 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
}
/**
* Set whether the client aborted the current HTTP exchange.
* @param aborted whether the exchange has been aborted
* Set the client request.
*/
void setAborted(boolean aborted) {
this.aborted = aborted;
public void setRequest(ClientRequest request) {
this.request = request;
}
/**
@ -99,21 +109,16 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C @@ -99,21 +109,16 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
return this.request;
}
/**
* Set the client request.
*/
public void setRequest(ClientRequest request) {
this.request = 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));
}
}

Loading…
Cancel
Save