ブローカには、アプリケーションおよびブローカのパフォーマンスを監視し、診断するためのコンポーネントが含まれます。次のコンポーネントがあります。
データを生成するコンポーネント (イベントを記録するメトリックスジェネレータとブローカコード)
多数の出力チャネルに情報を書き込むロガーコンポーネント
メトリックス情報を含む JMS メッセージを、JMS 監視クライアントによって消費させるためにトピック送信先へ送るメトリックスメッセージプロデューサ
この仕組みの概略を、図 4–3 に示します。管理サービスを設定するブローカプロパティーを、「監視のプロパティー」に示します。
メトリックスジェネレータは、ブローカとの間で入出力されるメッセージフロー、ブローカメモリー内のメッセージ数とそれらが消費するメモリー量、開かれている接続の数、使用中のスレッドの数など、ブローカのアクティビティーに関する情報を提供します。ブール型のブローカプロパティー imq.metrics.enabled はそれらの情報を記録するかどうかを制御し、imq.metrics.interval は記録する頻度を指定します。
エラーの発生時に、ロガーで、ブローカコードおよびメトリックスジェネレータによって生成された情報が取得され、その情報が標準出力 (コンソール)、ログファイル、Solaris プラットフォーム、syslog デーモンプロセスに書き込まれます。使用するログファイルは imq.log.file.dirpath および imq.log.file.filename ブローカプロパティーで指定し、imq.log.console.stream はコンソールの出力を stdout または stderr のどちらに書き込むかを指定します。
imq.log.level プロパティーは、ロガーが収集するメトリックス情報のカテゴリを制御します。カテゴリは、ERROR、WARNING、または INFO です。各レベルにはそれ以上のレベルも含まれるため、たとえばロギングレベルとして WARNING を指定すると、エラーメッセージも記録されます。imq.log.console.output および imq.log.file.output プロパティーは、指定したカテゴリのどれをコンソールに書き込み、どれをログファイルに書き込むかを制御します。たとえば、エラーと警告の両方をログファイルに書き込み、情報メッセージをコンソールに書き込む場合は、明示的に imq.log.file.output を ERROR|WARNING に設定し、imq.log.console.output を INFO に設定する必要があります。Solaris プラットフォームでは、別のプロパティー imq.log.syslog.output で、syslog デーモンに書き込むメトリックス情報のカテゴリを指定します。デッドメッセージが破棄された場合、またはデッドメッセージキューに移動された場合にログに 記録するかどうかを指定するimq.destination.logDeadMsgs プロパティーもあります。
ログファイルの場合、ファイルを閉じて出力が新しいファイルにロールオーバーされる時点を指定できます。ログファイルが指定したサイズ (imq.log.file.rolloverbytes) または有効期間 (imq.log.file.rolloversecs) に達すると、保存されて新しいログファイルが作成されます。
ログに関連するその他のブローカプロパティーについては、「監視のプロパティー」を参照してください。また、ロガーの設定方法およびロガーを使用してパフォーマンス情報を取得する方法の詳細については、「ブローカロギングの設定と使用」を参照してください。
メトリックスメッセージプロデューサは、メトリックスジェネレータから定期的に情報を受け取り、メトリックスメッセージに情報を書き込みます。メトリックスメッセージは、メッセージに含まれるメッセージ情報のタイプに応じて、多数のメトリックストピック送信先のいずれかに送信されます (表 4–2 を参照)。これらのメトリックストピック送信先にサブスクライブされている Message Queue クライアントはメッセージを消費し、それらに含まれるメトリックスを処理できます。これにより、開発者はカスタム監視ツールを作成して、メッセージングアプリケーションをサポートできます。各タイプのメトリックスメッセージで報告されるメトリックス数の詳細は、『Message Queue Developer's Guide for Java Clients』を参照してください。
表 4–2 メトリックスのトピック送信先
トピック名 | |
---|---|
mq.metrics.broker |
ブローカのメトリックス |
mq.metrics.jvm |
Java 仮想マシンのメトリックス |
mq.metrics.destination_list |
送信先とそれらのタイプのリスト |
mq.metrics.destination.queue.queueName |
指定したキューの送信先メトリックス |
mq.metrics.destination.topic.topicName |
指定したトピックの送信先メトリックス |
ブローカプロパティー imq.metrics.topic.enabled および imq.metrics.topic.interval はそれぞれ、メッセージをメトリックストピック送信先に送信するかどうかと、その頻度を制御します。imq.metrics.topic.timetolive および imq.metrics.topic.persist プロパティーは、それらのメッセージの有効期間とそれらが持続メッセージであるかどうかを指定します。
メトリックスメッセージの本文に含まれる情報以外に、各メッセージのヘッダーには次の追加情報を提供するプロパティーが含まれます。
メッセージのタイプ
メッセージを送信したブローカのアドレス (ホスト名とポート番号)
メトリックスサンプルを採取した時間
これらのプロパティーは、異なる種類または異なるブローカからのメトリックスメッセージを処理するクライアントアプリケーションに有用です。