<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 - JASMINe
 - Copyright (C) 2012 Bull S.A.S.
 - Contact: jasmine@ow2.org
 -
 - This library is free software; you can redistribute it and/or
 - modify it under the terms of the GNU Lesser General Public
 - License as published by the Free Software Foundation; either
 - version 2.1 of the License, or any later version.
 -
 - This library is distributed in the hope that it will be useful,
 - but WITHOUT ANY WARRANTY; without even the implied warranty of
 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 - Lesser General Public License for more details.
 -
 - You should have received a copy of the GNU Lesser General Public
 - License along with this library; if not, write to the Free Software
 - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 - USA
 -
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 - $Id$
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
<probe-config xmlns="org.ow2.jasmine.probe:probe-config"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="org.ow2.jasmine.probe:probe-config
                                  http://jasmine.ow2.org/xsds/probe-config-1.5.xsd">


  <!-- examples of output -->

  <output name="stdio" type="console" default="true" />
  <output name="log1" type="file">
    <property key="path" value="log1.csv"/>
  </output>
  <output name="log2" type="file">
    <property key="path" value="/tmp/log2.csv"/>
  </output>
  <output name="eventswitch" type="mule">
    <property key="url" value="tcp://localhost:18564/JProbe"/>
  </output>

  <!-- examples of targets -->

  <!-- the standalone jasmine-probe server -->
  <target name="agent0" type="jmx">
    <property key="url" value="service:jmx:rmi:///jndi/rmi://localhost:4099/jrmpconnector_jasmine-probe"/>
  </target>

  <!-- the jasmine-monitoring server -->
  <target name="jasmine" type="jmx">
    <property key="url" value="service:jmx:rmi:///jndi/rmi://localhost:1199/jrmpconnector_jasmine-monitoring"/>
  </target>

  <!-- a jonas server with default configuration -->
  <target name="jonas" type="jmx">
    <property key="url" value="service:jmx:rmi:///jndi/rmi://localhost:1099/jrmpconnector_jonas"/>
  </target>

  <!-- a jonas server with secured jmx -->
  <target name="sec_jonas" type="jmx">
    <property key="url" value="service:jmx:rmi:///jndi/rmi://localhost:1099/jrmpconnector_jonas"/>
    <property key="user" value="jonas"/>
    <property key="password" value="jonas"/>
  </target>

  <!-- examples of indicators -->

  <indicator name="1K" type="constant">
    <property key="type" value="int"/>
    <property key="value" value="1024"/>
  </indicator>

  <indicator name="1_000_000" type="constant">
    <property key="type" value="int"/>
    <property key="value" value="1000000"/>
  </indicator>

  <!-- indicator jmx with composite name -->
  <indicator name="memory" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="java.lang:type=Memory"/>
    <property key="attr" value="HeapMemoryUsage"/>
  </indicator>

  <!-- jmx indicator using fragments -->
  <indicator name="HeapMemoryUsage_used" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="java.lang:type=Memory"/>
    <property key="attr" value="HeapMemoryUsage.used"/>
  </indicator>
  <indicator name="HeapMemoryUsage_committed" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="java.lang:type=Memory"/>
    <property key="attr" value="HeapMemoryUsage.committed"/>
  </indicator>
  <indicator name="NonHeapMemoryUsage_used" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="java.lang:type=Memory"/>
    <property key="attr" value="NonHeapMemoryUsage.used"/>
  </indicator>
  <indicator name="NonHeapMemoryUsage_committed" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="java.lang:type=Memory"/>
    <property key="attr" value="NonHeapMemoryUsage.committed"/>
  </indicator>

  <!-- jmx indicator with pattern mbean -->
  <indicator name="thread-count" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="*:j2eeType=JVM,*"/>
    <property key="attr" value="allThreadsCount"/>
  </indicator>

  <!-- jmx indicator with pattern mbean -->
  <indicator name="allThreadsCount" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JVM,*"/>
    <property key="attr" value="allThreadsCount"/>
  </indicator>

  <!--  jmx indicator with GC MBean and all attributes -->
  <!--  test for attributes with complex structure using CompositeData and TabularData -->
  <indicator name="gc" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="java.lang:type=GarbageCollector,name=PS MarkSweep"/>
    <property key="attr" value="all"/>
  </indicator>

  <!--  jmx indicator with GC MBean and attribute fragment corresponding to memoryUsageAfterCG-->
  <!--  test for using fragment names in attributes list -->
  <indicator name="gcAfterGC" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="java.lang:type=GarbageCollector,name=PS MarkSweep"/>
    <property key="attr" value="LastGcInfo.memoryUsageAfterGc"/>
  </indicator>

  <!-- indicator df -->
  <indicator name="df-sda1" type="df">
    <property key="disk" value="sda1"/>
  </indicator>

  <!-- indicator lewys with several resources -->
  <indicator name="lewys-memory" type="lewys">
    <property key="cmd" value="memory"/>
    <property key="resources" value="MemTotal,MemFree,SwapTotal,SwapFree" />
  </indicator>

  <!-- indicator lewys with several resources -->
  <indicator name="lewys-cpu" type="lewys">
    <property key="cmd" value="cpu"/>
    <property key="resources" value="cpu idle,cpu nice,cpu user,cpu kernel" />
  </indicator>

  <!-- indicator lewys disk -->
  <indicator name="lewys-disk" type="lewys">
    <property key="cmd" value="disk"/>
    <property key="resources" value="sda1 reads issued,sda1 reads merged,sda1 read sectors,sda1 read time in ms"/>
  </indicator>

  <probe period="10" status="stopped">
    <output>stdio</output>
    <indicator>lewys-disk</indicator>
  </probe>

  <!-- indicator jmx with composite name specified -->
  <indicator name="used-memory" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="java.lang:type=Memory"/>
    <property key="attr" value="HeapMemoryUsage.used"/>
  </indicator>

  <indicator name="used-nh-memory" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="java.lang:type=Memory"/>
    <property key="attr" value="NonHeapMemoryUsage.used"/>
  </indicator>

  <!-- indicator correlate -->
  <indicator name="used-total-memory" type="correlate">
    <property key="op" value="add"/>
    <source>used-memory</source>
    <source>used-nh-memory</source>
  </indicator>

  <!-- indicator correlate with a constant -->
  <indicator name="used-memory-kb" type="correlate">
    <property key="op" value="div"/>
    <source>used-memory</source>
    <source>1K</source>
  </indicator>

  <!-- indicator derived -->
  <indicator name="delta-threads" type="derived">
    <property key="op" value="delta"/>
    <source>thread-count</source>
  </indicator>


  <!-- examples of probes -->

  <probe id="mem" period="5" status="stopped">
    <indicator>memory</indicator>
  </probe>

  <probe id="mems" period="5" status="stopped">
    <indicator>used-memory</indicator>
    <indicator>used-nh-memory</indicator>
    <indicator>used-total-memory</indicator>
  </probe>

  <probe period="5" status="stopped">
    <indicator>used-memory-kb</indicator>
  </probe>

  <probe period="5" status="stopped">
    <indicator>used-memory</indicator>
  </probe>

  <probe id="sda1" period="5" status="stopped">
    <indicator>df-sda1</indicator>
  </probe>

  <!-- probe with 2 indicators -->
  <probe id="p2indic" period="5" status="stopped">
    <indicator>df-sda1</indicator>
    <indicator>used-memory</indicator>
  </probe>

  <probe id="lewysmemory" period="5" status="stopped">
    <output>stdio</output>
    <indicator>lewys-memory</indicator>
  </probe>

  <probe id="lewyscpu" period="5" status="stopped">
    <output>stdio</output>
    <output>eventswitch</output>
    <indicator>lewys-cpu</indicator>
  </probe>

  <probe id="delta" period="5"  status="stopped">
    <output>stdio</output>
    <output>eventswitch</output>
    <indicator>delta-threads</indicator>
  </probe>


  <!--  jmx indicator with GC MBean and attribute fragment corresponding to memoryUsageAfterCG-->
  <!--  test for using fragment names in attributes list -->
  <indicator name="afterGCmax" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="java.lang:type=GarbageCollector,name=PS MarkSweep"/>
    <property key="attr" value="LastGcInfo.memoryUsageAfterGc[PS Perm Gen].value.max"/>
  </indicator>

  <probe id="GC" period="5" status="stopped">
    <output>stdio</output>
    <output>eventswitch</output>
    <indicator>afterGCmax</indicator>
    <!--
    <indicator>gc</indicator>
    <indicator>gcAfterGC</indicator>
    -->
  </probe>


  <!-- indicator jmx with fragment names -->
  <indicator name="ci" type="jmx">
    <property key="target" value="agent0"/>
    <property key="mbean" value="jasmine:dest=open-manager"/>
    <property key="attr" value="Ons"/>
    <property key="attr" value="Elems"/>
    <property key="attr" value="Ons,Elems,Longs[0],Z.c[1]"/>
  </indicator>

  <probe id="CI" period="5" status="stopped">
    <output>stdio</output>
    <indicator>ci</indicator>
  </probe>


  <!--  jmx indicator for monitoring JasmineProbe outers -->
  <indicator name="jpouter" type="jmx">
    <property key="mbean" value="jasmine:type=jpouter,*"/>
    <property key="attr" value="QueueSize,MaxQueueSize,NbRejected,NbInserted,NbRetrieved"/>
  </indicator>

  <probe id="jpmanage" period="5" status="stopped">
    <indicator>jpouter</indicator>
    <output>stdio</output>
    <!--
    <output>eventswitch</output>
     -->
    <target>agent0</target>
  </probe>

  <!-- exemple of merge -->

  <indicator name="imerged" type="merge">
    <property key="op" value="max" />
    <property key="field" value="attr"/>
    <source>memory</source>
  </indicator>

  <probe id="merged" period="5" status="stopped">
    <indicator>imerged</indicator>
  </probe>

  <!-- poll -ent emulation (no aggregation) -->

  <indicator name="sizes" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=EntityBean,*"/>
    <property key="attr" value="cacheSize,poolSize,minPoolSize,maxCacheSize"/>
  </indicator>
  <indicator name="usedInTx" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=EntityBean,*"/>
    <property key="attr" value="entityCounters[0]"/>
  </indicator>
  <indicator name="usedOutTx" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=EntityBean,*"/>
    <property key="attr" value="entityCounters[1]"/>
  </indicator>
  <indicator name="unusedReady" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=EntityBean,*"/>
    <property key="attr" value="entityCounters[2]"/>
  </indicator>
  <indicator name="markedRemoved" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=EntityBean,*"/>
    <property key="attr" value="entityCounters[3]"/>
  </indicator>
  <indicator name="pkNumber" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=EntityBean,*"/>
    <property key="attr" value="entityCounters[4]"/>
  </indicator>
  <indicator name="passivated" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=EntityBean,*"/>
    <property key="attr" value="entityCounters[5]"/>
  </indicator>

  <probe id="poll-ent" period="5" status="stopped">
    <indicator>sizes</indicator>
    <indicator>usedInTx</indicator>
    <indicator>usedOutTx</indicator>
    <indicator>unusedReady</indicator>
    <indicator>markedRemoved</indicator>
    <indicator>pkNumber</indicator>
    <indicator>passivated</indicator>
  </probe>


  <!-- poll -ds emulation (with no aggregate) -->

  <indicator name="servedOpen" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="servedOpen"/>
  </indicator>
  <indicator name="jdbcMaxConnPool" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="jdbcMaxConnPool"/>
  </indicator>
  <indicator name="currentOpen" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="currentOpen"/>
  </indicator>
  <indicator name="busyMax" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="busyMax"/>
  </indicator>
  <indicator name="waitersHighRecent" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="waitersHighRecent"/>
  </indicator>
  <indicator name="waitingHighRecent" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="waitingHighRecent"/>
  </indicator>
  <indicator name="meanWaitTime" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="meanWaitTime"/>
  </indicator>
  <indicator name="rejectedOpen" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="rejectedOpen"/>
  </indicator>
  <indicator name="connectionLeaks" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JDBCDataSource,*"/>
    <property key="attr" value="connectionLeaks"/>
  </indicator>
  <indicator name="servedRate" type="derived" scale="1000">
    <property key="op" value="rate"/>
    <source>servedOpen</source>
  </indicator>
  <probe id="poll-ds" period="5" status="stopped">
    <indicator>servedRate</indicator>
    <indicator>servedOpen</indicator>
    <indicator>jdbcMaxConnPool</indicator>
    <indicator>currentOpen</indicator>
    <indicator>busyMax</indicator>
    <indicator>waitersHighRecent</indicator>
    <indicator>waitingHighRecent</indicator>
    <indicator>meanWaitTime</indicator>
    <indicator>rejectedOpen</indicator>
    <indicator>connectionLeaks</indicator>
  </probe>

  <!-- poll-jcacf emulation -->
  <indicator name="jcacfServedOpen" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="servedOpen"/>
  </indicator>
  <indicator name="jcacfCurrentOpen" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,name=jdbc_1,*"/>
    <property key="attr" value="currentOpened"/>
  </indicator>
  <indicator name="jcacfCurrentBusy" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="currentBusy"/>
  </indicator>
  <indicator name="jcacfCurrentWaiters" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="currentWaiters"/>
  </indicator>
  <indicator name="jcacfMaxSize" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="maxSize"/>
  </indicator>
  <indicator name="jcacfBusyMax" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="busyMax"/>
  </indicator>
  <indicator name="jcacfWaitersHighRecent" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="waitersHighRecent"/>
  </indicator>
  <indicator name="jcacfWaitingHighRecent" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="waitingHighRecent"/>
  </indicator>
  <indicator name="jcacfRejectedOpen" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="rejectedOpen"/>
  </indicator>
  <indicator name="jcacfConnectionLeaks" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JCAConnectionFactory,*"/>
    <property key="attr" value="connectionLeaks"/>
  </indicator>
  <indicator name="jcacfServedRate" type="derived">
    <property key="op" value="rate"/>
    <source>jcacfServedOpen</source>
  </indicator>

  <probe id="poll-jcacf" period="5" status="stopped">
