[ https://issues.apache.org/jira/browse/HTTPCLIENT-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15982878#comment-15982878 ]
Pavol Loffay commented on HTTPCLIENT-1842: ------------------------------------------ https://github.com/ok2c/httpclient/blob/upgrade-core-5.0a3/httpclient5/src/examples/org/apache/hc/client5/http/examples/ClientInterceptors.java looks good. {{.addExecInterceptorBefore(ChainElements.REDIRECT.name(), "traceAll", new ExecChainHandler() {..} }} should add an interceptor which is invoked only once, even if there are redirects. It should be also possible to catch execeptions like {{UnknownHostException}} using try {chain.proceed} catch(Exception). Is added ExecChainHandler run in the same thread as a thread when invoking {{client.execute()}}? > OpenTracing integration > ----------------------- > > Key: HTTPCLIENT-1842 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1842 > Project: HttpComponents HttpClient > Issue Type: Improvement > Components: HttpClient (async), HttpClient (classic) > Reporter: Pavol Loffay > > Hello, > I am working on OpenTracing [1] integraton for {{HttpClient}} client. My > current POC is in [2]. I have a couple of questions and suggestions for next > version to make the tracing integration better and cleaner. > First I was using interceptors but response interceptor is not invoked on > exceptions e.g. {{UnknownHostException}}. > Now I decided to extend {{HttpClientBuilder}} and override > {{decorateProtocolExec}} but the problem is that {{RedirectExec}} is added > aftewards so tracing {{ClientExecChain}} gets called multiple times and > should be only one. Note that tracing {{ClientExecChain}} requires access to > redirectStrategy/redirectCount/redirectDisabled to create only one span for > the whole request (this makes the integration quite nasty). > In general there are these requirements to make the integration work properly: > 1. for the whole invocation call request and response interceptor only once, > or be able to add tracing {{ClientExecChain}} as the last one in builder. > 2. be able to access thread local variable from an > interceptor/ClientExecChain to connect client span with a server span > 3. be able to intercept thrown exceptios e.g. {{UnknownHostException}} > [1]: http://opentracing.io/ > [2]: https://github.com/pavolloffay/java-apache-httpcomponents -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org