@normanmaurer 
Ad 1) Good point
Ad 2) Also a good point. I thought about the same thing yesterday evening, when I (by accident ) saw Nifty using this approach (here [ChannelStatistics.java](https://github.com/facebook/nifty/blob/cd56b82943f17a0cf36906fcf8b6b9d6e877b026/nifty-core/src/main/java/com/facebook/nifty/core/ChannelStatistics.java)).

The downside of this approach is that the channel pipeline gets longer and it requires a little extra work by the developer. 
However, it also comes with some considerable advantages
* It's more extensible by developers. We could make ```MetricsCollector``` a marker interface or only provide very basic methods (channelRegistered, bytes read/write) and leave any additional methods up to the creativity of developers.
* It's easier to maintain and in my opinion also cleaner, because it does not touch any code in the transports.

I will put some more thought into this, to make sure we don't overlook anything. I am in favor of that tough / cc: @trustin .