Hello David,

Here is a web page that summarizes all the CXF response time of one
cluster node of a live application I work on. It will show you real
data.

That are all the informations we need. This JSP page (cxf.jsp) is just
used for troubleshooting ; we use Hyperic for monitoring with the
attached plugin (cxf-plugin.xml).

Hyperic plugin for CXF :
http://xebia-france.googlecode.com/svn/jmx/jmx-demo/trunk/src/main/hyperic/cxf-plugin.xml
CXF JMX metrics page :
http://xebia-france.googlecode.com/svn/jmx/jmx-demo/trunk/src/main/webapp/tools/jmx/cxf.jsp

Hope this helps,

Cyrille
--
Cyrille Le Clerc
[email protected]


On Fri, Mar 12, 2010 at 7:42 PM, David Valeri <[email protected]> wrote:
> I've got CXF running in an OSGi container and managing its own Jetty instance 
> rather than using the container's HTTP service.  I have JMX enabled on CXF 
> per the instructions in the documentation.
>
> I'm seeing the following MBeans in JConsole:
>
> org.apache.cxf.Bus
> org.apache.cxf.Bus.Service.Endpoint
> org.apache.cxf.WorkQueueManager
> org.apache.cxf.transport.http_jetty.jettyhttphandler
>
> I'm not seeing a bean for CXFJettySslSocketConnector because I am deploying a 
> custom connector and the bean is being registered by Jetty based on my custom 
> class name.
>
> In these beans, I am not seeing much that is indicative of the runtime health 
> of the services running in CXF.  The Jetty connector and the optional 
> statistics handler, which I have enabled, collect performance metrics that 
> can be used to gauge the overall health of all services running on a 
> particular port and the CXF metrics allow one to gauge if the services 
> started appropriately.
>
> The docs mention a CounterRepository that stores max response time.  Is there 
> anything else in CXF worth monitoring that can indicate runtime health?
>
> Thank you in advance for any help!
>
<?xml version="1.0"?>
   <!--                                                                              -->
   <!--   Copyright 2009 Xebia and the original author or authors.                   -->
   <!--                                                                              -->
   <!--   Licensed under the Apache License, Version 2.0 (the "License");            -->
   <!--   you may not use this file except in compliance with the License.           -->
   <!--   You may obtain a copy of the License at                                    -->
   <!--                                                                              -->
   <!--       http://www.apache.org/licenses/LICENSE-2.0                             -->
   <!--                                                                              -->
   <!--   Unless required by applicable law or agreed to in writing, software        -->
   <!--   distributed under the License is distributed on an "AS IS" BASIS,          -->
   <!--   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   -->
   <!--   See the License for the specific language governing permissions and        -->
   <!--   limitations under the License.                                             -->
   <!--                                                                              -->
   <!--   Hyperic jvm-plugin extensions for CXF metrics                              -->
   <!--                                                                              -->
<plugin name="cxf">
   <service name="CXF Endpoint" server="Sun JVM" version="1.5">

      <property name="OBJECT_NAME" value="org.apache.cxf:type=Performance.Counter.Server,path=*,bus.id=*,service=*,port=*,operation=*" />

      <!-- Don't add service in autoinventory name to limit the name length -->
      <property name="AUTOINVENTORY_NAME" value="%serverName% %path% %port% %operation% CXF Endpoint" />

      <plugin type="autoinventory" />

      <config>
         <option name="path" description="Path of the web application" default="/" />
         <option name="bus.id" description="ID of the CXF Bus" />
         <option name="service" description="Name of the Service" />
         <option name="port" description="Name of the Port" />
         <option name="operation" description="Name of the Operation" />
      </config>

      <filter name="template" value="${OBJECT_NAME}:${alias}" />

      <metric name="Availability" indicator="true" />
      <metric name="Number of Invocations" alias="NumInvocations" indicator="true" template="${OBJECT_NAME}:${alias}" units="none"
         type="trendsup" />
      <metric name="Total Handling Time" alias="TotalHandlingTime" indicator="true" template="${OBJECT_NAME}:${alias}" units="mu"
         type="trendsup" />

      <metric name="Num Checked Application Faults" alias="NumCheckedApplicationFaults" indicator="true" template="${OBJECT_NAME}:${alias}"
         units="none" type="trendsup" />
      <metric name="Num Logical Runtime Faults" alias="NumLogicalRuntimeFaults" indicator="true" template="${OBJECT_NAME}:${alias}"
         units="none" type="trendsup" />
      <metric name="Num Runtime Faults" alias="NumRuntimeFaults" indicator="true" template="${OBJECT_NAME}:${alias}" units="none"
         type="trendsup" />
      <metric name="Num UnChecked Application Faults" alias="NumUnCheckedApplicationFaults" indicator="true" template="${OBJECT_NAME}:${alias}"
         units="none" type="trendsup" />
   </service>

   <service name="CXF Client" server="Sun JVM" version="1.5">
      <property name="OBJECT_NAME" value="org.apache.cxf:type=Performance.Counter.Client,path=*,bus.id=*,service=*,port=*,operation=*" />

      <!-- Don't add service in autoinventory name to limit the name length -->
      <property name="AUTOINVENTORY_NAME" value="%serverName% %path% %port% %operation% CXF Client" />

      <plugin type="autoinventory" />

      <config>
         <option name="path" description="Path of the web application" default="/" />
         <option name="bus.id" description="ID of the CXF Bus" />
         <option name="service" description="Name of the Service" />
         <option name="port" description="Name of the Port" />
         <option name="operation" description="Name of the Operation" />
      </config>

      <filter name="template" value="${OBJECT_NAME}:${alias}" />

      <metric name="Availability" indicator="true" />
      <metric name="Number of Invocations" alias="NumInvocations" indicator="true" template="${OBJECT_NAME}:${alias}" units="none"
         type="trendsup" />
      <metric name="Total Handling Time" alias="TotalHandlingTime" indicator="true" template="${OBJECT_NAME}:${alias}" units="mu"
         type="trendsup" />

      <metric name="Num Checked Application Faults" alias="NumCheckedApplicationFaults" indicator="true" template="${OBJECT_NAME}:${alias}"
         units="none" type="trendsup" />
      <metric name="Num Logical Runtime Faults" alias="NumLogicalRuntimeFaults" indicator="true" template="${OBJECT_NAME}:${alias}"
         units="none" type="trendsup" />
      <metric name="Num Runtime Faults" alias="NumRuntimeFaults" indicator="true" template="${OBJECT_NAME}:${alias}" units="none"
         type="trendsup" />
      <metric name="Num UnChecked Application Faults" alias="NumUnCheckedApplicationFaults" indicator="true" template="${OBJECT_NAME}:${alias}"
         units="none" type="trendsup" />
   </service>

</plugin>

Reply via email to