I'm looking for advice on the most reliable & efficient way to track tomcat throughput...preferably via JMX. I've written a simple app that uses JMX to grab the "completedTaskCount" attribute on the Executor. My assumption was that the Executor's completedTaskCount would be a fairly accurate way to watch, in real-time, the number of HTTP requests served...and a heck of a lot simpler than just counting access log lines. Basically the app grabs the completedTaskCount every 10 seconds and does a simple "how many more since the last time I checked" rate calculation.
But what I think I'm seeing is that the Executor's completedTaskCount grows at a rate higher than the actual number of HTTP requests being served. So I'm wondering...is a shared Executor being used for purposes other than just serving requests, and if so, what other types of tasks are being executed? Is there any other attribute exposed by JMX that might be a more reliable way of counting actual HTTP requests served? Is there a simpler way of accomplishing the same goal that doesn't involve access log analysis? Thanks, Dan