Monitor Self Management Rules, Granularity Units?

View: New views
5 Messages — Rating Filter:   Alert me  

Monitor Self Management Rules, Granularity Units?

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello -

I made a monitor-type self management rule.  It functions, but it seems to only get called once when the rule is activated at start up.  I added some logging so I should be able to see when the observedobject is used.

What units is the granularityperiod parameter in?  I figured it for milliseconds and used 1000.  Is it seconds?

I've got no error messages or anything in the log.  It just seems to only call the monitor object once.

Thanks

Re: Monitor Self Management Rules, Granularity Units?

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Additional...

The data source (observed) mbean is never called.  Why?  The action is called once when the rule is activated.  No error messages logged...
I am basing this on an example found here:

https://glassfish.dev.java.net/javaee5/selfmanagement/selfmanagement_example.html

This is the way the rule get written:

      <management-rules enabled="true">
        <management-rule enabled="true" name="CMS_Memory_Rule">
          <event level="WARNING" record-event="true" type="monitor">
            <description>Memory Alert</description>
            <property name="observedobject" value="user:impl-class-name=com.iwsinc.cms.monitor.memory.CMSMemory,name=CMSMemoryMBean,server=server"/>
            <property name="observedattribute" value="FreeMemory"/>
            <property name="granularityperiod" value="1000"/>
            <property name="monitortype" value="gaugemonitor"/>
            <property name="differencemode" value="false"/>
            <property name="numbertype" value="long"/>
            <property name="lowthreshold" value="9000000"/>
            <property name="highthreshold" value="9700000"/>
          </event>
          <action action-mbean-name="CMSMemoryAction"/>
          <description>CMS_Memory_Rule</description>
        </management-rule>
      </management-rules>

Any ideas?
Thank you

jsexton0 wrote:
Hello -

I made a monitor-type self management rule.  It functions, but it seems to only get called once when the rule is activated at start up.  I added some logging so I should be able to see when the observedobject is used.

What units is the granularityperiod parameter in?  I figured it for milliseconds and used 1000.  Is it seconds?

I've got no error messages or anything in the log.  It just seems to only call the monitor object once.

Thanks

Re: Monitor Self Management Rules, Granularity Units?

by sankara rao bhogi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



You mean Obeserved MBean's getFreeMemory() is not even called once? When
the action is invoked, can you print Notification object.

This is implemented in terms of javax.management.monitor.GauageMonitor
and you can expect the following behavior:

    *

      A |GaugeMonitor|
      <http://java.sun.com/javase/6/docs/api/javax/management/monitor/GaugeMonitor.html>
      observes attributes of numerical type. Each observed attribute has
      an associated /high threshold/ and /low threshold/.

      When an observed attribute crosses the high threshold, if the
      /notify high/ flag is true, then a notification is sent.
      Subsequent crossings of the high threshold value will not trigger
      further notifications until the gauge value becomes less than or
      equal to the low threshold.

      When an observed attribute crosses the low threshold, if the
      /notify low/ flag is true, then a notification is sent. Subsequent
      crossings of the low threshold value will not trigger further
      notifications until the gauge value becomes greater than or equal
      to the high threshold.

      Typically, only one of the notify high and notify low flags is
      set. The other threshold is used to provide a /hysteresis/
      mechanism to avoid the repeated triggering of notifications when
      an attribute makes small oscillations around the threshold value.

      A |GaugeMonitor| can operate in /difference mode/. In this mode,
      the value compared against the high and low thresholds is the
      difference between two successive observations of an attribute.


jsexton0 wrote:

> Additional...
>
> The data source (observed) mbean is never called.  Why?  The action is
> called once when the rule is activated.  No error messages logged...
> I am basing this on an example found here:
>
> https://glassfish.dev.java.net/javaee5/selfmanagement/selfmanagement_example.html
>
> This is the way the rule get written:
>
>       <management-rules enabled="true">
>         <management-rule enabled="true" name="CMS_Memory_Rule">
>           <event level="WARNING" record-event="true" type="monitor">
>             <description>Memory Alert</description>
>             <property name="observedobject"
> value="user:impl-class-name=com.iwsinc.cms.monitor.memory.CMSMemory,name=CMSMemoryMBean,server=server"/>
>             <property name="observedattribute" value="FreeMemory"/>
>             <property name="granularityperiod" value="1000"/>
>             <property name="monitortype" value="gaugemonitor"/>
>             <property name="differencemode" value="false"/>
>             <property name="numbertype" value="long"/>
>             <property name="lowthreshold" value="9000000"/>
>             <property name="highthreshold" value="9700000"/>
>           </event>
>           <action action-mbean-name="CMSMemoryAction"/>
>           <description>CMS_Memory_Rule</description>
>         </management-rule>
>       </management-rules>
>
> Any ideas?
> Thank you
>
>
> jsexton0 wrote:
>  
>> Hello -
>>
>> I made a monitor-type self management rule.  It functions, but it seems to
>> only get called once when the rule is activated at start up.  I added some
>> logging so I should be able to see when the observedobject is used.
>>
>> What units is the granularityperiod parameter in?  I figured it for
>> milliseconds and used 1000.  Is it seconds?
>>
>> I've got no error messages or anything in the log.  It just seems to only
>> call the monitor object once.
>>
>> Thanks
>>
>>
>>    
>
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: Monitor Self Management Rules, Granularity Units?

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello -

