[ https://issues.apache.org/jira/browse/HTTPCLIENT-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15989726#comment-15989726 ]
Adrian Cole commented on HTTPCLIENT-1842: ----------------------------------------- While I think making tracing work is wise (ex other projects like CXF), I think it is unwise to add a core dep in a library like apachehc to any other library, notably an unstable one like OT. For example, even stable apache tracing library like HTrace is wrapped in CXF, to insulate from the rare changes they make, and to enable others. Like similar projects like OkHttp, I think it would be a smarter idea to enable tracing vs lock someone in, as the last thing we want is to break an ecosystem because a library broke api when moving from v0.22 to v0.23. What this means is take the requirements as opposed to lock in a specific api to implement them. > 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