Currently each session has a SessionsStats MBean. Omongst other things it records the total number or refresh operations. It also records the rate of refresh operations, although this number in its current form is not usefull as the rate is the number of refresh operations/session lifetime. It would be much better to have a set of stats related to classes of users that recorded proper metrics in a consistent way. eg 1 metric set per service-user, 1 for the admin user and perhaps 1 for all normal users. Each would record m1,m5,m15 rates, total count, p50,p75,p95,p99,p999 durations with mean and stdev then 2 sets of metrics could be compared and monitored without having to look at the code to work out how the metric was calculated. Oak has metrics support to do this, minimal code would be required.
I dont think it would be viable to have 1 metric per unique session (too much overhead, too much data, good for devs but bad for production), and in fact having 1 JMX MBean per unique session is likely to cause problems with everything connected to JMX even the ManagementServer can cope. Same goes for the other proliferation of MBeans in the Oak 1.6. Perhaps a review of JMX in Oak is due.