hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavol Loffay (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCLIENT-1842) OpenTracing integration
Date Tue, 25 Apr 2017 15:00:06 GMT

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15983020#comment-15983020
] 

Pavol Loffay commented on HTTPCLIENT-1842:
------------------------------------------

Thanks,

Will be this method {{.addExecInterceptorBefore}} added also to the AsyncClient? 

I guess in async client interceptors run in a different thread. There should be a way how
to instrument ExecutorService to mass variables from thread which is executing {{client.execute(request)}}.

> 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


Mime
View raw message