I can recommend this Java library by Yammer: https://github.com/dropwizard/metrics
It offers a nice API to have counters, timings, histograms etc.
And it can automatically collect interesting data from servlets by instrumenting them and from the JVM (memory etc).
We store the data then in Graphite: http://graphite.wikidot.com/
Graphite stores the data in a fixed sized database similar to RRD, and can generate charts and dashboards.