Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使用 11g リリース1(10.3.6) B60994-04 |
|
前 |
次 |
WebLogic診断フレームワーク(WLDF)のハーベスタ・コンポーネントでは、実行中のサーバーでインスタンス化される修飾されたMBeanの属性からメトリックを収集します。ハーベスタは、WebLogic Server MBeansおよびカスタムMBeansからメトリックを収集できます。
次の項では、収集およびハーベスタの構成プロセスについて説明します。
「メトリック収集」とは、システムの状態やパフォーマンスをモニターするのに役立つデータを収集するプロセスです。メトリックは、限定されたMBeanの属性としてWLDFに公開されます。ハーベスタは、指定したサンプリング・レートで、選択したMBean属性から値を収集します。そのため、変動する可能性がある値を継続して追跡できます。
データが収集可能な状態になるには、一定の条件が必要です。また、収集対象になるには、さらに条件が必要となります。
「収集可能データ」は、MBeanの型、インスタンス、属性など、「収集可能エンティティ」から収集できるデータです。収集可能な状態にするには、MBeanがローカルのWebLogic ServerランタイムMBeanサーバーに登録されている必要があります。MBeanの単純型の属性のみが収集可能です。
「収集対象データ」は、現在収集されているデータです。収集対象の状態にするには、データが以下の条件をすべて満たしている必要があります。
データが収集可能な状態である必要があります。
データが収集対象になるように構成されている必要があります。
カスタムMBeanの場合は、MBeanがJMXサーバーに現在登録されている必要があります。
データの収集中に例外がスローしてはなりません。
WLDFHarvesterRuntimeMBeanによって獲得可能なデータと獲得済みのデータのセットが提供されます。このMBeanが戻す情報は変化可能な状態のスナップショットです。このMBeanが提供するデータに関する詳細情報は、Oracle WebLogic Server MBeanリファレンスのweblogic.management.runtime.WLDFHarvesterRuntimeMBeanに関する項を参照してください。
管理コンソール、WebLogic Scripting Tool (weblogic.WLST)、またはJMXを使用すると、サーバーMBeanおよびカスタムMBeanに格納されているメトリックを収集およびアーカイブするようにハーベスタを構成できます。
指定したMBeanの型、インスタンス、属性からデータを獲得するようにハーベスタを構成できます。すべての場合では、ハーベスタは、表7-1 で説明されているように、MBeanインスタンスの属性の値を集めます。
表7-1 様々な構成からの収集対象データのソース
収集対象として構成されているエンティティ | データの収集元 |
---|---|
型(のみ) |
指定した型のすべてのインスタンスの収集可能なすべての属性 |
型の属性 (型+属性) |
指定した型のすべてのインスタンスの指定した属性 |
型のインスタンス (型+インスタンス) |
指定した型の指定したインスタンスの収集可能なすべての属性 |
以下の型の1つのインスタンスの1つの属性 (型+インスタンス+属性) |
指定した型の指定したインスタンスの指定した属性 |
すべてのWebLogic ServerランタイムMBeanの型と属性は、起動時に認識されます。そのため、ハーベスタの構成がロードされる場合、WebLogic Serverの収集可能エンティティのセットは、WebLogic ServerランタイムMBeanの型と属性と同じです。型がインスタンス化されると、そのインスタンスも認識されて収集可能になります。
収集可能なカスタムMBeanの型のセットは変動します。カスタムMBeanは、その型が認識される前にインスタンス化する必要があります(型が存在するようになるのは、少なくとも1つのインスタンスが作成されたときからです)。したがって、カスタムMBeanがMBeanサーバーに登録されたり、MBeanサーバーから削除されたりするとともに、カスタムMBeanの収集可能な型のセットは大きくなったり小さくなったりします。新しいMBeanの登録に基づいて新しい型を検出するこのプロセスを、「型検出」と呼びます。
管理コンソールを使用してハーベスタを構成する場合は、コンソールによって構成できる獲得可能なエンティティのリストが提供されます。このリストはWebLogic Server MBeanのためにいつも完全なものですが、カスタムMBeanのためのリストには現在に発見されたタイプのみ含まれます。Oracle WebLogic Server管理コンソール・ヘルプの「診断システム・モジュールで収集するメトリックの構成」を参照してください。
ハーベスタが構成され、メトリックが収集されるのは、1つまたは複数のサーバー・インスタンスを対象にした診断モジュールの範囲内です。
例7-1は、WLDFシステム・リソース記述子ファイルmyWLDF.xmlのハーベスタ構成要素を示します。このサンプル構成では、ServerRuntimeMBean、WLDFHarvesterRuntimeMBean、およびカスタム(非WLS) MBeanからデータを獲得します。リストに続いて、リスト内の各要素について説明します。
例7-1 ハーベスタ構成のサンプル(DIAG_MODULE.xml内)
<wldf-resource xmlns="http://xmlns.oracle.com/weblogic/weblogic-diagnostics" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <name>myWLDF</name> <harvester> <enabled>true</enabled> <sample-period>5000</sample-period> <harvested-type> <name>weblogic.management.runtime.ServerRuntimeMBean</name> </harvested-type> <harvested-type> <name>weblogic.management.runtime.WLDFHarvesterRuntimeMBean</name> <harvested-attribute>TotalSamplingTime</harvested-attribute> <harvested-attribute>CurrentSnapshotElapsedTime </harvested-attribute> </harvested-type> <harvested-type> <name>myMBeans.MySimpleStandard</name> <harvested-instance>myCustomDomain:Name=myCustomMBean1 </harvested-instance> <harvested-instance>myCustomDomain:Name=myCustomMBean2 </harvested-instance> </harvested-type> </harvester> <!-- ----- Other elements ----- --> </wldf-resource>
<sample-period>要素は、ハーベスタのサンプル期間をミリ秒で設定します。例:
<sample-period>5000</sample-period>
サンプル期間には、各サイクル間の時間を指定します。たとえば、ハーベスタがTで指定した時間に実行を開始し、サンプル期間がIの場合、次の収集サイクルはT + I に開始されます。サイクルが完了するまでA秒かかり、AがIを上回っている場合、次のサイクルはT+Aに開始されます。この場合ハーベスタは、平均間隔がIになるように、より早く次のサイクルを開始しようとします。
1つまたは複数の<harvested-type>要素で、収集するデータの種類を指定します。各<harvested-type>要素には、メトリックを収集するMBeanの型を指定します。下位要素では、収集されるその型のインスタンスと属性のどちらか、または両方を指定します(オプション)。各オプションを次のように設定します。
<harvested-instance>要素(オプション)では、指定した型のリストされているインスタンスからのみメトリックを収集するように指定します。通常、インスタンスを指定する場合は、そのJMX ObjectNameをJMXの標準書式で記述します。ただし、「ハーベスタ・インスタンス名でのワイルドカードの使用」で説明するように、パターン・マッチを使用すると非標準形式でインスタンス名を指定できます。
<harvested-instance>の指定がない場合、各収集サイクルにおいて、そのときに存在するすべてのインスタンスが収集されます。
<harvested-attribute>要素(オプション)では、指定した型のリストされている属性からのみメトリックを収集するように指定します。通常、属性はその名前を記述して指定します。最初の文字は大文字にする必要があります。たとえば、ゲッター・メソッドgetFoo()が定義されている属性の名前はFooです。
また、<harvested-attribute>要素は、リスト、マップ、単純なPOJO (Plain Old Java Object)、およびこれらが様々な形でネストされたものなど複合、または集約オブジェクトである属性に「ドリルダウン」するための式構文もサポートします。この構文の詳細は、「ハーベスタの複合属性およびネストされた属性の指定」を参照してください。ただし、データを収集するには、これらの式の結果が組込みの単純型(整数、ブール、文字列など)でなければならない点に注意してください。
<harvested-attribute>の指定がない場合、その型に定義されているすべての属性が収集されます。
1つの型の中で属性とインスタンスのリストを組み合わせることができます。
ハーベスタは、WebLogic Server MBeanとカスタムMBeanをサポートしています。WebLogic Server MBeanは、WebLogic Serverの一部としてパッケージ化されているMBeanです。カスタムMBeanは、ローカル・ランタイムMBeanサーバーに登録されている間は収集可能です。
WebLogic Serverとカスタムの型では、その指定方法が異なります。WebLogic Server MBeanの型では、型名はそのMBeanを定義するJavaインタフェースの名前です。たとえば、サーバーのランタイムMBeanの型名はweblogic.management.runtime.ServerRuntimeMBeanです。
カスタムMBeanの場合、ハーベスタは次のルールに従います。
MBeanがModelMBeanでなければ、型名は実装クラス名です。(たとえば、例7-1を参照してください。)
MBeanがModelMBeanの場合、型名はMBean記述子フィールドDiagnosticTypeNameの値。
これらの条件のどちらも満たされていない場合(MBeanがModelMBeanであり、MBean記述子field DiagnosticTypeNameのための値がなければ)、MBeanを収集することができません。
<harvested-type>要素は、DomainRuntime MBeanServerに登録されたMBeansからメトリックを収集ことができる<namespace>属性をサポートします。ただし、この属性を使用した収集は、ServerLifeCycleRuntimeMBeanなど、DomainRuntime固有のMBeanのみに制限することをお薦めします。リモートの管理対象サーバーMBeanもDomainRuntime MBeanServerを介して収集できますが、パフォーマンスに影響するため推奨されません。ベスト・プラクティスは、各管理対象サーバーで常駐ハーベスタを使用し、その管理対象サーバー・インスタンスに関連するメトリックをキャプチャすることです。
<namespace>属性は2つの値の1つを持つことができます。
ServerRuntime
DomainRuntime
<namespace>属性が省略される場合、それはServerRuntimeをデフォルトとします。
注意: DomainRuntime MBeanサーバーからの獲得は管理サーバーでのみ使用可能です。管理対象サーバーでDomainRuntime MBeansの収集ができません。たとえば、例7-5を参照してください。 |
WLDFでは、できる限り速やかに構成を検証しようとします。ほとんどの構成は、サーバーの起動時および動的な変更がコミットされる度に検証されます。ただし、JMXの制限により、カスタムMBeanはそのインスタンスがMBeanサーバーに登録されるまでは検証されません。
例7-2では、DIAG_MODULE.xml構成ファイルの<harvested-type>の要素は、ServerRuntimeMBeanが収集られることになっていると指定します。<harvested-instance>の下位要素が存在しないので、タイプのすべてのインスタンスが集められます。ただし、サーバーのランタイムMBeanのインスタンスは常に1つだけなので、特定のインスタンスのリストを指定する必要はありません。そして、<harvested-attribute>のある下位要素もないため、MBeanのすべての利用可能な属性がそれぞれの2つのインスタンスに対して収集されます。
例7-2 型のすべてのインスタンスと属性を収集する構成のサンプル(DIAG_MODULE.xml内)
<harvested-type> <name>weblogic.management.runtime.ServerRuntimeMBean</name> </harvested-type>
例7-3で、DIAG_MODULE.xml構成ファイルの<harvested-type>要素では、WLDFHarvesterRuntimeMBeanが収集されることを指定しています。上記の例と同様に、存在するWLDFHarvesterRuntimeMBeanは1つだけなので、特定のインスタンスのリストを指定する必要がありません。下位要素<harvested-attribute>は、WLDFHarvesterRuntimeMBeanの2つの利用可能な属性だけが収集られると指定しますTotalSamplingTimeとCurrentSnapshotElapsedTime。
例7-3 型のすべてのインスタンスの指定した属性を収集する構成のサンプル(DIAG_MODULE.xml内)
<harvested-type> <name>weblogic.management.runtime.WLDFHarvesterRuntimeMBean</name> <harvested-attribute>TotalSamplingTime</harvested-attribute> <harvested-attribute>CurrentSnapshotElapsedTime </harvested-attribute> </harvested-type>
例7-4で、DIAG_MODULE.xml構成ファイルの<harvested-type>要素では、カスタムMBean型の1つのインスタンスが収集されることを指定しています。この場合、カスタムMBeanなので、型名は実装クラスです。この例では、2つの<harvested-instance>要素で、この型のインスタンスが2つだけ収集されるように指定しています。各インスタンスは、JMX ObjectNameの標準表現を使用することで指定されます。<harvested-attribute>のインスタンスは指定されていないので、すべての属性が収集の対象になります。
例7-4 型の指定したインスタンスの指定したすべての属性を収集する構成のサンプル(DIAG_MODULE.xml内)
<harvested-type> <name>myMBeans.MySimpleStandard</name> <harvested-instance>myCustomDomain:Name=myCustomMBean1 </harvested-instance> <harvested-instance>myCustomDomain:Name=myCustomMBean2 </harvested-instance> </harvested-type>
例7-5で、DIAG_MODULE.xml構成ファイルの<harvested-type>要素では、ServerLifeCycleRuntimeMBeanが収集されることを指定しています。<namespace>属性では、これがDomainRuntime MBeanであることを指定しているため、この構成が適用されるのは管理サーバーのみです(「DomainRuntime MBeanServerからの収集」の「注意」を参照)。下位要素<harvested-attribute>は、StateVal属性だけが収集されることを指定します。