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

Ralph Ursprung commented on HTTPCLIENT-2435:
--------------------------------------------

note: there's no component yet for the observation module, so i left the field 
empty.

> httpclient5-observation: opt-in request/response body size distribution 
> metrics
> -------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-2435
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2435
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>            Reporter: Ralph Ursprung
>            Priority: Major
>
> {{httpclient5-observation}} has no way to record the distribution of HTTP
> request and response body sizes. The existing {{IO}} metric set
> ({{IoByteCounterExec}} / {{AsyncIoByteCounterExec}}) records only cumulative
> {{Counter}}s ({{<prefix>.request.bytes}}, {{<prefix>.response.bytes}}). 
> Counters
> show total throughput, but not the size of single requests (for example,
> how large bulk requests to a search cluster are, or how many responses are
> larger than 10 MB).
> Micrometer users asked for this for a long time 
> ([micrometer#880|https://github.com/micrometer-metrics/micrometer/issues/880]).
>  The Micrometer team said that this must be done in each HTTP library, not at 
> framework level, because only the library knows when the length is known and 
> whether compression is applied ([see 
> comment|https://github.com/micrometer-metrics/micrometer/issues/880#issuecomment-1625381050]).
>  Micrometer's own HttpClient 5 binder is deprecated since Micrometer 1.17.0 
> in favor of {{httpclient5-observation}} 
> ([micrometer#7158|https://github.com/micrometer-metrics/micrometer/issues/7158]),
>  so the
> feature belongs in this module.
> Proposal:
> * New opt-in {{ObservingOptions.MetricSet.BODY_SIZE}}.
> * New interceptors {{BodySizeExec}} (classic) and {{AsyncBodySizeExec}} 
> (async).
> * Meters {{<prefix>.request.body.size}} and {{<prefix>.response.body.size}},
>   {{DistributionSummary}}, base unit bytes. With the default prefix the names
>   are the OpenTelemetry names {{http.client.request.body.size}} and
>   {{http.client.response.body.size}}.
> * Tags are the same as for the request timer.
> * Sizes come from the declared content length only. Nothing is recorded if
>   the length is unknown. No wrapping or buffering of entities.
> * No change to existing meters, APIs or default behavior. 



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to