I found this follow-up blog post that completely explains the problem I had.  

http://blogs.sun.com/technical/entry/management_rules_observedmbean_property

It's all working now, by using "observedmbean" instead of "observedobject" in the rule.  I don't fully understand the distinction between the two, or is it simply a problem with the admin GUI?  I don't know.  But "observedobject" seems to be problematic?

Thanks

sankara rao bhogi wrote:

You mean Obeserved MBean's getFreeMemory() is not even called once? When
the action is invoked, can you print Notification object.

This is implemented in terms of javax.management.monitor.GauageMonitor
and you can expect the following behavior:

    *

      A |GaugeMonitor|
      <http://java.sun.com/javase/6/docs/api/javax/management/monitor/GaugeMonitor.html>
      observes attributes of numerical type. Each observed attribute has
      an associated /high threshold/ and /low threshold/.

      When an observed attribute crosses the high threshold, if the
      /notify high/ flag is true, then a notification is sent.
      Subsequent crossings of the high threshold value will not trigger
      further notifications until the gauge value becomes less than or
      equal to the low threshold.

      When an observed attribute crosses the low threshold, if the
      /notify low/ flag is true, then a notification is sent. Subsequent
      crossings of the low threshold value will not trigger further
      notifications until the gauge value becomes greater than or equal
      to the high threshold.

      Typically, only one of the notify high and notify low flags is
      set. The other threshold is used to provide a /hysteresis/
      mechanism to avoid the repeated triggering of notifications when
      an attribute makes small oscillations around the threshold value.

      A |GaugeMonitor| can operate in /difference mode/. In this mode,
      the value compared against the high and low thresholds is the
      difference between two successive observations of an attribute.


jsexton0 wrote:
> Additional...
>
> The data source (observed) mbean is never called.  Why?  The action is
> called once when the rule is activated.  No error messages logged...
> I am basing this on an example found here:
>
> https://glassfish.dev.java.net/javaee5/selfmanagement/selfmanagement_example.html
>
> This is the way the rule get written:
>
>       <management-rules enabled="true">
>         <management-rule enabled="true" name="CMS_Memory_Rule">
>           <event level="WARNING" record-event="true" type="monitor">
>             <description>Memory Alert</description>
>             <property name="observedobject"
> value="user:impl-class-name=com.iwsinc.cms.monitor.memory.CMSMemory,name=CMSMemoryMBean,server=server"/>
>             <property name="observedattribute" value="FreeMemory"/>
>             <property name="granularityperiod" value="1000"/>
>             <property name="monitortype" value="gaugemonitor"/>
>             <property name="differencemode" value="false"/>
>             <property name="numbertype" value="long"/>
>             <property name="lowthreshold" value="9000000"/>
>             <property name="highthreshold" value="9700000"/>
>           </event>
>           <action action-mbean-name="CMSMemoryAction"/>
>           <description>CMS_Memory_Rule</description>
>         </management-rule>
>       </management-rules>
>
> Any ideas?
> Thank you
>
>
> jsexton0 wrote:
>  
>> Hello -
>>
>> I made a monitor-type self management rule.  It functions, but it seems to
>> only get called once when the rule is activated at start up.  I added some
>> logging so I should be able to see when the observedobject is used.
>>
>> What units is the granularityperiod parameter in?  I figured it for
>> milliseconds and used 1000.  Is it seconds?
>>
>> I've got no error messages or anything in the log.  It just seems to only
>> call the monitor object once.
>>
>> Thanks
>>
>>
>>    
>
>  


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: users-help@glassfish.dev.java.net

Re: Monitor Self Management Rules, Granularity Units?

