You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by anita kulshreshtha <a_...@yahoo.com> on 2005/12/01 16:11:37 UTC

Re: Statistics Management and Jetty/Tomcat

     Tomcat provides the following statistics, listed
here in the increasing order of their usefulness
(IMHO). Unfortunately the most useful ones will
require the most work.
1. Per host - These are not readily available. But can
be computed from others. Per container statistics can
be derived from these.
2. Per app - These will be the easiest and most
meaningful to implement at this stage. 
3. Per servlet statistics - I am looking at the
possibility of collecting these statistics in the
current architecture. The current implementation does
not wrap individual servlet in a Gbean. It appears (?)
that we can not implement ServletStats (JSR 77).  
    As a first step towards implementing 2 and later
for 1,  I would like to expose the following
attributes using TomcatContext. 
1. processingTime : The cumulative processing times of
all servlets in this StandardContext

2. startTime - The time this context was started.
3. startupTime - The time (in milliseconds) it took to
start this context.
4. tldScanTime() - 

I need to make changes in TomcatWebAppContext. If it
is OK with Jeff, I can file an issue and start working
on the patch. 
     In the second stage, I would like to expose
aggregated servlet statistics again via TomcatContext.
     In the third stage these can be added up to give
per host/container data.
    This does not solve the immediate problem of not
having tomcat's per server statitics to display on the
console. 

Thanks
Anita 

--- Jan Bartel <ja...@mortbay.com> wrote:

