インタフェース | 説明 |
---|---|
CounterMonitorMBean |
カウンタモニター MBean のリモート管理インタフェースを公開します。
|
GaugeMonitorMBean |
ゲージモニター MBean のリモート管理インタフェースを公開します。
|
MonitorMBean |
モニター MBean のリモート管理インタフェースを公開します。
|
StringMonitorMBean |
文字列モニター MBean のリモート管理インタフェースを公開します。
|
クラス | 説明 |
---|---|
CounterMonitor |
カウンタ属性の値を監視するように設計されたモニター MBean を定義します。
|
GaugeMonitor |
ゲージ属性の値を監視するように設計されたモニター MBean を定義します。
|
Monitor |
すべてのモニター MBean に共通な部分を定義します。
|
MonitorNotification |
モニター MBean によって送信される通知を定義します。
|
StringMonitor |
文字列属性の値を監視するように設計されたモニター MBean を定義します。
|
例外 | 説明 |
---|---|
MonitorSettingException |
モニターの実行中にモニター設定が無効になった場合に、モニターからスローされる例外です。
|
モニタークラスの定義を提供します。Monitor は、1 つ以上のその他の MBean に含まれる属性の値を定期的に観測する MBean です。属性が特定の条件を満たす場合、Monitor は MonitorNotification
を発行します。モニター MBean が監視中の属性の値を取得するために getAttribute
を周期的に呼び出す場合、呼び出し側 Monitor.start()
のアクセス制御コンテキスト内でこれを実行します。
監視する値は、複合型の内部に含まれた単純な値にすることができます。たとえば、java.lang.management 内で定義された MemoryMXBean
は、MemoryUsage
型の HeapMemoryUsage 属性を持ちます。MemoryUsage の used プロパティーで示される used メモリーの量を監視するには、「HeapMemoryUsage.used」を監視します。この文字列が、setObservedAttribute
の引数になります。
「HeapMemoryUsage.used」などの ObservedAttribute を解釈するための規則は、次のようになります。文字列が A.e (この例では、A が「HeapMemoryUsage」、e が「used」) であるものとします。
最初に、属性 A の値が取得されます。これを v とします。次のようにして、v から値 x が抽出されます。
CompositeData
で、かつ v.get
(e) が値を返す場合、x はその値です。Introspector.getBeanInfo
に名前 e の PropertyDescriptor
が含まれる場合は、v に対してプロパティーの read method
を呼び出した結果が x になります。3 番目の規則について考えましょう。たとえば、属性 HeapMemoryUsage が MemoryUsage である場合、「HeapMemoryUsage.used」を監視すると、MemoryUsage.getUsed() が呼び出されて監視対象の値が取得されます。
「ConnectionPool.connectionStats.length」のように ObservedAttribute に、複数のピリオドが含まれる場合、上記の規則が繰り返し適用されます。ここで、v は初期状態では属性 ConnectionPool の値になります。x は、e と「connectionStats」を等価にして上記の規則を適用することで得られます。次に、v がこの x に設定されます。新しい x は、e と「length」を等価にして規則を再度適用することで得られます。
属性名は、有効な Java 識別子にすることが推奨されていますが、HeapMemoryUsage.used にすることも可能です。このため、ObservedAttribute が HeapMemoryUsage.used であるとすると、監視対象の値がその名前の属性である場合と、HeapMemoryUsage という名前の属性内部の used プロパティーである場合とが考えられます。互換性を維持するため、ObservedAttribute にピリオド (.) が含まれる場合、モニターは、名前が完全な ObservedAttribute 文字列 (この例では HeapMemoryUsage.used) である属性が存在するかどうかをチェックします。具体的には、監視対象の MBean に対して getMBeanInfo
を呼び出し、中に含まれる指定した名前の MBeanAttributeInfo
を検索します。検索しているものが見つかった場合、それが監視対象です。監視対象の MBean が複数存在し、HeapMemoryUsage.used 属性を保持するものと保持しないものがある場合、動作は未定義になります。このため、この場合、実装により、1 つの MBean に対してのみ getMBeanInfo が呼び出されることがあります。モニターがアクティブである間に検査結果が変更される場合にも、動作は未定義になります。
モニターの厳密な動作の詳細は、『JMX 仕様』に記載されています。次に、概要を示します。
次の 3 種類の Monitor があります。
CounterMonitor
は、整数型の属性を監視します。属性は、負の数ではないと想定され、指定されたモジュラスでロールオーバーが起こらなければ、その値は単調に増加します。監視対象の各属性には、しきい値が関連付けられています。属性がしきい値を超過すると、通知が送信されます。
オフセット値を指定できます。監視対象の値がしきい値を超過すると、しきい値はオフセット分、またはしきい値が新しい監視値より大きい値になるために必要なオフセットの倍数分大きくなります。
CounterMonitor
は差分モードで動作できます。このモードでは、しきい値に対して比較される値は、2 回の連続する属性の観測値の差分になります。
GaugeMonitor
は、数値型の属性を監視します。監視対象の各属性には、上限値と下限値が関連付けられています。
監視対象の属性の値が上限値を超過したとき、上限通知フラグの値が true であれば、通知が送信されます。その後は、上限値を超過しても、ゲージ値が下限値以下になるまで通知は送信されません。
監視対象の属性の値が下限値を超過したとき、下限通知フラグの値が true であれば、通知が送信されます。その後は、下限値を超過しても、ゲージ値が上限値以上になるまで通知は送信されません。
通常、設定されるのは上限通知または下限通知のいずれかです。その他のしきい値は、属性値がしきい値の近辺で細かく増減しても、通知が繰り返しトリガーされるのを防ぐヒステリシスメカニズムを提供するために使用されます。
GaugeMonitor
は差分モードで動作できます。このモードでは、上限値および下限値に対して比較される値は、2 回の連続する属性の観測値の差分になります。
StringMonitor
は、String
型の属性を監視します。監視対象の属性が指定された文字列と等しくなったり、等しくなくなったりすると、通知が送信されます。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.