[ https://issues.apache.org/jira/browse/HTTPCLIENT-2274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17722091#comment-17722091 ]
Oleg Kalnichevski commented on HTTPCLIENT-2274: ----------------------------------------------- [~cachescrubber] You should be using exec interceptors to capture execution time metrics: https://github.com/apache/httpcomponents-client/blob/master/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientInterceptors.java https://github.com/apache/httpcomponents-client/blob/master/httpclient5/src/test/java/org/apache/hc/client5/http/examples/AsyncClientInterceptors.java Oleg > Instrumenting HttpClient to gather http client request metrics. > --------------------------------------------------------------- > > Key: HTTPCLIENT-2274 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2274 > Project: HttpComponents HttpClient > Issue Type: Improvement > Components: HttpClient (async), HttpClient (classic) > Affects Versions: 5.2.1 > Reporter: Lars Uffmann > Priority: Major > > I recently started using the [micrometer|[https://micrometer.io/]] binding > for HttpClient version 4 and 5, b both classic and async. > Digging a bit deeper into the implementation I noticed that the async > instrumentation is not able to measure IO errors. > My attempt to solve this > ([https://github.com/micrometer-metrics/micrometer/pull/3801)|https://github.com/micrometer-metrics/micrometer/pull/3801] > is using a HttpRequestRetryStrategy to capture exceptions. Not only it feels > a bit awkward using the retry strategy to meter errors, I discovered that > only errors occurring during an established connection could be metered. > Connection related IO errors (connection refused, connection timeout, etc.) > are not metered. > The issue seems to be that the RequestInterceptor used to start then > observation, is not called before a connection is established. I see the same > behavior with the classic http client instrumentation which is using a > HttpRequestExecutor, not an Interceptor. > This means > * the metrics do not include the time needed to establish a connection. > * The metrics do not count failed connection attempts. > Could you advise on how to instrument HttpClient (classic and async) in order > to be able to meter connection related time and errors? -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org