<!--
    <indicator>jcacfServedRate</indicator>
    <indicator>jcacfServedOpen</indicator>
-->
    <indicator>jcacfCurrentOpen</indicator>
    <indicator>jcacfCurrentBusy</indicator>
    <indicator>jcacfCurrentWaiters</indicator>
    <indicator>jcacfMaxSize</indicator>
<!--
    <indicator>jcacfBusyMax</indicator>
    <indicator>jcacfWaitersHighRecent</indicator>
    <indicator>jcacfWaitingHighRecent</indicator>
    <indicator>jcacfRejectedOpen</indicator>
    <indicator>jcacfConnectionLeaks</indicator>
-->
  </probe>


  <!-- poll -cpusun emulation  -->
  <indicator name="_procnb" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="java.lang:type=OperatingSystem"/>
    <property key="attr" value="AvailableProcessors"/>
  </indicator>
  <indicator name="_cputime" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="java.lang:type=OperatingSystem"/>
    <property key="attr" value="ProcessCpuTime"/>
  </indicator>
  <indicator name="currentCpuTime" type="derived" scale="1000000">
    <property key="op" value="delta"/>
    <source>_cputime</source>
  </indicator>
  <indicator name="processCpuTime" type="correlate">
    <property key="op" value="div"/>
    <source>_cputime</source>
    <source>1_000_000</source>
  </indicator>
  <indicator name="_rate" type="derived" scale="1000">
    <property key="op" value="rate"/>
    <source>_cputime</source>
  </indicator>
  <indicator name="currentCpuLoad" type="correlate" scale="10000">
    <property key="op" value="div"/>
    <source>_rate</source>
    <source>_procnb</source>
  </indicator>
  <probe id="poll-cpusun" period="5" status="stopped">
    <!--
    <indicator>processCpuTime</indicator>
    <indicator>currentCpuTime</indicator>
     -->
    <indicator>currentCpuLoad</indicator>
  </probe>


  <!-- poll -tx emulation (without slope operator) -->

  <indicator name="pending" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JTAResource,*"/>
    <property key="attr" value="totalCurrentTransactions"/>
  </indicator>
  <indicator name="commit" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JTAResource,*"/>
    <property key="attr" value="totalCommittedTransactions"/>
  </indicator>
  <indicator name="rollback" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JTAResource,*"/>
    <property key="attr" value="totalRolledbackTransactions"/>
  </indicator>
  <indicator name="timedOut" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:j2eeType=JTAResource,*"/>
    <property key="attr" value="totalExpiredTransactions"/>
  </indicator>
  <indicator name="_total" type="correlate">
    <property key="op" value="add"/>
    <source>commit</source>
    <source>rollback</source>
  </indicator>
  <indicator name="commitRatio" type="correlate">
    <property key="op" value="percent"/>
    <source>commit</source>
    <source>_total</source>
  </indicator>
  <indicator name="_deltaCommit" type="derived">
    <property key="op" value="delta" />
    <source>commit</source>
  </indicator>
  <indicator name="_deltaRollback" type="derived">
    <property key="op" value="delta" />
    <source>rollback</source>
  </indicator>
  <indicator name="txRate" type="derived">
    <property key="op" value="rate"/>
    <source>commit</source>
  </indicator>
  <indicator name="_deltaTotal" type="correlate">
    <property key="op" value="add"/>
    <source>_deltaCommit</source>
    <source>_deltaRollback</source>
  </indicator>
  <indicator name="currentCommitRatio" type="correlate">
    <property key="op" value="percent"/>
    <source>_deltaCommit</source>
    <source>_deltaTotal</source>
  </indicator>
  <probe id="poll-tx" period="5" status="stopped">
    <indicator>pending</indicator>
    <indicator>commit</indicator>
    <indicator>rollback</indicator>
    <indicator>timedOut</indicator>
    <indicator>commitRatio</indicator>
    <indicator>txRate</indicator>
    <indicator>currentCommitRatio</indicator>
  </probe>

  <!-- poll http -->
  <indicator name="_activeSessions" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=Manager,*"/>
    <property key="attr" value="activeSessions"/>
  </indicator>
  <indicator name="_sessionCounter" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=Manager,*"/>
    <property key="attr" value="sessionCounter"/>
  </indicator>
  <indicator name="_requestCount" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=GlobalRequestProcessor,*"/>
    <property key="attr" value="requestCount"/>
  </indicator>
  <indicator name="_errorCount" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=GlobalRequestProcessor,*"/>
    <property key="attr" value="errorCount"/>
  </indicator>
  <indicator name="_bytesSent" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=GlobalRequestProcessor,*"/>
    <property key="attr" value="bytesSent"/>
  </indicator>
  <indicator name="_bytesReceived" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=GlobalRequestProcessor,*"/>
    <property key="attr" value="bytesReceived"/>
  </indicator>
  <indicator name="_maxTime" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=GlobalRequestProcessor,*"/>
    <property key="attr" value="maxTime"/>
  </indicator>
  <indicator name="_processingTime" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=GlobalRequestProcessor,*"/>
    <property key="attr" value="processingTime"/>
  </indicator>
  <indicator name="_currentThreadsBusy" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value="*:type=ThreadPool,*"/>
    <property key="attr" value="currentThreadsBusy"/>
  </indicator>
  <indicator name="sessions" type="aggregate">
    <property key="op" value="sum"/>
    <source>_activeSessions</source>
  </indicator>
  <indicator name="sessionCount" type="aggregate">
    <property key="op" value="sum"/>
    <source>_sessionCounter</source>
  </indicator>
  <indicator name="requests" type="aggregate">
    <property key="op" value="sum"/>
    <source>_requestCount</source>
  </indicator>
  <indicator name="errors" type="aggregate">
    <property key="op" value="sum"/>
    <source>_errorCount</source>
  </indicator>
  <indicator name="bytesSent" type="aggregate">
    <property key="op" value="sum"/>
    <source>_bytesSent</source>
  </indicator>
  <indicator name="bytesReceived" type="aggregate">
    <property key="op" value="sum"/>
    <source>_bytesReceived</source>
  </indicator>
  <indicator name="processingTime" type="aggregate">
    <property key="op" value="sum"/>
    <source>_processingTime</source>
  </indicator>
  <indicator name="maxTime" type="aggregate">
    <property key="op" value="max"/>
    <source>_maxTime</source>
  </indicator>
  <indicator name="rate" type="derived">
    <property key="op" value="rate"/>
    <source>requests</source>
  </indicator>
  <indicator name="bytesSentRate" type="derived">
    <property key="op" value="rate"/>
    <source>bytesSent</source>
  </indicator>
  <indicator name="bytesReceivedRate" type="derived">
    <property key="op" value="rate"/>
    <source>bytesReceived</source>
  </indicator>
  <indicator name="meanTime" type="slope">
    <source>processingTime</source>
    <source>requests</source>
  </indicator>
  <indicator name="busyThreads" type="aggregate">
    <property key="op" value="sum"/>
    <source>_currentThreadsBusy</source>
  </indicator>
  <probe id="poll-http" period="5" status="stopped">
    <indicator>sessions</indicator>
    <indicator>sessionCount</indicator>
    <indicator>requests</indicator>
    <indicator>errors</indicator>
    <indicator>bytesSent</indicator>
    <indicator>bytesReceived</indicator>
    <indicator>bytesSentRate</indicator>
    <indicator>bytesReceivedRate</indicator>
    <indicator>rate</indicator>
    <indicator>maxTime</indicator>
    <indicator>processingTime</indicator>
    <indicator>meanTime</indicator>
    <indicator>busyThreads</indicator>
  </probe>

  <!-- probes to monitor target jasmine -->
  <probe id="cpu" period="5" status="stopped">
    <indicator>currentCpuLoad</indicator>
  </probe>

  <probe id="memory" period="5" status="stopped">
    <indicator>HeapMemoryUsage_used</indicator>
    <indicator>HeapMemoryUsage_committed</indicator>
    <indicator>NonHeapMemoryUsage_used</indicator>
    <indicator>NonHeapMemoryUsage_committed</indicator>
  </probe>

  <probe id="threads" period="5" status="stopped">
    <indicator>allThreadsCount</indicator>
  </probe>

  <probe id="eventswitch" period="5" status="stopped">
    <indicator>AverageExecutionTime</indicator>
    <indicator>MinExecutionTime</indicator>
    <indicator>MaxExecutionTime</indicator>
    <indicator>MaxQueueSize</indicator>
  </probe>

  <indicator name="AverageExecutionTime" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value='Mule.JASMINe_Event_Switch:type=org.mule.Component,name="JProbe_dispatcher"'/>
    <property key="attr" value="AverageExecutionTime"/>
  </indicator>

  <indicator name="MinExecutionTime" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value='Mule.JASMINe_Event_Switch:type=org.mule.Component,name="JProbe_dispatcher"'/>
    <property key="attr" value="MinExecutionTime"/>
  </indicator>

  <indicator name="MaxExecutionTime" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value='Mule.JASMINe_Event_Switch:type=org.mule.Component,name="JProbe_dispatcher"'/>
    <property key="attr" value="MaxExecutionTime"/>
  </indicator>

  <indicator name="MaxQueueSize" type="jmx">
    <property key="target" value="jasmine"/>
    <property key="mbean" value='Mule.JASMINe_Event_Switch:type=org.mule.Component,name="JProbe_dispatcher"'/>
    <property key="attr" value="MaxQueueSize"/>
  </indicator>

</probe-config>
