On 18/05/2011 13:21, Dan Checkoway wrote:
> Gotcha...yeah, it would be trivial to slap an AtomicLong counter in a
> filter, but I'd hate to double the synchronization hit if tomcat already has
> this counter available centrally.
> 
> I'd like to hear an authoritative answer from the tomcat devs, if possible,
> as to whether tomcat is already doing this centrally, and maybe just not
> exposing it?

GlobalRequestProcessor (one per connector) is the best you'll get.

Mark

> 
> Dan
> 
> On Wed, May 18, 2011 at 7:45 AM, Jess Holle <je...@ptc.com> wrote:
> 
>> I've done a servlet request filter for this and many other such things.
>>
>> I've always been a bit surprised by how little of this data Tomcat collects
>> -- but that's fine as one can do a servlet request filter that will work in
>> any servlet engine and collect everything you want.
>>
>> That said, collecting some of this information becomes a lot more
>> challenging with asynchronous requests, which is something I've not yet
>> tackled.  For instance, it's easy to track the CPU usage for each
>> synchronous request (obviously from the servlet filter on down in the call
>> stack, not counting the Tomcat calls before/after this), but not so easy for
>> an asynchronous request...
>>
>> --
>> Jess Holle
>>
>>
>> On 5/18/2011 6:31 AM, Dan Checkoway wrote:
>>
>>> I've messed around a bit, and I figured out a more reliable way to do
>>> it...but it's pretty nasty.  Basically I'm iterating and grabbing the
>>> "requestCount" attribute from all of the RequestProcessor mbeans, and just
>>> tallying them up.
>>>
>>> Like I said, it's nasty, since you need to know the max possible # of
>>> RequestProcessor beans, there are "gaps" in the sequence, etc.  I'm hoping
>>> there's an easier way to get just a single JMX-exposed attribute
>>> representing total requestCount.
>>>
>>> Possible?  Wish list item...open a bugzilla ticket?  Bueller...Bueller...?
>>> :-)
>>>
>>> Dan
>>>
>>> On Tue, May 17, 2011 at 4:22 AM, Dan Checkoway<dchecko...@gmail.com>
>>>  wrote:
>>>
>>>  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
>>>>
>>>>
>>
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to