接口 | 描述 |
---|---|
CounterMonitorMBean |
暴露计数器监视器MBean的远程管理界面。
|
GaugeMonitorMBean |
暴露量规监视器MBean的远程管理界面。
|
MonitorMBean |
暴露监视器MBean的远程管理界面。
|
StringMonitorMBean |
暴露字符串监视器MBean的远程管理界面。
|
类 | 描述 |
---|---|
CounterMonitor |
定义监视器MBean,用于观察计数器属性的值。
|
GaugeMonitor |
定义一个监视器MBean,用于观察仪表属性的值。
|
Monitor |
定义所有监视器MBean的通用部分。
|
MonitorNotification |
提供监视器MBean发送的通知的定义。
|
StringMonitor |
定义一个监视器MBean,用于观察字符串属性的值。
|
异常 | 描述 |
---|---|
MonitorSettingException |
监视器设置在监视器运行时无效时由监视器抛出异常。
|
提供监视器类的定义。 监视器是一个MBean,它定期地观察一个或多个其他MBean中属性的值。 如果属性满足某个条件,则监视器发出MonitorNotification
。 当监视器MBean周期性地调用getAttribute
以检索被监视的属性的值时,它将在Monitor.start()
调用者的访问控制上下文中执行。
被监视的值可以是复杂类型中包含的简单值。 例如, java.lang.management中定义的MemoryMXBean
具有MemoryUsage
类型的属性HeapMemoryUsage 。 要监视MemoryUsage的used属性描述的已 用内存量,可以监视“ HeapMemoryUsage.used ”。 那个字符串将是setObservedAttribute
的参数。
用于解释ObservedAttribute的规则如"HeapMemoryUsage.used"如下。 假设字符串是Ae (所以A将为"HeapMemoryUsage" , e将在示例中为"used" )。
首先得到属性A的值。 叫它v 。 从v中提取值x ,如下所示:
CompositeData
,如果v 。 get
( e )返回一个值,然后x是该值。 Introspector.getBeanInfo
,为类诉 ( 诉 getClass())识别与该名字的属性,则x是读取属性值的结果。 第三条规则意味着例如,如果属性HeapMemoryUsage是MemoryUsage ,则监视"HeapMemoryUsage.used"将通过调用MemoryUsage.getUsed()获得观察值。
如果ObservedAttribute包含多个周期,例如"ConnectionPool.connectionStats.length" ,则上述规则被迭代地应用。 这里,V最初将所述属性ConnectionPool的值,并且x将由随e等于"connectionStats"应用上述规则来导出。 那么v将被设置为x ,并且通过再次应用规则来导出新的x , e等于"length" 。
虽然建议属性名称为有效的Java标识符,但可以将属性称为HeapMemoryUsage.used 。 这意味着ObservedAttribute是HeapMemoryUsage.used可能意味着观察值是该名称的属性,或者叫HeapMemoryUsage属性中的属性used。 因此,出于兼容性原因,当ObservedAttribute包含一段时间( . )时,监视器将检查一个属性是否存在,其名称为完整的ObservedAttribute字符串( 示例中为HeapMemoryUsage.used )。 它通过调用getMBeanInfo
为观察到的MBean,并寻找一个包含MBeanAttributeInfo
与给定的名称。 如果找到了,那就是被监控的。 如果观察到一个以上的MBean,行为是未指定的,如果其中一些具有HeapMemoryUsage.used属性,而其他没有。 因此 ,在这种情况下,一个实现可以在一个MBean中调用getMBeanInfo 。 如果在显示器处于活动状态时检查结果发生变化,那么该行为也是未指定的。
显示器的确切行为详见JMX Specification 。 以下是一个总结。
有三种显示器:
A CounterMonitor
观察整数类型的属性。 假设属性是非负的,并且除了在指定模数下可能的滚转之外,单调增加。 每个观察属性都具有关联的阈值。 当属性超过其阈值时,发送通知。
可以指定偏移值。 当观测值超过其阈值时,阈值将增加偏移量,或增加足以使阈值大于新观测值的偏移量的倍数。
A CounterMonitor
可以在差模式下运行 。 在该模式中,与阈值比较的值是属性的两次连续观察结果之间的差异。
A GaugeMonitor
观察数值类型的属性。 每个观察属性具有相关联的高阈值和低阈值 。
当观察到的属性越过高阈值时,如果通知高标志为真,则发送通知。 在阈值变得小于或等于低阈值之前,高阈值的后续交叉将不会触发进一步通知。
当观察到的属性越过低阈值时,如果通知低标志为真,则发送通知。 在阈值变得大于或等于高阈值之前,低阈值的后续交叉将不会触发进一步通知。
通常,只有一个通知高和通知低标志被设置。 另一个阈值用于提供滞后机制,以避免当属性围绕阈值产生小的振荡时重复触发通知。
A GaugeMonitor
可以在差模式下工作 。 在这种模式下,与高和低阈值比较的值是属性的两个连续观察值之间的差异。
A StringMonitor
观察类型为String
。 当观察到的属性变得相等和/或不等于给定的字符串时,发送通知。