Coherenceで運用管理に必要なデータを計測し、レポートを作成するサンプルをご紹介します。
[訳注] OracleはCoherenceを運用管理するためにEnterprise Managerのプラグインとして、Management Pack for Oracle Coherenceを提供しています。
シナリオ
CoherenceのInsert、Update、Continuous Queryの操作に関するベンチマークテストを実施します。
各テストの計測結果をカスタムMBeansに渡します。
Coherence JMX Reporterを使ってカスタムMBeansからデータを取得し、カスタムレポートを作成します。
構成
格納可能なノード:1
プロキシノード:1
Coherence拡張クライアント:3
管理ノード:1
- Coherence MBeansのカスタム設定
- Coherence管理ノードの作成と構成
- CoherenceクラスタをJMXで管理するためには、Coherenceクラスタを構成する少なくとも1個のノード(MBeanServerホスト)のクラスパスに、JMX 1.0以後のクラス(javax.management.*)が存在している必要があります。
- クラスタを構成するMBeanServerホストではないノードは、MBeanServerホストがCoherence Invocation Serviceを用いて管理します。
- 管理ノードの起動ファイルは以下の通りです。このうち、com.tangosol.net.management.MBeanConnector -rmi は、Coherenceクラスタを開始し、JMXエージェント(WebブラウザやJConsoleなど)が実行中のJMX MBeanServerに接続して、Coherence MBeansを管理できるようにするものです。JConsoleで接続する場合に -rmi オプションを使用します。
JAVA_OPTS="-Xms$MEMORY -Xmx$MEMORY -Dtangosol.coherence.management.report.configuration=$TEST_HOME/reportsIntel/report-group.xml -Dtangosol.coherence.override=$TEST_HOME/config/tangosol-management-coherence-override-dev.xml -Dtangosol.coherence.management.remote=true; -Dtangosol.coherence.management.report.autostart=true -Dtangosol.coherence.mbeans=mBeans.xml -Dtangosol.coherence.management=all"
$JAVAEXEC -server -showversion $JAVA_OPTS -cp "$COHERENCE_HOME/lib/coherence.jar:$TEST_HOME/build/classes:$TEST_HOME/config:$TEST_HOME/lib/jmxri.jar:$TEST_HOME/lib/jmxtools.jar" com.tangosol.net.management.MBeanConnector -rmi
- カスタムMBeanの作成
- Mbeansに関して詳細を知りたい方は以下のURLを参照してください。http://download.oracle.com/javase/tutorial/jmx/mbeans/standard.html
- [訳注]原文では、各操作に対応するMBeansを作成するコードが続きます。コードを確認したい方は原文を参照してください。
- mbeansというプロジェクトに新しいパッケージを作成
- generic mbean インターフェースクラスを作成
- PerformanceMBean インターフェースを実装
- 測定したい各操作のPerformanceクラスを継承
- Mbeansクラスを Coherence 管理ノードのクラスパスに追加
-cp $TEST_HOME/build/classes - カスタムMBean構成ファイルを作成
- カスタムMBean構成ファイルの名前と場所をCoherence 管理ノードに指定
-Dtangosol.coherence.mbeans=(mBeans構成ファイル名) - JMX カスタムMBeansに接続し、最新の結果で更新
com.oracle.coherence.jmxUrl=service:jmx:rmi://(ホスト名もしくはIP):3000/jndi/rmi://(ホスト名もしくはIP):9000/server - JConsoleを使ってカスタムMBeansの動作を確認
- カスタムレポートの作成
- Coherenceのレポーティング機能は、Coherence JMXデータソースに存在するあらゆる情報をテキストファイルに出力するクエリを定義することができます。
- カスタム定義レポートを作成すると、ReportControl MBeanによって一定間隔でレポート出力することができるようになります。
- CoherenceのJMXレポーティング機能(Reporter)を使うと、簡単にレポート出力できますので、管理者や開発者がキャパシティ管理や問題解決に役立てることができます。もちろんカスタムレポートも作成できます。
- ローカライズ後、カスタムレポート構成ファイルを抽出
- <Coherence_Home>/lib の coherence.jar を展開し、プロジェクトフォルダにreportsフォルダをコピーします。
- そのフォルダにはreport-group.xmlや他の構成ファイルが存在している必要があります。
- 管理ノードを設定してカスタムレポート構成ファイルをロード
- 管理ノード起動ファイル中で、管理ノードがレポート構成ファイルにアクセスできるように記述します。この記述がないと、デフォルトの場所(coherence.jar/reports)からレポート構成ファイルをロードしようとしますので注意が必要です。
-Dtangosol.coherence.management.report.configuration=$TEST_HOME/reportsIntelreport-group.xml
- 管理ノード起動ファイル中で、管理ノードがレポート構成ファイルにアクセスできるように記述します。この記述がないと、デフォルトの場所(coherence.jar/reports)からレポート構成ファイルをロードしようとしますので注意が必要です。
- 作成したいレポートそれぞれについて新しく構成ファイルを作成
- [訳注]insertに対応するレポート構成ファイルのサンプルが原文にUpされています。
- 要素 <file-name> はレポートファイル名です。
- 次の<query>要素でカスタムレポートで使用するMBeanを定義します。
<query><pattern>Coherence:type=Performance,name=WritePerformance,*</pattern></query>
- Mbean 属性とレポートデフォルト属性を使って、カスタムレポートを作成します
- Report のデフォルト属性
<column id ="ReportTime"><type>global</type><name>{report-time}</name><header>Report Time</header></column>
- MBean 属性
<column id ="MaxOperationDuration"><name>MaxOperationDuration</name><header>Total(until now) Maximum Write Operation Duration</header></column>
- レポート構成ファイルをCoherence JMX Reporter構成ファイル(report-group.xml)に追加
- Frequency要素はレポーティングの周期、output-directoryはレポート出力先です。
<!DOCTYPE report-group SYSTEM "report-group.dtd"><report-group><frequency>30s</frequency><output-directory>/media/Software/reports/</output-directory><report-list><report-config><location>/media/Software/report-running-write-performance.xml</location></report-config><report-config>
...
http://blogs.oracle.com/cosmintudor/2011/01/custom_coherence_monitoring_and_reporting.html
0 件のコメント:
コメントを投稿