Java エージェント プロパティの設定
内容
apmdevops96jp
内容
ほとんどのエージェント オペレーションは
IntroscopeAgent.profile
ファイル内のプロパティを使用して設定します。 このセクションでは設定の際に最もよく使用されるエージェント プロパティについて説明します。 使用している環境によっては追加のプロパティが必要な場合があります。 エージェントのバージョンが異なると、設定に使用できるプロパティが異なっていたり、デフォルト値が異なっていたりする場合があります。バックアップの Enterprise Manager およびフェールオーバ プロパティを設定する方法
エージェントのインストール時には、エージェントがデフォルトで接続する Enterprise Manager のホスト名とポート番号を指定します。 オプションで、1 つ以上のバックアップ Enterprise Manager を指定することもできます。 エージェントとプライマリ Enterprise Manager の接続が切断された場合、エージェントはバックアップ Enterprise Manager への接続を試行できます。
エージェントがバックアップ Enterprise Manager に接続できるようにするには、エージェント プロファイルで Enterprise Manager の通信プロパティを指定します。 プライマリ Enterprise Manager が利用可能でない場合、エージェントは、許可されている接続のリスト上で次に利用できる Enterprise Manager に接続を試みます。 リスト内の最初のバックアップ Enterprise Manager に接続できない場合は、その次の Enterprise Manager を試します。 プロセスは、接続が成功するまで、リストに記載された順に各 Enterprise Manager への接続を試行します。 どの Enterprise Manager にも接続できない場合は、再試行する前に 10 秒間待機します。
以下の手順に従います。
- Introscope.Agent.profileファイルをテキスト エディタで開きます。
- 各バックアップ Enterprise Manager のエージェント プロファイルに以下のプロパティを追加して、1 つ以上の代替 Enterprise Manager 通信チャネルを指定します。introscope.agent.enterprisemanager.transport.tcp.host.NAMEintroscope.agent.enterprisemanager.transport.tcp.port.NAMEIntroscope.agent.enterprisemanager.transport.tcp.socketfactory.NAMENAMEを新しい Enterprise Manager チャネルの識別子と置き換えます。 チャネルを作成するときには、名前に「DEFAULT」または既存のチャネルの名前を使用しないでください。 たとえば、2 つのバックアップ Enterprise Manager を作成するには、以下のように指定します。introscope.agent.enterprisemanager.transport.tcp.host.BackupEM1=parisintroscope.agent.enterprisemanager.transport.tcp.port.BackupEM1=5001Introscope.agent.enterprisemanager.transport.tcp.socketfactory.BackupEM1=com.custom.postofficehub.link.net.DefaultSocketFactoryintroscope.agent.enterprisemanager.transport.tcp.host.BackupEM2=voyagerintroscope.agent.enterprisemanager.transport.tcp.port.BackupEM2=5002introscope.agent.enterprisemanager.transport.tcp.socketfactory.BackupEM2=com.wily.isengard.postofficehub.link.net.DefaultSocketFactory
- introscope.agent.enterprisemanager.connectionorderプロパティを探し、プライマリおよびバックアップ Enterprise Manager の識別子のカンマ区切りリストを設定します。 識別子を登録する順序によって、それらが接続される順序が決まります。 たとえば、以下の通りです。introscope.agent.enterprisemanager.connectionorder=DEFAULT,BackupEM1,BackupEM2
- 変更を保存し、IntroscopeAgent.profileファイルを閉じます。
- アプリケーションを再起動します。
追加の GC メトリックを有効にして使用する方法
ガベージ コレクションおよびメモリ管理は、アプリケーションのパフォーマンスに重要な効果をもたらします。 基本的な GC ヒープ メトリックはデフォルトで利用できます。 ガベージ コレクション処理およびメモリ プール使用量の詳細について説明するためのオプションのメトリックを有効にできます。 このような追加メトリックは、有効にすると、Investigator の[GC Monitor]ノードに表示されます。 GC Monitor メトリックによって、メモリ プール割り当ておよびガベージ コレクション処理を最適化するのに役立つ情報がレポートされます。 そのため、アプリケーションを開発またはテストを行うときや、アプリケーション パフォーマンスの問題を調査するときは、通常、これらのメトリックが有効にされます。 ほとんどの場合、これらのメトリックは実運用環境におけるリアルタイムのアプリケーション管理には使用されず、デフォルトで無効になっています。
GC 監視メトリックを有効にするには、エージェント プロファイルを開き、
introscope.agent.gcmonitor.enable
プロパティを true に設定します。 プロパティを有効にすると、監視している JVM でのガベージ コレクションおよびメモリ プールに関する詳細を表示できます。注:
メトリックの詳細については、「CA APM Workstation ユーザ ガイド
」を参照してください。スレッド ダンプを有効にして設定する方法
スレッド ダンプからは、エージェント JVM 内で発生していることに関する有用な詳細情報を得ることができます。 スレッド ダンプの機能は、メトリック ブラウザ ツリー内の各エージェント ノードに関連付けられている[スレッド ダンプ]タブで提供されます。
スレッド ダンプの収集および分析については、「
CA APM Workstation ユーザ ガイド
」を参照してください。 Thread_Dump 権限を設定すると、[スレッド ダンプ]タブが表示され、そのすべての機能を使用できるようになります。IntroscopeAgent.profile
プロパティと IntroscopeEnterpriseManager.properties
プロパティはどちらも、スレッド ダンプを有効にするために必要です。 デフォルトでは、[スレッド ダンプ]タブおよびその機能は有効です。 ただし、スレッド ダンプ プロパティのいずれか一方または両方のプロパティを false に設定した場合、[スレッド ダンプ]タブは表示されません。MOM 上でスレッド ダンプを有効または無効にした場合、その設定はクラスタ内のすべてのコレクタに適用されます。 そのため、MOM 上でスレッド ダンプを無効にすると、すべてのコレクタ上でも無効になります。
スレッド ダンプを有効にする方法
- <Agent_Home>/core/config ディレクトリのIntroscopeAgent.profileファイルを開いて、このプロパティを設定します。introscope.agent.threaddump.enable=true
- IntroscopeAgent.profileファイルを保存して閉じます。
- <EM_Home>/config ディレクトリのIntroscopeEnterpriseManager.propertiesファイルを開き、以下のプロパティを設定します。introscope.enterprisemanager.threaddump.enable=true
- IntroscopeEnterpriseManager.properties ファイルを保存して閉じます。
Introscope ユーザがデッドロック数メトリックを表示するためには、
IntroscopeAgent.profile
を設定します。 追加の設定を行うと、エージェントの[スレッド]ノードのメトリックを表示できます。デッドロック数メトリック コレクションを有効にする方法
- <Agent_Home>/core/config ディレクトリのIntroscopeAgent.profileファイルを開きます。
- デッドロック数メトリック コレクションを有効にするには、以下のプロパティを true に設定します。introscope.agent.threaddump.deadlockpoller.enable=true
- (オプション) エージェントの[スレッド]ノードにメトリックを表示するには、フル バージョンの PBL を設定します。
- PBL ファイルの名前を、このプロパティで指定します: introscope.autoprobe.directivesFileたとえば、WebLogic Server のフル バージョンの標準 PBL を使用するには、以下のようにプロパティを設定します。introscope.autoprobe.directivesFile=weblogic-full.pbl[エージェント名] | [スレッド]の下に、アクティブ スレッド数やスレッド グループなどのメトリックを表示できます。
- IntroscopeAgent.profileファイルを保存して閉じます。
IntroscopeAgent.profile
プロパティと IntroscopeEnterpriseManager.properties
プロパティの両方を使用して、スレッド ダンプを設定します。スレッド ダンプを設定する方法
- <EM_Home>/config ディレクトリにあるIntroscopeEnterpriseManager.propertiesファイルを開きます。
- (オプション) Enterprise Manager 上の特定のディレクトリにスレッド ダンプ ファイルを保存するには、以下のプロパティを設定します。 たとえば、TestThreadDumps です。introscope.enterprisemanager.threaddump.storage.dir=TestThreadDumps
- (オプション)指定した日数より古いスレッド ダンプ ファイルをパージするには、以下のプロパティを設定します 30 日の場合は以下のように指定します。introscope.enterprisemanager.threaddump.storage.clean.disk.olderthan.days=30
- (オプション)指定した日数が経過したらスレッド ダンプ ファイルをパージするには、以下のプロパティを設定します 2 日おきの場合は以下のように指定します。introscope.enterprisemanager.threaddump.storage.clean.disk.freq.days=2
- (オプション) Enterprise Manager 上に保存できるスレッド ダンプ ファイルの最大数を制限するには、以下のプロパティを設定します。 5,000 ファイルの場合は以下のように指定します。introscope.enterprisemanager.threaddump.storage.max.disk.usage=5000注:* 保存されるスレッド ダンプ ファイルの数が、introscope.enterprisemanager.threaddump.storage.max.disk.usage プロパティで設定された制限を超えていると* introscope.enterprisemanager.threaddump.storage.clean.disk.olderthan.days プロパティで設定された日数より古いファイルがないこれらの条件が当てはまる場合、Enterprise Manager はスレッド ダンプ ファイルを保存しません。
- IntroscopeEnterpriseManager.propertiesファイルを保存して閉じます。
- Enterprise Manager を再起動します。
Enterprise Manager がダウンした場合は、スレッド ダンプ ファイルを別の Enterprise Manager にコピーすれば、スレッド ダンプ データを表示できます。
重要:
スレッド ダンプ ディレクトリでファイルの追加または削除を行ったら、Enterprise Manager を再起動します。 Enterprise Manager 間でスレッド ダンプ ファイルを移動することは推奨されません。Enterprise Manager 間でスレッド ダンプ ファイルをコピーする方法
- スレッド ダンプ ファイルが含まれる Enterprise Manager (EM1)上の <EM_Home>/threaddumps ディレクトリに移動します。
- スレッド ダンプ ファイルをコピーします。
- スレッド ダンプの表示先となる Enterprise Manager (EM2)の <EM_Home>/threaddumps ディレクトリにファイルを貼り付けます。
- Enterprise Manager EM1 および EM2 の両方を再起動します。
- 必要に応じて、エージェント接続を確立し、EM2 上のスレッド ダンプを有効にして設定します。EM2 ユーザは、エージェント ノードを選択し、[スレッド ダンプ]タブの[以前のデータをロード]ボタンをクリックできます。 EM1 から移動されたスレッド ダンプがリストに表示されます。
コマンド ライン Workstation を使用するスレッド ダンプの生成
コマンド ライン Workstation (CLW)からスレッド ダンプ機能を実行して、シェル アクションを使用してアラートをトリガできるようにすることができます。 必要な CLW コマンドは、シェル アクションの一部として含めることができ、関連するアラートのシェル コマンド アクションを使用して呼び出すことができます。 スレッド ダンプはエンタープライズ マネージャ上で保持されます。
10 を超えるエレメントがある場合、CLW クライアントに返されたテキスト形式スレッド ダンプは切り捨てられます。 この設定は構成できません。 スタックは、オプションの[テキストとして保存]ボタンを使用して Investigator からスレッド ダンプを保存する場合と同じです。
注:
完全なスレッド ダンプ スタックを参照するには、Investigator にロードし、その他の外部スレッド分析ツールで表示します。 外部ツールを使用すると、エラーが発生する可能性があります。新しいスレッド ダンプ ファイルを収集するには、以下の
いずれか
のオプションを使用します。get ThreadDump for the agent matching [正規表現] for performance
このオプションは、スレッド ダンプが CLW クライアントに返信されないことを指定します。 このオプションを使用すると、Enterprise Manager のオーバーヘッドが軽減されます。
- get ThreadDump for the agent matching [正規表現] for functional
このコマンドの [正規表現] はエージェント名に一致する必要があります。 以下の例では、「*SuperDomain*|HostName|Tomcat|Tomcat_Agent」という名前の Tomcat エージェントを使用します。
cd EM_HOME/libjava -jar CLWorkstation.jar get ThreadDump for the agent matching ".*HostName\|Tomcat\|Tomcat_Agent.*" for functional
出力は以下のとおりです。
.*HostName\|Tomcat\|Tomcat_Agent.*emConnection=availableTD enable on EM = trueTD enable onTomcat_Agent = trueSUCCEESS"main" Id=1 RUNNABLE (in native)
注:
デフォルトでは、スレッド ダンプ ファイルは、<EM_HOME>
/threaddumps に作成されます。ここで EM_HOME はエージェントのコレクタのホーム ディレクトリです。すでに収集されたスレッド ダンプ ファイルのリストを取得するには、以下のコマンドを使用します。
get List of ThreadDump filenames for the agent matching [正規表現]
例:
cd EM_HOME/libjava -jar CLWorkstation.jar get List of ThreadDump filenames for the agent matching ".*HostName\|Tomcat\|Tomcat_Agent.*"
出力は以下のとおりです。
.*HostName\|Tomcat\|Tomcat_Agent.*emConnection=availableTD enable on EM = trueTD enable onTomcat_Agent = trueHostName_Tomcat_Tomcat_Agent_TD_xxxxxxxxxxxxxHostName_Tomcat_Tomcat_Agent_TD_yyyyyyyyyyyyy
合成トランザクションの検出の設定
合成トランザクションの監視設定は、introscope.agent.synthetic.header.names パラメータを使用して行います。
introscope.agent.synthetic.header.names パラメータの値には、監視対象の HTTP 要求が合成トランザクションの一部かどうかを判断するために使用する HTTP ヘッダ パラメータをリストします。 個々のパラメータ名はカンマで区切ります。 このパラメータが未定義、または値が空の場合、合成トランザクションは検出されません。 複数の HTTP ヘッダ パラメータ名が定義されている場合、指定された順に検査されます。 値を持つ最初の HTTP パラメータは、合成トランザクションを定義するために使用されます。
合成トランザクションがレポートされるノードは、以下のように、各トランザクションの検出に使用される特定の HTTP ヘッダ パラメータに応じて異なります。
- パラメータ値がlisaframeidまたはx-wtg-info以外の場合は、HTTP パラメータの値自体がノード名として使用されます。 有効なノード名が使用されるよう、適切な変更を行います。
- パラメータ値がlisaframeidの場合、合成ノード名は CA LISA になります。
- パラメータ値がx-wtg-infoの場合、HTTP ヘッダ パラメータの値には名前と値の組み合わせが使用されます。 ペアは、アンパサンド記号で区切られます。 各ペアの属性名と値は、等号で区切られます。 合成トランザクション ノード名は、group、name、ipaddress、request_idの値とノード区切り記号(|)で構成されます。
たとえば、以下のパラメータについて考えてみます。
introscope.agent.synthetic.header.names=Synthetic_Transaction,x-wtg-info,lisaframeid
以下の
x-wtg-info
ヘッダが、[SampleGroup|sample|192.168.193.1|start]ノードの下のメトリックにレポートされます。clear synthetic=true&instance=ewing&name=sample&group=SampleGroup&version=4.1.0&ipaddress=172.24.36.107&sequencenumber=1&request_id=start&executiontime=1226455047
x-wtg-info
HTTP ヘッダ パラメータ値で定義されていない属性のデフォルト値は、以下のとおりです。- group=unknownGroup
- name=unknownScript
- ipaddress=0.0.0.0
- request_id=Action
introscope.agent.synthetic.header.names
が定義されていない場合、以下の設定パラメータは無視されます。introscope.agent.synthetic.node.name=Synthetic Users
トランザクションが合成と認識されたノードにレポートされます。 このノードは
Frontends|Apps|<WebAppName>
の下にあります。ここで <WebAppName>
は Web アプリケーション名です。 この値のデフォルトは、Synthetic Users です。introscope.agent.non.synthetic.node.name=Real Users
トランザクションが合成と認識されていないノードにレポートされます。 このノードは
Frontends|Apps|<WebAppName>
の下にあります。ここで <WebAppName>
は Web アプリケーション名です。 定義されていない場合、<WebAppName>
の下に追加のノードは作成されません。introscope.agent.synthetic.user.name=Synthetic_Trace_By_Vuser
値が合成ユーザ名として使用されている HTTP ヘッダ パラメータの名前です。 合成ユーザ名は、異なる合成トランザクションを区切るために使用されます。 各合成ユーザ名のノードは、
Synthetic User
ノードの下に作成されます。 この設定パラメータが定義され、この名前の HTTP ヘッダ パラメータが存在する場合、合成トランザクション メトリックがレポートされます。 トランザクションがレポートされるノードは、<Synthetic Users>|<Synthetic User>
です。- <Synthetic Users>ノード名は、introscope.agent.synthetic.node.name設定パラメータによって決定されます。
- <Synthetic User>ノード名は、HTTP ヘッダ パラメータ値によって決定されます。
注:
これらのプロパティへの変更はただちに有効になります。管理対象アプリケーションを再起動する必要はありません。TagScript ユーティリティの使用
CA TagScript ユーティリティは、合成ユーザ情報の抽出を指定するために HP Vugen と共に使用できます。
TagScript ユーティリティを使用する方法
- TagScript ユーティリティを開きます。Windows の場合<Agent_Home>\tools\TagScript.batUNIX の場合<Agent_Home>/tools/TagScript.shどの環境のスクリプトを変更するかを確認する画面が表示されます。
- 以下のいずれかのオプションを選択します。
- Performance Testing - HP Loadrunner スクリプト
- Production - HP Business Process Monitor または Sitescope スクリプト
- Un-tag - タグ付け処理を元に戻します
- HP Vugen スクリプトがあるディレクトリに移動します。 各 .c スクリプトをダブルクリックして開きます。HP Vugen .c スクリプト ファイルがすべてバックアップされ、変更されたバージョンで置き換えられます。
- HP Vugen が開いていて、ユーティリティが実行されている場合、変更したスクリプトを再ロードするように求められます。 プロンプトが表示されたら、[Yes to All]をクリックします。
- TagScript ユーティリティを終了するか、またはファイル選択ダイアログ ボックスで[cancel]ボタンをクリックすることができます。 TagScript ユーティリティを終了することは、必須ではありません。HP Vugen を使用している間、多くのユーザはこのユーティリティを終了していません。 スクリプトが変更されているか、新しいスクリプトが作成されている場合、ユーティリティを終了しないことで処理を簡略化できます。
- スクリプトの以下の場所にタグ付けされたことを確認します。
- HP Vugen コードの新しいパラグラフは、各スクリプトの先頭に挿入されます。
- タグは、すべての lr_start_transaction、lr_end_transaction の前、およびスクリプトの末尾に挿入されます。
- (オプション) Blame スタックの個別のセットを使用して、HP Loadrunner のパフォーマンス テストで各仮想ユーザを追跡できます。 各ユーザを追跡するには、スクリプトの先頭の宣言部にある以下の行のコメント化を解除します。web_add_auto_header(“Synthetic_Trace_By_Vuser”,vuserOverview)注:Production タグの付いたスクリプトでこのオプションのコメント化が解除されている場合は、存在する各ポイントまたは合成ジェネレータで Blame スタックの個別のセットが作成されます。