Package io.servicetalk.opentracing.http
Class TracingHttpRequesterFilter
- java.lang.Object
-
- io.servicetalk.opentracing.http.TracingHttpRequesterFilter
-
- All Implemented Interfaces:
HttpExecutionStrategyInfluencer,StreamingHttpClientFilterFactory,StreamingHttpConnectionFilterFactory
public class TracingHttpRequesterFilter extends java.lang.Object implements StreamingHttpClientFilterFactory, StreamingHttpConnectionFilterFactory, HttpExecutionStrategyInfluencer
An HTTP filter that supports open tracing.Append this filter before others that are expected to to see
Scopefor this request/response. Filters appended after this filter that use operators with the after* prefix onresponse meta dataor theStreamingHttpResponse.transformMessageBody(UnaryOperator)response message body} (e.g.Publisher.afterFinally(Runnable)) will execute after this filter invokesScope.close()and therefore will not see theSpanfor the current request/response.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringcomponentNameprotected InMemoryTraceStateFormat<HttpHeaders>formatterprotected io.opentracing.Tracertracer
-
Constructor Summary
Constructors Constructor Description TracingHttpRequesterFilter(io.opentracing.Tracer tracer, java.lang.String componentName)Create a new instance.TracingHttpRequesterFilter(io.opentracing.Tracer tracer, java.lang.String componentName, boolean validateTraceKeyFormat)Create a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StreamingHttpClientFiltercreate(FilterableStreamingHttpClient client)Creates aStreamingHttpClientFilterusing the providedStreamingHttpClientFilter.StreamingHttpConnectionFiltercreate(FilterableStreamingHttpConnection connection)Create aStreamingHttpConnectionFilterusing the providedFilterableStreamingHttpConnection.HttpExecutionStrategyinfluenceStrategy(HttpExecutionStrategy strategy)Optionally modify the passedHttpExecutionStrategyto a newHttpExecutionStrategythat suits thisHttpExecutionStrategyInfluencer.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.servicetalk.http.api.StreamingHttpClientFilterFactory
append, asMultiAddressClientFilter
-
Methods inherited from interface io.servicetalk.http.api.StreamingHttpConnectionFilterFactory
append
-
-
-
-
Field Detail
-
tracer
protected final io.opentracing.Tracer tracer
-
componentName
protected final java.lang.String componentName
-
formatter
protected final InMemoryTraceStateFormat<HttpHeaders> formatter
-
-
Constructor Detail
-
TracingHttpRequesterFilter
public TracingHttpRequesterFilter(io.opentracing.Tracer tracer, java.lang.String componentName)Create a new instance.- Parameters:
tracer- TheTracer.componentName- The component name used during building new spans.
-
TracingHttpRequesterFilter
public TracingHttpRequesterFilter(io.opentracing.Tracer tracer, java.lang.String componentName, boolean validateTraceKeyFormat)Create a new instance.- Parameters:
tracer- TheTracer.componentName- The component name used during building new spans.validateTraceKeyFormat-trueto validate the contents of the trace ids.
-
-
Method Detail
-
create
public final StreamingHttpClientFilter create(FilterableStreamingHttpClient client)
Description copied from interface:StreamingHttpClientFilterFactoryCreates aStreamingHttpClientFilterusing the providedStreamingHttpClientFilter.- Specified by:
createin interfaceStreamingHttpClientFilterFactory- Parameters:
client-FilterableStreamingHttpClientto filter- Returns:
StreamingHttpClientFilterusing the providedStreamingHttpClientFilter.
-
create
public final StreamingHttpConnectionFilter create(FilterableStreamingHttpConnection connection)
Description copied from interface:StreamingHttpConnectionFilterFactoryCreate aStreamingHttpConnectionFilterusing the providedFilterableStreamingHttpConnection.- Specified by:
createin interfaceStreamingHttpConnectionFilterFactory- Parameters:
connection-FilterableStreamingHttpConnectionto filter- Returns:
StreamingHttpConnectionFilterusing the providedFilterableStreamingHttpConnection.
-
influenceStrategy
public HttpExecutionStrategy influenceStrategy(HttpExecutionStrategy strategy)
Description copied from interface:HttpExecutionStrategyInfluencerOptionally modify the passedHttpExecutionStrategyto a newHttpExecutionStrategythat suits thisHttpExecutionStrategyInfluencer.- Specified by:
influenceStrategyin interfaceHttpExecutionStrategyInfluencer- Parameters:
strategy-HttpExecutionStrategyto influence.- Returns:
HttpExecutionStrategythat suits thisHttpExecutionStrategyInfluencer
-
-