Created
April 10, 2009 19:56
-
-
Save erickedji/93264 to your computer and use it in GitHub Desktop.
Mule plugin for HypericHQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version="1.0"?> | |
| <!DOCTYPE plugin [ | |
| <!ENTITY process-metrics SYSTEM "/pdk/plugins/process-metrics.xml">] | |
| > | |
| <!-- | |
| Plugin Hyperic pour la découverte automatique et l'exposition de statistiques sur les serveurs Mule | |
| Eric KEDJI <eric.kedji@gmail.com> | |
| NEOXIA Maroc | |
| TODO: Ajouter les descriptions aux différentes propriétés (affichées dans l'UI de HypericHQ) | |
| --> | |
| <plugin package="org.hyperic.hq.plugin.mule" name="mule"> | |
| <classpath> | |
| <include name="pdk/lib/mx4j"/> | |
| </classpath> | |
| <filter name="template" value="${OBJECT_NAME}:${alias}"/> | |
| <server name="Mule" version="2.2.0"> | |
| <config> | |
| <option name="jmx.url" description="URL JMX du MBeanServer" default="service:jmx:rmi:///jndi/rmi://localhost:1099/server"/> | |
| <option name="jmx.username" description="Utilisateur JMX" optional="true" default=""/> | |
| <option name="jmx.password" description="Mot de passe JMX" optional="true" default="" type="secret"/> | |
| <!-- | |
| Surveiller le processus lancé avec l'exécutable `javaw' et contenant | |
| l'argument de ligne de commande `mule' (c'est ainsi qu'eclipse lance | |
| Mule). | |
| --> | |
| <option name="process.query" description="PTQL for Java Process" default="State.Name.sw=java,Args.*.ct=mule"/> | |
| <!-- Domaine JMX associé à votre serveur Mule. Disponible dans la console MX4J de Mule, | |
| définissable dans conf/wrapper.conf et sur la ligne de commande --> | |
| <option name="domain" description="Server ID" default="Mule.SOAInternshipMuleServer"/> | |
| </config> | |
| <property name="HAS_BUILTIN_SERVICES" value="true"/> | |
| <!-- Sur la ligne de commande de lancement effectif de Mule, la propriété | |
| 'mule.home' est définie, et a pour valeur le répertoire d'installation du | |
| serveur Mule. La ligne suivante permet à Hyperic de lire cette valeur. | |
| --> | |
| <property name="PROC_HOME_PROPERTY" value="mule.home"/> | |
| <!-- Insertion des plugins génériques de détection, mesure, contrôle et suivi de configuration/log pour JMX --> | |
| <plugin type="autoinventory" class="org.hyperic.hq.product.jmx.MxServerDetector"/> | |
| <plugin type="measurement" class="org.hyperic.hq.product.jmx.MxMeasurementPlugin"/> | |
| <plugin type="control" class="org.hyperic.hq.product.jmx.MxControlPlugin"/> | |
| <plugin type="log_track" class="org.hyperic.hq.product.Log4JLogTrackPlugin"/> | |
| <property name="DEFAULT_LOG_FILE" value="logs/mule.log"/> | |
| <plugin type="config_track" class="org.hyperic.hq.product.ConfigFileTrackPlugin"/> | |
| <property name="DEFAULT_CONFIG_FILE" value="conf/log4j.properties,conf/wrapper.conf"/> | |
| <!-- Information générales sur le serveur --> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.MuleContext,name=MuleServerInfo"/> | |
| <properties> | |
| <property name="MaxMemory"/> | |
| <property name="OsVersion"/> | |
| <property name="ServerId"/> | |
| <property name="StartTime"/> | |
| <property name="Stopped"/> | |
| <property name="Vendor"/> | |
| <property name="Version"/> | |
| <property name="Copyright"/> | |
| <property name="Version"/> | |
| <property name="BuildDate"/> | |
| <property name="BuildNumber"/> | |
| <property name="ConfigBuilderClassName"/> | |
| <property name="Copyright"/> | |
| <property name="FreeMemory"/> | |
| <property name="HostIp"/> | |
| <property name="Hostname"/> | |
| <property name="Initialised"/> | |
| <property name="InstanceId"/> | |
| <property name="JdkVersion"/> | |
| </properties> | |
| <!-- Options de configuration générale du serveur Mule --> | |
| <service name="Options de configuration globale"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Configuration,name=GlobalConfiguration"/> | |
| <properties> | |
| <property name="Encoding"/> | |
| <property name="Synchronous"/> | |
| <property name="SynchronousEventTimeout"/> | |
| <property name="TransactionTimeout"/> | |
| <property name="WorkingDirectory"/> | |
| </properties> | |
| </service> | |
| <!-- Statistiques globales du serveur Mule --> | |
| <service name="Statistiques globales"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Statistics,name=AllStatistics"/> | |
| <properties> | |
| <property name="Encoding"/> | |
| <property name="Synchronous"/> | |
| <property name="SynchronousEventTimeout"/> | |
| <property name="TransactionTimeout"/> | |
| <property name="WorkingDirectory"/> | |
| </properties> | |
| <metric name="Enabled" template="${OBJECT_NAME}:Enabled" indicator="true"/> | |
| </service> | |
| <metric name="Availability" template="sigar:Type=ProcState,Arg=%process.query%:State" indicator="true"/> | |
| &process-metrics; | |
| <!-- Métriques relatives aux modèles Mule --> | |
| <service name="Modèles"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Model,name=*"/> | |
| <property name="AUTOINVENTORY_NAME" value="Modèle %name%"/> | |
| <plugin type="autoinventory"/> | |
| <properties> | |
| <property name="Name" /> | |
| <property name="Type" /> | |
| </properties> | |
| <actions include="start,stop"/> | |
| </service> | |
| <!-- Métriques relatives à la diffusion de notifications Mule --> | |
| <service name="Diffuseur de notifications"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Notification,name=MuleNotificationBroadcaster"/> | |
| <properties> | |
| <property name="NotificationInfo" /> | |
| </properties> | |
| <!-- Ces actions attendents des paramètres, à fournir à partir de l'interface HypericHQ --> | |
| <actions include="removeNotificationListener,removeNotificationListener,addNotificationListener"/> | |
| </service> | |
| <!-- Métriques relatives à la réception de notifications Mule --> | |
| <service name="Ecouteur de notifications"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Notification,name=MuleNotificationListener"/> | |
| <properties> | |
| <property name="NotificationsList" /> | |
| <property name="ListSize" /> | |
| </properties> | |
| </service> | |
| <!-- Métriques relatives aux points d'entrée de services --> | |
| <service name="Points d'entrée/sortie"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Endpoint,service=*,name=*"/> | |
| <property name="AUTOINVENTORY_NAME" value="Point d'entrée/sortie %name%"/> | |
| <plugin type="autoinventory"/> | |
| <properties> | |
| <property name="Address"/> | |
| <property name="ComponentName"/> | |
| <property name="Name"/> | |
| <property name="Inbound"/> | |
| <property name="Outbound"/> | |
| </properties> | |
| <actions include="disconnect,connect"/> | |
| <metric name="Availability" template="${OBJECT_NAME}:Connected" indicator="true"/> | |
| </service> | |
| <!-- Métriques relatives aux différents connecteurs --> | |
| <service name="Connecteurs"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Connector,name=*"/> | |
| <property name="AUTOINVENTORY_NAME" value="Connecteur %name%"/> | |
| <plugin type="autoinventory"/> | |
| <properties> | |
| <property name="Disposed"/> | |
| <property name="ExceptionListener"/> | |
| <property name="Name"/> | |
| <property name="Protocol"/> | |
| </properties> | |
| <actions include="startConnector,stopConnector,dispose,initialise"/> | |
| <metric name="Availability" template="${OBJECT_NAME}:Started" indicator="true"/> | |
| </service> | |
| <!-- Métriques relatives aux différents routeurs --> | |
| <service name="Routeurs"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Statistics,service=*,router=*"/> | |
| <property name="AUTOINVENTORY_NAME" value="Routeur %router% (service %service%)"/> | |
| <plugin type="autoinventory"/> | |
| <metric name="Availability" template="${OBJECT_NAME}:Availability" indicator="true"/> | |
| <metric name="Reçus" alias="TotalReceived" collectionType="trendsup" indicator="true"/> | |
| <metric name="Redirigés (routés)" alias="TotalRouted" collectionType="trendsup" indicator="true"/> | |
| <metric name="Non redirigés (non routés)" alias="NotRouted" collectionType="trendsup"/> | |
| <metric name="Messages interceptés" alias="CaughtMessages" collectionType="trendsup"/> | |
| </service> | |
| <!-- Métriques relatives aux différents services | |
| Il faut noter que Mule expose aussi des statistiques par services sous | |
| type=org.mule.Statistics,service=%nom-du-service% | |
| Seulement, toutes ces statistiques sont aussi disponibles sur le service | |
| concerné (ie ici), ce qui rend redondant leur inclusion. | |
| --> | |
| <service name="Services Mule"> | |
| <property name="OBJECT_NAME" value="%domain%:type=org.mule.Service,name=*"/> | |
| <property name="AUTOINVENTORY_NAME" value="Service %name%"/> | |
| <!-- autoinventory doit toujours venir *après* object name --> | |
| <plugin type="autoinventory"/> | |
| <actions include="pause,dispose,forceStop,resume,stop,start,clearStatistics"/> | |
| <metric name="Availability" template="${OBJECT_NAME}:Availability" indicator="true" category="AVAILABILITY"/> | |
| <metric name="Stopped" category="AVAILABILITY" /> | |
| <metric name="Stopping" category="AVAILABILITY" /> | |
| <metric name="Paused" category="AVAILABILITY" /> | |
| <metric name="Queue Size" indicator="true"/> | |
| <metric name="Queued Events" indicator="true"/> | |
| <metric name="MaxQueueSize" category="UTILIZATION" /> | |
| <metric name="Average Queue Size" category="PERFORMANCE" /> | |
| <metric name="Sync Events Received" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="Async Events Received" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="Total Events Received" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="Sync Events Sent" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="Async Events Sent" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="ReplyTo Events Sent" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="Total Events Sent" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="Executed Events" collectionType="trendsup" category="UTILIZATION" /> | |
| <metric name="ExecutionErrors" collectionType="trendsup" /> | |
| <metric name="FatalErrors" collectionType="trendsup" /> | |
| <metric name="Min Execution Time" category="PERFORMANCE"/> | |
| <metric name="Max Execution Time" category="PERFORMANCE"/> | |
| <metric name="Average Execution Time" category="PERFORMANCE"/> | |
| <metric name="Total Execution Time" category="PERFORMANCE"/> | |
| </service> | |
| </server> | |
| <!-- | |
| ==================== Plugin Help =========================== | |
| --> | |
| <!-- | |
| Attention, selon la documentation, on peut mettre des tags html dans le help, | |
| mais Hyperic les rejette. Ne mettre que du texte non décoré ici. | |
| --> | |
| <help name="Mule"> | |
| Configuration de HQ pour le monitoring d'un serveur Mule | |
| Les paramètres les plus importants à renseigner sont le domaine JMX du serveur Mule, et l'adresse d'écoute du serveur JMX. | |
| Cette configuration a été créée pour un serveur Mule lancé comme un sous processus Mule d'Eclipse, mais est suffisament générique pour détecter un serveur Mule lancé d'une autre manière (tant qu'il a été lancé avec sa propre JVM, et que la ligne de commande contient 'mule'). | |
| </help> | |
| </plugin> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment