Search code examples
jmxhyperic

hyperic jmx monitoring: plugin does not exist in HQ


My webapp runs under tomcat 6 and it uses the activeMQ 5.5 lib for jms. I am creating a plugin to get hyperic 4.5 monitor the broker through jmx, but hyperic is failing to autodiscover it. Its also failing to load it in the Administration Plugin Manger.(active mq 5.5 is not supported in the version of hyperic I am using, but it's a minor revision.)

There is an error in the logs, not giving any hints to me. attempted to initiate plugin transfer of idmlBroker4.xml but plugin does not exist in HQ

PDT ERROR [Global Plugin Sync (initiated by plugin deploy)1] [org.hyperic.hq.appdef.server.session.AgentManagerImpl@1552] attempted to initiate plugin transfer of Broker4.xml but plugin does not exist in HQ PDT INFO [scheduler-2] [org.hyperic.hq.product.server.session.ProductPluginDeployer@409] Undeploying plugin: /home/hyperic/server-4.6.6/hq-engine/hq-server/webapps/ROOT/WEB-INF/hq-plugins/Broker4.xml

My MBean and the plugin are:


MBean: org.apache.activemq.broker.jmx.QueueView Name: org.apache.activemq:BrokerName=IDMLBroker,Type=Queue,Destination=idml1.com.cequint.idml.report.persistence 0. Attribute: CacheEnabled = true (r) ... 13. Attribute: PrioritizedMessages = false (r) 14. Attribute: EnqueueCount = 2877 (r) 15. Attribute: DequeueCount = 2877 (r) 16. Attribute: DispatchCount = 2877 (r) ... Operation: void purge [] Operation: boolean removeMessage [java.lang.String] ....


<plugin>
<service name="Broker"
       server="Sun JVM" version="1.5">

<property name="OBJECT_NAME"
          value="org.apache.activemq:BrokerName=Broker,Type=Queue,Destination=host1.com.server.report"/>

<plugin type="autoinventory"/>

<plugin type="measurement"
        class="org.hyperic.hq.product.jmx.MxMeasurementPlugin"/>

<plugin type="control"
        class="org.hyperic.hq.product.jmx.MxControlPlugin"/>

<!-- reset is an MBean operation, set* are attribute setters -->
<actions include="cursorSize"/>

<config>
    <option name="jmx.url" description="JMX URL to MBeanServer"  default="service:jmx:rmi:///jndi/rmi://localhost:8186/jmxrmi"/>
    <option name="jmx.username" description="JMX username" optional="false" default="user"/>
    <option name="jmx.password" description="JMX password" optional="false" default="password" type="secret"/>
</config>

<properties>
  <property name="EnqueueCount" description="Cache Size"/>
  <property name="DequeueCount" description="TrainThreshold"/>
</properties>

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

<metric name="EnqueueCount"
        template="${OBJECT_NAME}:EnqueueCount"
        indicator="true"/>

<metric name="DequeueCount"
        alias="DequeueCount"
        collectionType="trendsup"
        indicator="true"/>


Solution

  • I was having this issue as well; for me this error was caused by my filename not being [ServiceName]-plugin.xml.

    So, since your service is Broker, your filename needs to be broker-plugin.xml. This filename appears to be case-insensitive.

    In addition, I found that dropping the plugin directly into the server's hq-plugins directory gives much better feedback in the server logs than using the plugin manager and would recommend you use that.