> Aaron,
> 
> The package to look at with viewCVS at sourceforge
> is here:
> 
>
http://cvs.sourceforge.net/viewcvs.py/jetty/Jetty/extra/jsr77/src/org/mortbay/jetty/servlet/jsr77/
> 
> The JSR77 stuff is instrumented by inserting an
> o.m.j.s.jsr77.Jsr77Filter
> in front of each servlet defined for a webapp. This
> filter collects
> the JSR77 servlet statistics. The stats are exposed
> to JMX via the 
> o.m.j.s.jsr77.jmx.Jsr77ServletHolderMBean at the
> objectname expected
> by the spec. The mbean interrogates the filter
> instance to get the
> stats. 
> 
> To turn on JSR77 for Jetty, you: 
> 
> 1) add these lines to the jetty.xml config file:
>   <Set name="WebApplicationConfigurationClassNames">
>     <Array type="java.lang.String">
>      
>
<Item>org.mortbay.jetty.plus.PlusWebAppContext$Configuration</Item>
>      
>
<Item>org.mortbay.jetty.servlet.JettyWebConfiguration</Item>
>      
>
<Item>org.mortbay.jetty.servlet.jsr77.Configuration</Item>
>     </Array>
>   </Set>
> 
> 2) run Jetty with jmx enabled:
> java -Dmain.class=org.mortbay.xml.XmlConfiguration
> -DSTART=extra/etc/start-plus.config -jar start.jar
> extra/etc/jettyplus-jmx.xml
> 
> Note that the above documented instructions are
> given for the JettyPlus server,
> but should work with the standard Jetty server so
> long as the jsr77.jar built from the
> $JETTY_HOME/extra/jsr77 package is on Jetty's
> classpath.
> 
> I gather that for the web console, you are looking
> not only at the JSR77
> servlet stats, but want to apply JSR77-type metrics
> to the container-specific
> stats as well? 
> 
> cheers
> Jan
> 
> Aaron Mulder wrote:
> > Jan, is there some sample code for acessing the
> Jetty JSR-77 stats? 
> > If you have some of that plumbing in place
> already, and we can use
> > what's there, that would be great.
> > 
> > Next best might be looking at the code for your
> JSR-77 implementation
> > and seeing how you dig up the numbers so we can
> try to do it the same
> > way.  Is the code in CVSWeb or something where you
> can just give us a
> > URL to the JSR-77 implementation?
> > 
> > Thanks,
> >     Aaron
> > 
> > On 11/30/05, Joe Bohn
> <jo...@public.gmane.org>
> wrote:
> > 
> >>I'm afraid we might be out of time for these
> changes in jetty.  I was
> >>hoping to get this JSR77-like server performance
> mgmt completed and
> >>implemented for Jetty yesterday or today.  That
> way we could have a shot
> >>at getting similar functionality implemented for
> tomcat just in time for
> >>v1.  How quickly do you think you could get these
> changes into jetty?
> >>Would they be in a jetty5.x version or would we
> have to move to jetty6?
> >>
> >>WRT the bigger picture .... it is still a big
> unknown if we can get
> >>similar information from tomcat.  Several folks
> have provided some hints
> >>here but I still can't find similar statistics
> available from within
> >>tomcat itself. So even if we could get this today
> for jetty, it might
> >>not be something we could implement for tomcat by
> v1.
> >>
> >>The bigger issue is this:
> >>1. The web console has this statistics view for
> jetty but it is
> >>hard-coded in the portlet itself for jetty alone.
> >>2. We'd like to provide equivalent capabilities
> for jetty and tomcat in
> >>the console.
> >>3. This requires a common management interface for
> the console to use
> >>that can be implemented by both jetty and tomcat.
> Aaron began creating
> >>this JSR77-like style stats management. I've been
> completing it and
> >>working on the jetty implementation with the goal
> to not lose function
> >>from what was already available for jetty in the
> console.
> >>4. We have to create the tomcat statistics
> management implementation
> >>that is conformant to the new structure.
> >>
> >>I'm currently at about 90% of #3 above with the
> issues mentioned in my
> >>original post on this thread.
> >>
> >>We could either:
> >>A. Leave well enough alone for v1 and deliver the
> existing function for
> >>jetty but not tomcat.
> >>B. Implement the new structure and partial Jetty
> implementation.  This
> >>would be slightly less information than we
> currently display to the user
> >>  but would get us on a better path.  We could
> include the tomcat
> >>version if time and capability of tomcat permit.
> >>C. Remove the web server statistics portlet
> entirely from the console
> >>for v1.
> >>
> >>Opinions?  Aaron, IIUC you wanted me to continue
> to pursue this for v1
> >>based upon your response to my earlier post.  Is
> that still your opinion?
> >>
>
>>http://mail-archives.apache.org/mod_mbox/geronimo-dev/200511.mbox/%3c4384806B.3040303-ihVZJaRskl1bRRN4PJnoQQ@public.gmane.org%3e
> >>
> >>Joe
> >>
> >>Jan Bartel wrote:
> >>
> >>>Joe,
> >>>
> >>>When do you need these statistics by?
> >>>We could certainly add methods like:
> >>>
> >>>getConnectionsDuration()
> >>>getConnectionsRequests()
> >>>getRequestsDuration()
> >>>
> >>>which would return an ever-increasing counter,
> and then you
> >>>would be able to infer the averages by using the
> getStatsOnMs()
> >>>method. That would be more in line with JSR77
> type stats for your
> >>>purposes I think.
> >>>
> >>>For Jetty6 we will be following more of the JSR77
> style stats
> >>>gathering. Your feedback on this would be useful
> so we can
> >>>ensure that Jetty6 slurps into Geronimo with
> minimum fuss.
> >>>
> >>>cheers
> >>>Jan
> >>>
> >>>Joe Bohn wrote:
> >>>
> >>>
> >>>>Jan,
> >>>>
> >>>>Thanks for the information and the offer of
> help.
> >>>>
> >>>>I'm not familiar with either Jetty's raw JMX
> stats or Jetty's JSR77
> >>>>implementation but I don't think I'm referring
> to either.
> >>>>
> >>>>What Aaron and I are trying to do is a
> JSR77-like implementation to
> >>>>deliver statistic information about the web
> container itself.
> >>>>
> >>>>The Web Console (in the Web Server portlet) is
> currently getting this
> >>>>type of information from
> org.mortbay.jetty.Server extension of
> >>>>org.mortbay.http.HttpServer.  The stats are
> things 
=== message truncated ===



	
		
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com

Re: Statistics Management and Jetty/Tomcat

Posted by Jeff Genender <jg...@apache.org>.

anita kulshreshtha wrote:
>      Tomcat provides the following statistics, listed
> here in the increasing order of their usefulness
> (IMHO). Unfortunately the most useful ones will
> require the most work.
> 1. Per host - These are not readily available. But can
> be computed from others. Per container statistics can
> be derived from these.
> 2. Per app - These will be the easiest and most
> meaningful to implement at this stage. 
> 3. Per servlet statistics - I am looking at the
> possibility of collecting these statistics in the
> current architecture. The current implementation does
> not wrap individual servlet in a Gbean. It appears (?)
> that we can not implement ServletStats (JSR 77).  
>     As a first step towards implementing 2 and later
> for 1,  I would like to expose the following
> attributes using TomcatContext. 
> 1. processingTime : The cumulative processing times of
> all servlets in this StandardContext
> 
> 2. startTime - The time this context was started.
> 3. startupTime - The time (in milliseconds) it took to
> start this context.
> 4. tldScanTime() - 
> 
> I need to make changes in TomcatWebAppContext. If it
> is OK with Jeff, I can file an issue and start working
> on the patch. 

By all means, please do ;-)

>      In the second stage, I would like to expose
> aggregated servlet statistics again via TomcatContext.
>      In the third stage these can be added up to give
> per host/container data.
>     This does not solve the immediate problem of not
> having tomcat's per server statitics to display on the
> console. 
> 
> Thanks
> Anita 
> 
> --- Jan Bartel <ja...@mortbay.com> wrote:
> 
>> Aaron,
>>
>> The package to look at with viewCVS at sourceforge
>> is here:
>>
>>
> http://cvs.sourceforge.net/viewcvs.py/jetty/Jetty/extra/jsr77/src/org/mortbay/jetty/servlet/jsr77/
>> The JSR77 stuff is instrumented by inserting an
>> o.m.j.s.jsr77.Jsr77Filter
>> in front of each servlet defined for a webapp. This
>> filter collects
>> the JSR77 servlet statistics. The stats are exposed
>> to JMX via the 
>> o.m.j.s.jsr77.jmx.Jsr77ServletHolderMBean at the
>> objectname expected
>> by the spec. The mbean interrogates the filter
>> instance to get the
>> stats. 
>>
>> To turn on JSR77 for Jetty, you: 
>>
>> 1) add these lines to the jetty.xml config file:
>>   <Set name="WebApplicationConfigurationClassNames">
>>     <Array type="java.lang.String">
>>      
>>
> <Item>org.mortbay.jetty.plus.PlusWebAppContext$Configuration</Item>
>>      
>>
> <Item>org.mortbay.jetty.servlet.JettyWebConfiguration</Item>
>>      
>>
> <Item>org.mortbay.jetty.servlet.jsr77.Configuration</Item>
>>     </Array>
>>   </Set>
>>
>> 2) run Jetty with jmx enabled:
>> java -Dmain.class=org.mortbay.xml.XmlConfiguration
>> -DSTART=extra/etc/start-plus.config -jar start.jar
>> extra/etc/jettyplus-jmx.xml
>>
>> Note that the above documented instructions are
>> given for the JettyPlus server,
>> but should work with the standard Jetty server so
>> long as the jsr77.jar built from the
>> $JETTY_HOME/extra/jsr77 package is on Jetty's
>> classpath.
>>
>> I gather that for the web console, you are looking
>> not only at the JSR77
>> servlet stats, but want to apply JSR77-type metrics
>> to the container-specific
>> stats as well? 
>>
>> cheers
>> Jan
>>
>> Aaron Mulder wrote:
>>> Jan, is there some sample code for acessing the
>> Jetty JSR-77 stats? 
>>> If you have some of that plumbing in place
>> already, and we can use
>>> what's there, that would be great.
>>>
>>> Next best might be looking at the code for your
>> JSR-77 implementation
>>> and seeing how you dig up the numbers so we can
>> try to do it the same
>>> way.  Is the code in CVSWeb or something where you
>> can just give us a
>>> URL to the JSR-77 implementation?
>>>
>>> Thanks,
>>>     Aaron
>>>
>>> On 11/30/05, Joe Bohn
>> <jo...@public.gmane.org>
>> wrote:
>>>> I'm afraid we might be out of time for these
>> changes in jetty.  I was
>>>> hoping to get this JSR77-like server performance
>> mgmt completed and
>>>> implemented for Jetty yesterday or today.  That
>> way we could have a shot
>>>> at getting similar functionality implemented for
>> tomcat just in time for
>>>> v1.  How quickly do you think you could get these
>> changes into jetty?
>>>> Would they be in a jetty5.x version or would we
>> have to move to jetty6?
>>>> WRT the bigger picture .... it is still a big
>> unknown if we can get
>>>> similar information from tomcat.  Several folks
>> have provided some hints
>>>> here but I still can't find similar statistics
>> available from within
>>>> tomcat itself. So even if we could get this today
>> for jetty, it might
>>>> not be something we could implement for tomcat by
>> v1.
>>>> The bigger issue is this:
>>>> 1. The web console has this statistics view for
>> jetty but it is
>>>> hard-coded in the portlet itself for jetty alone.
>>>> 2. We'd like to provide equivalent capabilities
>> for jetty and tomcat in
>>>> the console.
>>>> 3. This requires a common management interface for
>> the console to use
>>>> that can be implemented by both jetty and tomcat.
>> Aaron began creating
>>>> this JSR77-like style stats management. I've been
>> completing it and
>>>> working on the jetty implementation with the goal
>> to not lose function
>>> >from what was already available for jetty in the
>> console.
>>>> 4. We have to create the tomcat statistics
>> management implementation
>>>> that is conformant to the new structure.
>>>>
>>>> I'm currently at about 90% of #3 above with the
>> issues mentioned in my
>>>> original post on this thread.
>>>>
>>>> We could either:
>>>> A. Leave well enough alone for v1 and deliver the
>> existing function for
>>>> jetty but not tomcat.
>>>> B. Implement the new structure and partial Jetty
>> implementation.  This
>>>> would be slightly less information than we
>> currently display to the user
>>>>  but would get us on a better path.  We could
>> include the tomcat
>>>> version if time and capability of tomcat permit.
>>>> C. Remove the web server statistics portlet
>> entirely from the console
>>>> for v1.
>>>>
>>>> Opinions?  Aaron, IIUC you wanted me to continue
>> to pursue this for v1
>>>> based upon your response to my earlier post.  Is
>> that still your opinion?
>>> http://mail-archives.apache.org/mod_mbox/geronimo-dev/200511.mbox/%3c4384806B.3040303-ihVZJaRskl1bRRN4PJnoQQ@public.gmane.org%3e
>>>> Joe
>>>>
>>>> Jan Bartel wrote:
>>>>
>>>>> Joe,
>>>>>
>>>>> When do you need these statistics by?
>>>>> We could certainly add methods like:
>>>>>
>>>>> getConnectionsDuration()
>>>>> getConnectionsRequests()
>>>>> getRequestsDuration()
>>>>>
>>>>> which would return an ever-increasing counter,
>> and then you
>>>>> would be able to infer the averages by using the
>> getStatsOnMs()
>>>>> method. That would be more in line with JSR77
>> type stats for your
>>>>> purposes I think.
>>>>>
>>>>> For Jetty6 we will be following more of the JSR77
>> style stats
>>>>> gathering. Your feedback on this would be useful
>> so we can
>>>>> ensure that Jetty6 slurps into Geronimo with
>> minimum fuss.
>>>>> cheers
>>>>> Jan
>>>>>
>>>>> Joe Bohn wrote:
>>>>>
>>>>>
>>>>>> Jan,
>>>>>>
>>>>>> Thanks for the information and the offer of
>> help.
>>>>>> I'm not familiar with either Jetty's raw JMX
>> stats or Jetty's JSR77
>>>>>> implementation but I don't think I'm referring
>> to either.
>>>>>> What Aaron and I are trying to do is a
>> JSR77-like implementation to
>>>>>> deliver statistic information about the web
>> container itself.
>>>>>> The Web Console (in the Web Server portlet) is
>> currently getting this
>>>>>> type of information from
>> org.mortbay.jetty.Server extension of
>>>>>> org.mortbay.http.HttpServer.  The stats are
>> things 
> === message truncated ===
> 
> 
> 
> 	
> 		
> __________________________________ 
> Yahoo! Mail - PC Magazine Editors' Choice 2005 
> http://mail.yahoo.com