Class ObservationClient
java.lang.Object
com.linecorp.armeria.common.util.AbstractUnwrappable<Client<T_I,T_O>>
com.linecorp.armeria.client.DecoratingClient<I,O,I,O>
com.linecorp.armeria.client.SimpleDecoratingClient<HttpRequest,HttpResponse>
com.linecorp.armeria.client.SimpleDecoratingHttpClient
com.linecorp.armeria.client.observation.ObservationClient
- All Implemented Interfaces:
Client<HttpRequest,
,HttpResponse> HttpClient
,Unwrappable
Decorates an
HttpClient
to trace outbound HttpRequest
s using
Micrometer Observation.
The following may be a typical implementation using a brave implementation:
// create a tracer
BraveCurrentTraceContext braveCurrentTraceContext = new BraveCurrentTraceContext(
tracing.currentTraceContext());
BravePropagator bravePropagator = new BravePropagator(tracing);
BraveTracer braveTracer = new BraveTracer(tracing.tracer(), braveCurrentTraceContext,
new BraveBaggageManager());
// add tracing handlers
List<TracingObservationHandler<?>> tracingHandlers =
Arrays.asList(new PropagatingSenderTracingObservationHandler<>(braveTracer, bravePropagator),
new PropagatingReceiverTracingObservationHandler<>(braveTracer, bravePropagator),
new DefaultTracingObservationHandler(braveTracer));
// create a registry
ObservationRegistry observationRegistry = ObservationRegistry.create();
// add the tracing handlers
observationRegistry.observationConfig().observationHandler(
new FirstMatchingCompositeObservationHandler(tracingHandlers));
// add the decorator
WebClient.builder()
.decorator(ObservationClient.newDecorator(observationRegistry))
...
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionexecute
(ClientRequestContext ctx, HttpRequest req) static Function<? super HttpClient,
ObservationClient> newDecorator
(io.micrometer.observation.ObservationRegistry observationRegistry) Creates a new micrometer observation integratedHttpClient
decorator using the specifiedObservationRegistry
.static Function<? super HttpClient,
ObservationClient> newDecorator
(io.micrometer.observation.ObservationRegistry observationRegistry, io.micrometer.observation.ObservationConvention<ClientObservationContext> observationConvention) Creates a new micrometer observation integratedHttpClient
decorator using the specifiedObservationRegistry
andObservationConvention
.Methods inherited from class com.linecorp.armeria.common.util.AbstractUnwrappable
as, toString, unwrap, unwrapAll
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.linecorp.armeria.common.util.Unwrappable
equalsIgnoreWrapper, unwrapAll
-
Method Details
-
newDecorator
public static Function<? super HttpClient,ObservationClient> newDecorator(io.micrometer.observation.ObservationRegistry observationRegistry) Creates a new micrometer observation integratedHttpClient
decorator using the specifiedObservationRegistry
. -
newDecorator
public static Function<? super HttpClient,ObservationClient> newDecorator(io.micrometer.observation.ObservationRegistry observationRegistry, io.micrometer.observation.ObservationConvention<ClientObservationContext> observationConvention) Creates a new micrometer observation integratedHttpClient
decorator using the specifiedObservationRegistry
andObservationConvention
. -
execute
Description copied from interface:Client
-