hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: Bandwidth usage
Date Wed, 08 Aug 2012 19:25:42 GMT
On Wed, 2012-08-08 at 10:26 -0400, Ryan Smith wrote:
> Right. you also need to calculate what you send to the web server.  So you
> need to calculate the request headers when you make a request.  Then on the
> response you get response body size and header size.  As far as I know
> thats all you need to account for.  Maybe Oleg or someone else can verify.
> 

Ryan et al

At the HttpCore level one can get a very reliable bytes rent / received,
messages sent / received metrics using HttpConnection#getMetrics method
[1]. The problem is that at the HttpClient level pooled connections are
automatically released once the response has been fully consumed, so the
connection can get immediately allocated to another request making HTTP
connection metrics unreliable. There is a JIRA for this issue
(HTTPCLIENT-1081 [2]). 

Oleg 

[1]
http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/HttpConnection.html#getMetrics%28%29
 
http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/HttpConnectionMetrics.html
[2] https://issues.apache.org/jira/browse/HTTPCLIENT-1081

> On Wed, Aug 8, 2012 at 10:19 AM, Jean-Marc Spaggiari <
> jean-marc@spaggiari.org> wrote:
> 
> > Hi Ryan,
> >
> > This will calculate the header size. But is there anything else? Is
> > the size only headers + URL lenght for the request, and
> > headers+respons body for the respons? Is there any other CRC,
> > validation, packet, etc.?
> >
> > Because headersize + body lenght seems to not be accurate :(
> >
> > 2012/8/8, Ryan Smith <ryan.justin.smith@gmail.com>:
> > > If HttpClient has a method to do this, can someone let me know?  This is
> > a
> > > method I wrote to calculate header size:
> > >
> > > public static int getHeaderByteSize(Header[] headers) {
> > > int requestHeaderByteSize = 0;
> > > for (Header requestHeader : headers) {
> > > if (requestHeader.getName() != null) {
> > > requestHeaderByteSize += requestHeader.getName().getBytes().length;
> > > }
> > > if (requestHeader.getValue() != null) {
> > > requestHeaderByteSize += requestHeader.getValue().getBytes().length;
> > > }
> > > }
> > > return requestHeaderByteSize;
> > > }
> > >
> > > On Wed, Aug 8, 2012 at 10:07 AM, Jean-Marc Spaggiari <
> > > jean-marc@spaggiari.org> wrote:
> > >
> > >> Hi,
> > >>
> > >> Is there a good way to calculate the bandwidth used by a request?
> > >>
> > >> I'm doing a get and I try to track the upload and download bandwidth
> > >> used.
> > >>
> > >> So for a get, there is some upload to the server. There is the URL,
> > >> and the headers. But seems there is a bit more than that and I'm not
> > >> able to figure what.
> > >>
> > >> When I get the respons, I'm using getHeaders("Content-Length") to get
> > >> the content lenght. But I'm most probably missing the header size. I
> > >> also tried EntityUtils.toString(entity).length() but none of them
> > >> seems to be accurate.
> > >>
> > >> So I'm wondering is there is a good way to calculate the bandwidth
> > >> used for upload and download?
> > >>
> > >> Thanks,
> > >>
> > >> JM
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> > >> For additional commands, e-mail: httpclient-users-help@hc.apache.org
> > >>
> > >>
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> > For additional commands, e-mail: httpclient-users-help@hc.apache.org
> >
> >



---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message