You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (JIRA)" <ji...@apache.org> on 2017/04/24 14:49:04 UTC
[jira] [Commented] (HTTPCLIENT-1842) OpenTracing integration
[ https://issues.apache.org/jira/browse/HTTPCLIENT-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15981280#comment-15981280 ]
Oleg Kalnichevski commented on HTTPCLIENT-1842:
-----------------------------------------------
Pavol,
I am not quite sure I understand what you are proposing or requesting. Could you please clarify what kind of enhancement / changes you are requesting?
As far as point 1 is concerned I am in process of rewriting HttpClient request execution pipeline. It is not yet in trunk but will be after HttpCore 5.0a3 release.
With HttpClient 5.0 one would be able to add a custom execution interceptor at any point in the processing chain:
https://github.com/ok2c/httpclient/blob/upgrade-core-5.0a3/httpclient5/src/examples/org/apache/hc/client5/http/examples/ClientInterceptors.java
Oleg
> 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-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org