Hyperic插件开发不完全指南(四)--Mbean插件之二

 

(1)    配置plugin descriptor

Service可以引用server的配置。Server相当于serviceparent

<?xml version="1.0"?>

<plugin package="org.hyperic.hq.plugin.monitor">

 

  <classpath>

    <include name="pdk/lib/mx4j"/>

  </classpath>

 

  <config name="jmx" type="global">

    <option name="jmx.url"

            description="JMX URL to MBeanServer"

            default="service:jmx:rmi:///jndi/rmi://192.168.3.60:8849/jmxrmi"/>

    <option name="jmx.username"

            description="JMX username"

            optional="true"/>

 

    <option name="jmx.password"

            description="JMX password"

            optional="true"

            type="secret"/>

  </config>

 

  <filter name="template"

          value="${OBJECT_NAME}:${alias}"/>

 

  <server name="InstallPathMonitor"

          version="1.2"

          description="Monitor Test">

    <property name="OBJECT_NAME"

              value="com.nali.monitor:name=testMbean"/>

   <property name="PROC_HOME_PROPERTY" value="monitor.home"/>

 

    <plugin type="autoinventory"

            class="org.hyperic.hq.product.jmx.MxServerDetector"/>

    <plugin type="control"

            class="org.hyperic.hq.product.jmx.MxControlPlugin"/>

 

    <actions include="start,end"/>

    <plugin type="measurement"

            class="org.hyperic.hq.product.jmx.MxMeasurementPlugin"/>

 

    <plugin type="log_track"

            class="org.hyperic.hq.product.Log4JLogTrackPlugin"/>

 

    <plugin type="config_track"

            class="org.hyperic.hq.product.ConfigFileTrackPlugin"/>

 

    <properties>

      <property name="TestMBean" description="Test MBean"/>

    </properties>

    <config include="jmx"/>

    <metric name="Availability"

              indicator="true"

           units="percentage"

            category="AVAILABILITY"

            collectionType="dynamic"

            defaultOn="true"

        template="${OBJECT_NAME}:Availability"

        interval="2000"/>

 

        <metric name="ThroughPut" alias="Throughput"

              indicator="true"

              units="B"

           category="THROUGHPUT"

          collectionType="dynamic"

          defaultOn="true"/>

 

        <metric name="Number" alias="Number"

              indicator="true"

              defaultOn="true"

          collectionType="trendsup"

          rate="1m"/>

 

    <service name="testMxServer">

    <property name="OBJECT_NAME"

              value="com.nali.monitor:name=testMbean"/>

 

    <plugin type="autoinventory"/>

 

    <plugin type="measurement"/>

 

    <plugin type="control"/>

        <plugin type="autoinventory"/>

        <metric name="Availability"

              indicator="true"

           units="percentage"

            category="AVAILABILITY"

            collectionType="dynamic"

            defaultOn="true"

        template="${OBJECT_NAME}:Availability"

        interval="2000"/>

 

        <metric name="ThroughPut" alias="Throughput"

              indicator="true"

              units="B"

           category="THROUGHPUT"

          collectionType="dynamic"

          defaultOn="true"/>

 

        <metric name="Number" alias="Number"

              indicator="true"

              defaultOn="true"

          collectionType="trendsup"

          rate="1m"/>

     </service>

  </server>

</plugin>

ConfigOption:会出现在HQ后台中让用户配置,然后作为参数传入到HQ plugin的方法参数中。JMX plugin配置了JMX服务器的地址,端口,用户名,密码等

 

Filterfitler定义一个模板,会在metrictemplate属性中使用,metric再定义替换filter中定义的变量。Filter是可以被多个metric重用的。

 

Property:是写死了的属性值。会被descriptor文件的其他部分引用。Property也可以配置成表达式变量的形式,变量由用户在HQ控制台上输入(configoption)替换。例子:

<property name="OBJECT_NAME"

          value="Catalina:type=Cache,host=*,path=*"/>

<config>

  <option name="host"

          description="Host name"

          default="localhost"/>

 

  <option name="path"

          description="Path"

          default="/jsp-examples"/>

 

</config>

 

 

OBJECT_NAME:配置的是MBean的名字

 

PROC_HOME_PROPERTY:是MxServerDetector查找Mbean server用的。配置启动程序的目录。其实只要-D中带的属性都可以。MxServerDetector用的是sigarcontains语法。

-Dhyperic.monitor.name

 

MxServerDetector:用来发现MBean server,和插件中定义TestMbean类型的service

 

MxControlPlugin:可以对Mbean进行操作,调用Mbean的开放的方法,可以在actions中定义。

 

Actions:执行哪些操作,startend函数必需要有返回值。不然点击后会停在那里,一直是incomplete而非completed

 

MxMeasurementPlugin:收集监控的数据。

 

Metric:用来展示图表

 

Avalaibility:配置的时候要注意每个服务都需要一个availability属性,并且不可以用filter。返回值只能为01.

 

Indicator:是否显示

 

Category:对图表进行归档,方便查看。

 

collectionType:描述图表如何展示,trendsup一直增长,dynamic:根据收集到的值动态变化,

 

interval:收集周期

 

 

具体配置文件各个元素的意思可以参考:

http://support.hyperic.com/display/EVO/Plugin+Descriptor+Element+and+Attribute+Reference

猜你喜欢

转载自ldd600.iteye.com/blog/1151843