Pavol Loffay created HTTPCLIENT-1842:
----------------------------------------

             Summary: 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to