21.5. JBoss EAP の応答時間メトリクスの設定
JBoss ON は、応答してデプロイされたアプリケーションがクライアントリクエストにどのように反応するかをテストすることで、アプリケーションのパフォーマンスを監視できます。特に、JBoss ON はアプリケーションがリクエストに応答する速度を決定することができます。これは 応答時間測定 と呼ばれます。
JBoss EAP サーバーの応答時間メトリクスを収集するには、最初に応答時間フィルターのサーブレット JAR をインストールし、Web サーバーがこれを使用するように設定します。次に、Web リソースのメトリクスコレクションを有効にします。
21.5.1. JBoss EAP 6 の応答時間フィルターのインストール
注記
応答時間メトリクスを収集するには、サーバー http(s)管理インターフェースに接続するために EAP 6 エージェントプラグインを設定する必要があります。
JBoss EAP での応答時間フィルターのインストール方法
以下の手順に従って、JBoss EAP 6 に応答時間フィルターを正しくインストール
前提条件
- JBoss EAP 6 インスタンスにアクセスするための管理ユーザーを作成します。手順は 、JBoss EAP 6『 『管理および設定ガイド』の「管理』 インターフェースのユーザーの追加 」を参照してください。
- JBoss EAP サーバーをインベントリーで設定します。手順は、「 管理コンソールを使用したサーバーの設定 」を参照してください。
手順21.1
- JBoss ON UI から JBoss の応答時間パッケージをダウンロードします。応答時間フィルターは AS 7 モジュールとしてパッケージ化されます。以下を取得するモジュールは 2 つあります。
rhq-rtfilter-module.zip rhq-rtfilter-subsystem-module.zip
注記これは、wget以下のコマンドを使用してコマンドラインから行うこともできます。[root@server ~]# wget http://server.example.com:7080/downloads/connectors/rhq-rtfilter-module.zip [root@server ~]# wget http://server.example.com:7080/downloads/connectors/rhq-rtfilter-subsystem-module.zip
- トップメニューの Administration タブをクリックします。
- 左側の Configuration メニューボックスで、Downloads 項目を選択します。
- rhq-rtfilter-module.zip および rhq-rtfilter-subsystem-module.zip リンクをクリックし、ディレクトリーなどのアクセス可能なディレクトリーにファイルを保存し
/tmp
ます。
- JBoss EAP 6 インスタンスの
modules/
ディレクトリーを開きます。例:[root@server ~]# cd /opt/jboss-eap-6.0/modules/
rhq-rtfilter-module.zip
アーカイブを展開して、応答時間フィルター JAR と関連するmodule.xml
ファイルをインストールします。[root@server modules]# unzip /tmp/rhq-rtfilter-module.zip
- サーバーの設定ファイル
domain.xml
またはを開きstandalone.xml
ます。 - <subsystem> 要素内のグローバルモジュールのリストにモジュールを追加して、応答時間モジュールをグローバルにデプロイします。ファイルが完了したら、保存します。
<profile... <subsystem xmlns="urn:jboss:domain:ee:1.1"> <global-modules> <module name="org.rhq.helpers.rhq-rtfilter" slot="main"/> </global-modules> </subsystem> </profile>
rhq-rtfilter-subsystem-module.zip
アーカイブを展開してサブシステムの応答時間フィルター JAR と関連するmodule.xml
ファイルをインストールします。[root@server modules]# unzip /tmp/rhq-rtfilter-subsystem-module.zip
これにより、フィルターがアプリケーションサーバーまたは個別の Web アプリケーションのサブシステムとしてインストールされます。- フィルターをインストールしたら、JBoss EAP 6 サーバーをサーバーを使用するように設定する必要があります。応答時間フィルターは、EAP/AS インスタンスがホストするすべての Web アプリケーションに対してグローバルにデプロイすることも、特定の Web アプリケーションに対して設定することもできます。フィルターをグローバルサブシステムとしてデプロイするには、以下を行います。
- サーバーの設定ファイル
domain.xml
またはを開きstandalone.xml
ます。 - 応答時間フィルターに <extensions> 要素を追加します。
<extension module="org.rhq.helpers.rhq-rtfilter-subsystem"/>
- 要素の下に <subsystem> <profile> 要素を追加します。応答時間フィルターが機能するために必要となるのは、オプションのパラメーターを除いたデフォルトの <subsystem> 要素のみです。ただし、パラメーターのコメントを解除して、必要に応じて設定できます。異なるパラメーターについては、で説明してい 表21.1「ユーザー定義の <filter> Settings に使用できるパラメーター」 ます。オプションのパラメーターが設定されていない場合でも、<subsystem> 要素を追加する必要があります。
<subsystem xmlns="urn:rhq:rtfilter:1.0"> <!-- Optional parameters. <init-param> <param-name>chopQueryString</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>logDirectory</param-name> <param-value>/tmp</param-value> </init-param> <init-param> <param-name>logFilePrefix</param-name> <param-value>localhost_7080_</param-value> </init-param> <init-param> <param-name>dontLogRegEx</param-name> <param-value></param-value> </init-param> <init-param> <param-name>matchOnUriOnly</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>timeBetweenFlushesInSec</param-name> <param-value>73</param-value> </init-param> <init-param> <param-name>flushAfterLines</param-name> <param-value>13</param-value> </init-param> <init-param> <param-name>maxLogFileSize</param-name> <param-value>5242880</param-value> </init-param> --> </subsystem>
手順21.2 JBoss EAP 6 で個別の Web アプリケーションに応答時間フィルターを設定する方法
- Web アプリケーションの
web.xml
ファイルを開きます。[root@server ~]# vim WARHomeDir/WEB-INF/web.xml
- フィルターを追加し、設定に応じてマッピング要素をファイルにフィルターします。これにより、応答時間フィルターが有効になります。応答時間フィルターが機能するために必要となるのは、オプションのパラメーターを除いたデフォルトの <filter> 要素のみです。ただし、パラメーターのコメントを解除して、必要に応じて設定できます。異なるパラメーターについては、で説明してい 表21.1「ユーザー定義の <filter> Settings に使用できるパラメーター」 ます。
<filter> <filter-name>RhqRtFilter</filter-name> <filter-class>org.rhq.helpers.rtfilter.filter.RtFilter</filter-class> <!-- Optional parameters. <init-param> <param-name>chopQueryString</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>logDirectory</param-name> <param-value>/tmp</param-value> </init-param> <init-param> <param-name>logFilePrefix</param-name> <param-value>localhost_7080_</param-value> </init-param> <init-param> <param-name>dontLogRegEx</param-name> <param-value></param-value> </init-param> <init-param> <param-name>matchOnUriOnly</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>timeBetweenFlushesInSec</param-name> <param-value>73</param-value> </init-param> <init-param> <param-name>flushAfterLines</param-name> <param-value>13</param-value> </init-param> <init-param> <param-name>maxLogFileSize</param-name> <param-value>5242880</param-value> </init-param> --> </filter> <!-- Use this only when also enabling the RhqRtFilter in the filter <filter-mapping> <filter-name>RhqRtFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> -->
- JBoss EAP サーバーを再起動して、新しい
web.xml
設定を読み込みます。
パラメーター
|
description
|
---|---|
chopQueryString
|
このパラメーターが true に設定されている場合、クエリーの URI 部分のみがログに記録されます。それ以外の場合は、クエリー行全体がログに記録されます。デフォルトは true です。
|
logDirectory
|
ログファイルが書き込まれるディレクトリー。デフォルト設定は {
jboss.server.log.dir}/rt/ (通常は server/xxx/log/rt )です。このプロパティーが定義されていない場合は、フォールバックは {java.io.tmpdir}/rt/ (/tmp/ on)になります。 UNIX®および ~/Application Data/Local Settings/Temp - TEMP 環境変数が使用されることを確認します。この init パラメーターを指定すると、ディレクトリーは作成 rt/ されませんが、指定したディレクトリーは文字どおりに取得されます。
|
logFilePrefix
|
ログファイルの前に配置される接頭辞。デフォルトは空の文字列です。
|
dontLogRegEx
|
クエリー文字列に適用される正規表現。See java.util.regex.Pattern.パラメーターが指定されていない場合や、空の文字列は適用されません。
|
matchOnUriOnly
|
dontLogRegEx はクエリーの URI 部分(true)またはクエリー文字列(false)全体に適用される必要があります。デフォルトは true です。
|
timeBetweenFlushesInSec
|
ログ行はデフォルトでバッファーされます。指定の秒数を超え、新しいリクエストを受け取ると、(を参照)後にフラッシュする行数がまだ到達していない場合でも、バッファーされた行はディスクにフラッシュされます。デフォルト値は 60 秒(1 分)です。
|
flushAfterLines
|
ログ行はデフォルトでバッファーされます。指定された行がバッファーされると、ディスクにフラッシュされます。デフォルト値は 10 行です。
|
maxLogFileSize
|
ログファイルの最大許容サイズ(バイト単位)。ログファイルがこの制限を超えると、フィルターは切り捨てられます。デフォルト値は 5242880(5 MB)です。
|
vHostMappingFile
|
このプロパティーファイルは、Tomcat プロセスクラスパスに存在する必要があります。たとえば、../conf/vhost-mappings.properties のようになります。ファイルには、「着信」 vhost(サーバー名)から応答時間のログファイル名の接頭辞として使用する vhost へのマッピングが含まれます。マッピングがない場合(ファイルまたはエントリーの応答時間が設定されていない場合)、受信 vhost(サーバー名)が使用されます。例:
pickeldi.users.acme.com=pickeldi pickeldi= %HOST%=
最初のマッピングでは、受信 vhost が 'host1.users.acme.com' の場合は、ログファイル名に「host1」の vhost をプレフィックスとして取得し、コンテキストルート部分から _ で区切ります。2 つ目のマッピングでは、「incoming」 vhost が「host1」で、接頭辞なし、_ を使用しない場合が示されます。3 つ目のマッピングは、特別な左端トークンである%HOST%' を使用します。このマッピングでは、「incoming」 vhost が localhost の表現である場合、接頭辞なし、_ を使用すべきです。
%host% は、InetAddress.getLocalHost()の実装によって返されるホスト名、または正規のホスト名または IP アドレスに一致します。
2 つ目のマッピングは空の右側の例ですが、vhost も提供しました。
これはワンタイム置換です。1 行目の結果が 2 番目の行に適用されるという形式の再帰はありません。
|
21.5.2. JBoss EAP 7 の応答時間フィルターのインストール
注記
応答時間メトリクスを収集するには、JBoss EAP 7 エージェントプラグインを設定してサーバー http(s)管理インターフェースに接続する必要があります。
JBoss EAP での応答時間フィルターのインストール方法
以下の手順に従って、JBoss EAP 7 に応答時間フィルターを正しくインストール
前提条件
- JBoss EAP 7 インスタンスにアクセスするための管理ユーザーを作成します。手順は 、JBoss EAP 7『 『管理および設定ガイド』の「管理』 インターフェースのユーザーの追加 」を参照してください。
- JBoss EAP サーバーをインベントリーで設定します。手順は、「 管理コンソールを使用したサーバーの設定 」を参照してください。
手順21.3
- JBoss ON UI から JBoss の応答時間パッケージをダウンロードします。応答時間フィルターは AS 7 モジュールとしてパッケージ化されます。取得するモジュールは 2 つあります。両方は 1 つの zip アーカイブに含まれます。
rhq-rtfilter-wfly-10-dist.zip
注記これは、wget以下のコマンドを使用してコマンドラインから行うこともできます。[root@server ~]# wget http://server.example.com:7080/downloads/connectors/rhq-rtfilter-wfly-10-dist.zip
- トップメニューの Administration タブをクリックします。
- 左側の Configuration メニューボックスで、Downloads 項目を選択します。
- rhq-rtfilter-wfly-10-dist.zip リンクをクリックして、ディレクトリーなどのアクセス可能なディレクトリーにファイルを保存し
/tmp
ます。
- JBoss EAP 7 インスタンスの
modules/
ディレクトリーを開きます。例:[root@server ~]# cd /opt/jboss-eap-7.0/modules/
rhq-rtfilter-wfly-10-dist.zip
アーカイブを展開して JAR と関連するmodule.xml
ファイルをインストールします。[root@server modules]# unzip /tmp/rhq-rtfilter-wfly-10-dist.zip
- サーバーの設定ファイル
domain.xml
またはを開きstandalone.xml
ます。 - <subsystem> 要素内のグローバルモジュールのリストにモジュールを追加して、応答時間モジュールをグローバルにデプロイします。domain:ee サブシステムのバージョンは JBoss EAP のバージョンごとに異なることに注意してください。ファイルが完了したら、保存します。
<profile... <subsystem xmlns="urn:jboss:domain:ee:1.1"> <global-modules> <module name="org.rhq.helpers.rhq-rtfilter" slot="main"/> </global-modules> </subsystem> </profile>
- フィルターをインストールしたら、JBoss EAP 7 サーバーをサーバーを使用するように設定する必要があります。応答時間フィルターは、JBoss EAP インスタンスがホストするすべての web アプリケーションに対してグローバルにデプロイすることも、特定の web アプリケーションに設定することもできます。フィルターをグローバルサブシステムとしてデプロイするには、以下を行います。
- サーバーの設定ファイル
domain.xml
またはを開きstandalone.xml
ます。 - 応答時間フィルターに <extensions> 要素を追加します。
<extension module="org.rhq.helpers.rhq-rtfilter-wfly-10-subsystem"/>
- 要素の下に <subsystem> <profile> 要素を追加します。応答時間フィルターが機能するために必要となるのは、オプションのパラメーターを除いたデフォルトの <subsystem> 要素のみです。ただし、パラメーターのコメントを解除して、必要に応じて設定できます。異なるパラメーターについては、で説明してい 表21.2「ユーザー定義の <filter> Settings に使用できるパラメーター」 ます。オプションのパラメーターが設定されていない場合でも、<subsystem> 要素を追加する必要があります。
<subsystem xmlns="urn:rhq:rtfilter:1.0"> <!-- Optional parameters. <init-param> <param-name>chopQueryString</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>logDirectory</param-name> <param-value>/tmp</param-value> </init-param> <init-param> <param-name>logFilePrefix</param-name> <param-value>localhost_7080_</param-value> </init-param> <init-param> <param-name>dontLogRegEx</param-name> <param-value></param-value> </init-param> <init-param> <param-name>matchOnUriOnly</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>timeBetweenFlushesInSec</param-name> <param-value>73</param-value> </init-param> <init-param> <param-name>flushAfterLines</param-name> <param-value>13</param-value> </init-param> <init-param> <param-name>maxLogFileSize</param-name> <param-value>5242880</param-value> </init-param> --> </subsystem>
手順21.4 JBoss EAP 7 で個別の Web アプリケーションに応答時間フィルターを設定する方法
- Web アプリケーションの
web.xml
ファイルを開きます。[root@server ~]# vim WARHomeDir/WEB-INF/web.xml
- フィルターを追加し、設定に応じてマッピング要素をファイルにフィルターします。これにより、応答時間フィルターが有効になります。応答時間フィルターが機能するために必要となるのは、オプションのパラメーターを除いたデフォルトの <filter> 要素のみです。ただし、パラメーターのコメントを解除して、必要に応じて設定できます。異なるパラメーターについては、で説明してい 表21.2「ユーザー定義の <filter> Settings に使用できるパラメーター」 ます。
<filter> <filter-name>RhqRtFilter</filter-name> <filter-class>org.rhq.helpers.rtfilter.filter.RtFilter</filter-class> <!-- Optional parameters. <init-param> <param-name>chopQueryString</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>logDirectory</param-name> <param-value>/tmp</param-value> </init-param> <init-param> <param-name>logFilePrefix</param-name> <param-value>localhost_7080_</param-value> </init-param> <init-param> <param-name>dontLogRegEx</param-name> <param-value></param-value> </init-param> <init-param> <param-name>matchOnUriOnly</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>timeBetweenFlushesInSec</param-name> <param-value>73</param-value> </init-param> <init-param> <param-name>flushAfterLines</param-name> <param-value>13</param-value> </init-param> <init-param> <param-name>maxLogFileSize</param-name> <param-value>5242880</param-value> </init-param> --> </filter> <!-- Use this only when also enabling the RhqRtFilter in the filter <filter-mapping> <filter-name>RhqRtFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> -->
- JBoss EAP サーバーを再起動して、新しい
web.xml
設定を読み込みます。
パラメーター
|
description
|
---|---|
chopQueryString
|
このパラメーターが true に設定されている場合、クエリーの URI 部分のみがログに記録されます。それ以外の場合は、クエリー行全体がログに記録されます。デフォルトは true です。
|
logDirectory
|
ログファイルが書き込まれるディレクトリー。デフォルト設定は {
jboss.server.log.dir}/rt/ (通常は server/xxx/log/rt )です。このプロパティーが定義されていない場合は、フォールバックは {java.io.tmpdir}/rt/ (/tmp/ on)になります。 UNIX®および ~/Application Data/Local Settings/Temp - TEMP 環境変数が使用されることを確認します。この init パラメーターを指定すると、ディレクトリーは作成 rt/ されませんが、指定したディレクトリーは文字どおりに取得されます。
|
logFilePrefix
|
ログファイルの前に配置される接頭辞。デフォルトは空の文字列です。
|
dontLogRegEx
|
クエリー文字列に適用される正規表現。See java.util.regex.Pattern.パラメーターが指定されていない場合や、空の文字列は適用されません。
|
matchOnUriOnly
|
dontLogRegEx はクエリーの URI 部分(true)またはクエリー文字列(false)全体に適用される必要があります。デフォルトは true です。
|
timeBetweenFlushesInSec
|
ログ行はデフォルトでバッファーされます。指定の秒数を超え、新しいリクエストを受け取ると、(を参照)後にフラッシュする行数がまだ到達していない場合でも、バッファーされた行はディスクにフラッシュされます。デフォルト値は 60 秒(1 分)です。
|
flushAfterLines
|
ログ行はデフォルトでバッファーされます。指定された行がバッファーされると、ディスクにフラッシュされます。デフォルト値は 10 行です。
|
maxLogFileSize
|
ログファイルの最大許容サイズ(バイト単位)。ログファイルがこの制限を超えると、フィルターは切り捨てられます。デフォルト値は 5242880(5 MB)です。
|
vHostMappingFile
|
このプロパティーファイルは、Tomcat プロセスクラスパスに存在する必要があります。たとえば、../conf/vhost-mappings.properties のようになります。ファイルには、「着信」 vhost(サーバー名)から応答時間のログファイル名の接頭辞として使用する vhost へのマッピングが含まれます。マッピングがない場合(ファイルまたはエントリーの応答時間が設定されていない場合)、受信 vhost(サーバー名)が使用されます。例:
pickeldi.users.acme.com=pickeldi pickeldi= %HOST%=
最初のマッピングでは、受信 vhost が 'host1.users.acme.com' の場合は、ログファイル名に「host1」の vhost をプレフィックスとして取得し、コンテキストルート部分から _ で区切ります。2 つ目のマッピングでは、「incoming」 vhost が「host1」で、接頭辞なし、_ を使用しない場合が示されます。3 つ目のマッピングは、特別な左端トークンである%HOST%' を使用します。このマッピングでは、「incoming」 vhost が localhost の表現である場合、接頭辞なし、_ を使用すべきです。
%host% は、InetAddress.getLocalHost()の実装によって返されるホスト名、または正規のホスト名または IP アドレスに一致します。
2 つ目のマッピングは空の右側の例ですが、vhost も提供しました。
これはワンタイム置換です。1 行目の結果が 2 番目の行に適用されるという形式の再帰はありません。
|
21.5.3. 呼び出し時メトリックの有効化
応答時間メトリクスは、ライブアプリケーションのデプロイメントで設定されます。デプロイメントリソースは、スタンドアロン EAP 6 サーバーまたはサーバーグループのいずれかの子です。
図21.2 Web ランタイムリソース
- トップメニューの Inventory タブをクリックします。
- Servers - Top Level Imports 項目をクリックし、JBoss EAP 6 リソースを選択します。
- デプロイメントリソースに移動し、web サブシステムにアプリケーションを展開します。
- Web リソースエントリーの Monitoring タブをクリックします。
- Schedules サブタブをクリックします。
- Response Time メトリクスを選択します。このメトリクスは呼び出し時間 タイプ です。
- 一覧の Enable 下部にあるをクリックします。
- Web エントリーの Inventory タブをクリックします。
- Connection Settings サブタブを選択します。
- 応答時間設定のチェックボックスの設定を解除し、Web アプリケーションに適した値を入力します。
- 特定の Web アプリケーションによって使用される応答時間ログ。ログファイルは、call-time データコレクションが機能するのに必須の設定です。
- 応答時間の測定から除外するファイル、要素、またはページ。応答時間ログは、Web サーバーが処理するすべてのリソースの時間を記録します。これには、CSS ファイルやアイコン、背景イメージなどのサポートファイルが含まれます。
- URL で渡された異なるパラメーターを使用して同じページにアクセスできます。この Response Time Url Transforms フィールドは、渡されたパラメーターのストライピングや置き換えに使用できる正規表現を提供します。