by Shalini Muthukrishnan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

The observedobject property should follow the exact naming convention.
But observedmbean property could be used to just specify the mbean name
and that would inturn have the object-name. This is an ease-of-use property.

HTH,
Shalini.

jsexton0 wrote:

> Hello -
>
> I found this follow-up blog post that completely explains the problem I had.  
>
> http://blogs.sun.com/technical/entry/management_rules_observedmbean_property
>
> It's all working now, by using "observedmbean" instead of "observedobject"
> in the rule.  I don't fully understand the distinction between the two, or
> is it simply a problem with the admin GUI?  I don't know.  But
> "observedobject" seems to be problematic?
>
> Thanks
>
>
> sankara rao bhogi wrote:
>  
>>
>> You mean Obeserved MBean's getFreeMemory() is not even called once? When
>> the action is invoked, can you print Notification object.
>>
>> This is implemented in terms of javax.management.monitor.GauageMonitor
>> and you can expect the following behavior:
>>
>>     *
>>
>>       A |GaugeMonitor|
>>      
>> <http://java.sun.com/javase/6/docs/api/javax/management/monitor/GaugeMonitor.html>
>>       observes attributes of numerical type. Each observed attribute has
>>       an associated /high threshold/ and /low threshold/.
>>
>>       When an observed attribute crosses the high threshold, if the
>>       /notify high/ flag is true, then a notification is sent.
>>       Subsequent crossings of the high threshold value will not trigger
>>       further notifications until the gauge value becomes less than or
>>       equal to the low threshold.
>>
>>       When an observed attribute crosses the low threshold, if the
>>       /notify low/ flag is true, then a notification is sent. Subsequent
>>       crossings of the low threshold value will not trigger further
>>       notifications until the gauge value becomes greater than or equal
>>       to the high threshold.
>>
>>       Typically, only one of the notify high and notify low flags is
>>       set. The other threshold is used to provide a /hysteresis/
>>       mechanism to avoid the repeated triggering of notifications when
>>       an attribute makes small oscillations around the threshold value.
>>
>>       A |GaugeMonitor| can operate in /difference mode/. In this mode,
>>       the value compared against the high and low thresholds is the
>>       difference between two successive observations of an attribute.
>>
>>
>> jsexton0 wrote:
>>    
>>> Additional...
>>>
>>> The data source (observed) mbean is never called.  Why?  The action is
>>> called once when the rule is activated.  No error messages logged...
>>> I am basing this on an example found here:
>>>
>>> https://glassfish.dev.java.net/javaee5/selfmanagement/selfmanagement_example.html
>>>
>>> This is the way the rule get written:
>>>
>>>       <management-rules enabled="true">
>>>         <management-rule enabled="true" name="CMS_Memory_Rule">
>>>           <event level="WARNING" record-event="true" type="monitor">
>>>             <description>Memory Alert</description>
>>>             <property name="observedobject"
>>> value="user:impl-class-name=com.iwsinc.cms.monitor.memory.CMSMemory,name=CMSMemoryMBean,server=server"/>
>>>             <property name="observedattribute" value="FreeMemory"/>
>>>             <property name="granularityperiod" value="1000"/>
>>>             <property name="monitortype" value="gaugemonitor"/>
>>>             <property name="differencemode" value="false"/>
>>>             <property name="numbertype" value="long"/>
>>>             <property name="lowthreshold" value="9000000"/>
>>>             <property name="highthreshold" value="9700000"/>
>>>           </event>
>>>           <action action-mbean-name="CMSMemoryAction"/>
>>>           <description>CMS_Memory_Rule</description>
>>>         </management-rule>
>>>       </management-rules>
>>>
>>> Any ideas?
>>> Thank you
>>>
>>>
>>> jsexton0 wrote:
>>>  
>>>      
>>>> Hello -
>>>>
>>>> I made a monitor-type self management rule.  It functions, but it seems
>>>> to
>>>> only get called once when the rule is activated at start up.  I added
>>>> some
>>>> logging so I should be able to see when the observedobject is used.
>>>>
>>>> What units is the granularityperiod parameter in?  I figured it for
>>>> milliseconds and used 1000.  Is it seconds?
>>>>
>>>> I've got no error messages or anything in the log.  It just seems to
>>>> only
>>>> call the monitor object once.
>>>>
>>>> Thanks
>>>>
>>>>
>>>>    
>>>>        
>>>  
>>>      
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@...
>> For additional commands, e-mail: users-help@...
>>
>>
>>
>>    
>
>  

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...