I found this issue
HTTPCORE-181 raised before.
I got the similar requirement that we want to measure all kinds of time-related data to get the performance report such as:
1. DNS parsing time
2. Connection setup time
2. header parsing time
3. body transfer time
I found that there are a lot of "private" fields which have no setter method in this component, this makes us hard to extend the functionality.
For example in org.apache.http.impl.io.AbstractSessionInputBuffer#init() method, it would be better to change "this.metrics = new HttpTransportMetricsImpl();" to "this.metrics = createMetrics()" (a protected method） which subclasses can easily override this if they want to get an extended HttpTransportMetricsImpl instance.
Can some one look at this feature?