[
https://issues.apache.org/jira/browse/HTTPCLIENT-2435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18133457#comment-18133457
]
Ralph Ursprung commented on HTTPCLIENT-2435:
--------------------------------------------
raised a PR for this: https://github.com/apache/httpcomponents-client/pull/906
> 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
> Time Spent: 10m
> Remaining Estimate: 0h
>
> {{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]