Java エージェント Boundary Blame の設定

内容
apmdevops96jp
内容
Blame テクノロジを使用すると、管理対象 Java アプリケーション内で作業して、アプリケーションのフロントエンドおよびバックエンドでメトリックを表示できるようになります。 この Boundary Blame と呼ばれる機能によって、問題の原因を切り分けることができます。
Introscope がバックエンドを検出する方法は、アプリケーションによって異なります。 データベース アクティビティの場合、Introscope は SQL エージェントを使用してバックエンドを検出します。 SQL エージェントを使用できない場合でも、Introscope はバックエンド アクティビティを検出します。これは、クライアント/サーバ データベース、JMS サーバ、LDAP サーバなどのバックエンドは、ソケットを通じてアクセスされるためです。
Boundary Blame が Introscope Investigator にどのように表示されるかについては、「
CA APM Workstation ユーザ ガイド
」を参照してください。
このセクションでは、Java エージェント Blame レポートのデフォルトの動作および関連する設定オプションついて説明します。
URL グループの使用
URL グループを使用して、パスのプレフィクスがユーザ定義の文字列で始まる要求セットに対するブラウザの応答時間をモニタできます。 パスのプレフィックスは、URL のホスト名に続く部分です。 たとえば、以下の URL があるとします。
http://burger1.com/testWar/burgerServlet?ViewItem&category=
11776&item=5550662630&rd=1
ここでは、以下がパスのプレフィクスです。
/testWar
1 つの URL のパス プレフィクスから派生する可能性がある要求の有用なカテゴリに対して URL グループを定義できます。 たとえば、アプリケーションの URL の形式に応じて、アプリケーションでサポートする顧客ごと、主要なアプリケーションごと、またはサブアプリケーションごとに URL グループを定義できます。 これによって、コミットされたサービスレベルのコンテキストでの性能、またはアプリケーションのミッション クリティカルな部分のパフォーマンスをモニタできます。
例: URL グループのプロパティを定義する方法
以下の例は、Java エージェント プロファイルの抜粋で、URL グループの定義方法を示しています。
introscope.agent.urlgroup.keys=alpha,beta,gamma
introscope.agent.urlgroup.group.alpha.pathprefix=/testWar
introscope.agent.urlgroup.group.alpha.format=foo {host} bar {protocol} baz {port} quux {query_param:foo} red {path_substring:2:5} yellow {path_delimited:/:0:1} green {path_delimited:/:1:4} blue {path_substring:0:0}
introscope.agent.urlgroup.group.beta.pathprefix=/nofilterWar
introscope.agent.urlgroup.group.beta.format=nofilter foo {host} bar {protocol} baz {port} quux {query_param:foo} red {path_substring:2:5} yellow {path_delimited:/:0:1} green {path_delimited:/:1:4} blue {path_substring:0:0}
introscope.agent.urlgroup.group.gamma.pathprefix=/examplesWebApp
introscope.agent.urlgroup.group.gamma.format=Examples Web App
URL グループのキーの定義
introscope.agent.urlgroup.keys
プロパティを使用して、URL グループのすべての ID またはキーのリストを定義します。 URL グループのキーは、URL グループの属性を宣言する、ほかのプロパティ定義で参照されます。 以下の例では、3 つの URL グループのキーを定義します。
introscope.agent.urlgroup.keys=alpha,beta,gamma
複数のグループに分類される URL をいくつか含んでいる URL グループを定義する場合は、プロパティでその URL グループのキーをリストした順序が重要になります。 絞り込んだメンバシップを持つ URL グループは、幅広いメンバシップを持つ URL グループに先行します。
たとえば、
alpha
というキーを使用する
IP グループが
パス プレフィックス /
examplesWebAp
を持ち、また、
delta
というキーを持つ URL グループ
/examplesWebApp/cleverones
のパス プレフィックスを持つ場合、
keys
パラメータの中で、delta が
alpha
に先行している必要があります。
各 URL グループのメンバシップの定義
introscope.agent.urlgroup.group.
groupKey
.pathprefix
プロパティは、URL のパスのプレフィクスと照合するパターンを指定して、URL グループ内に含める要求を定義します。
例: URL のパス プレフィックスに対するグループ キーのマッピング
以下のプロパティ定義では、URL のパス部分が
/testWar
で始まるすべての要求を、キーが
alpha
の URL グループに割り当てています。
introscope.agent.urlgroup.group.alpha.pathprefix=/testWar
たとえば、以下の要求は、指定した
パスのプレフィックス
と一致します。
http://burger1.com/testWar/burgerServlet?ViewItem&category=
11776&item=5550662630&rd=1
http://burger1.com/testWar/burgerServlet?Command=Order&item=5550662630
例: アプリケーション パスによる URL グループの作成
コール センタ サービスを提供する企業は、アプリケーションの機能ごとに URL グループを設定することによって、機能分野ごとの応答時間のモニタを行うことができます。 顧客が以下の URL でサービスにアクセスするとします。
http://genesystems/us/
application_function
/
この例の
application_function
は、
OrderEntry
AcctService
、および
Support
などのアプリケーションに対応し、各 URL グループの
pathprefix
プロパティは、適切な
application_function
を指定します。
注:
pathprefix
のプロパティには、アスタリスク記号(*)をワイルド カードとして使用できます。
URL グループの名前の定義
プロパティ
introscope.agent.urlgroup.group.groupKey.format
では、キーが
groupKey
である URL グループの応答時間メトリックが、Introscope Workstation ではどの名前で表示されるかを決定します。
通常、
format
プロパティは、テキスト文字列を URL の名前として割り当てるために使用されます。 以下の例では、キー
alpha
を持つ URL グループのメトリックが、
Alpha Group
という名前で Workstation に表示されます。
introscope.agent.urlgroup.group.alpha.format=Alpha Group
URL グループの高度な名前付け技術(オプション)
必要に応じて、URL グループ名を、サーバ ポート、プロトコルなどの要求エレメント、または要求 URL のサブ文字列から派生できます。 これは、要求を調べればアプリケーション モジュールを簡単に区別できる場合に便利です。 このセクションでは、
format
プロパティの高度な形式について説明します。
URL グループ名にホストを使用
URL グループのメトリックを要求に関連付けられている HTTP サーバのホスト名を反映した名前でまとめるには、
format
パラメータを以下のように定義します。
introscope.agent.urlgroup.group.alpha.format={host}
format={host}
とすると、以下の要求の統計は、それぞれメトリック名
us.mybank.com
および
uk.mybank.com
の下に表示されます。
https://us.mybank.com/mifi/loanApp......
https://uk.mybank.com/mifi/loanApp.....
URL グループ名にプロトコルを使用
URL グループの統計情報を、要求に関連付けられているプロトコルを反映した名前でまとめるには、
format
パラメータを以下のように定義します。
introscope.agent.urlgroup.group.alpha.format={protocol}
format={protocol}
の場合、統計は、Investigator で、要求 URL のプロトコルの部分に対応したメトリック名でグループ化されます。 たとえば、以下の要求の統計情報は、メトリック名
https
の下に表示されます。
https://us.mybank.com/cgi-bin/mifi/scripts......
https://uk.mybank.com/cgi-bin/mifi/scripts......
URL グループ名にポートを使用
URL グループの統計情報を、要求に関連付けられているポートを反映した名前でまとめるには、
format
パラメータを以下のように定義します。
introscope.agent.urlgroup.group.alpha.format={port}
format={port}
の場合、統計は、要求 URL のポートの部分に対応した名前で、グループ化されます。 たとえば、以下の要求の統計は、
9001
という名前の下に表示されます。
https://us.mybank.com:9001/cgi-bin/mifi/scripts......
https://uk.mybank.com:9001/cgi-bin/mifi/scripts......
URL グループ名にパラメータを使用
Investigator 内で URL グループの統計を要求に関連付けられているパラメータの値を反映したメトリック名でまとめるには、
format
パラメータを以下のように定義します。
introscope.agent.urlgroup.group.alpha.format={query_param:
param
}
format={query_param:
param
}
の場合、統計は、Investigator で、指定したパラメータの値に対応したメトリック名でグループ化されます。 パラメータのない要求は、 の下に一覧表示されます。 たとえば、以下のパラメータ定義があるとします。
introscope.agent.urlgroup.group.alpha.format=
{query_param:category}
以下の要求の統計は、メトリック名「734」で表示されます。
http://ubuy.com/ws/shoppingServlet?ViewItem&category=734
&item=3772&tc=photo
http://ubuy.com/ws/shoppingServlet?ViewItem&category=734
&item=8574&tc=photo
URL グループ名に要求パスのサブ文字列を使用
URL グループの統計情報を要求 URL のパス部分のサブ文字列を反映した名前でまとめるには、
format
パラメータを以下のように定義します。
introscope.agent.urlgroup.group.alpha.format=
{path_substring:
m
:
n
}
ここで、「
m
」は、最初の文字のインデックスで、「
n
」は、最後の文字のインデックス +1 です。 文字列の選択は、
java.lang.String.substring()
メソッドのように機能します。 たとえば、以下のように設定されているとします。
introscope.agent.urlgroup.group.alpha.format=
{path_substring:0:3}
以下の要求の統計は、メトリック ノード「
/ht
」の下に表示されます。
http://research.com/htmldocu/WebL-12.html
URL グループ名に要求パスの区切り文字で区切られたセグメントを利用
URL グループの統計情報を要求 URL パスの文字区切りの部分を反映した名前でまとめるには、
format
パラメータを以下のように定義します。
introscope.agent.urlgroup.group.alpha.format=
{path_delimited:delim_char:m:n}
ここで、
delim_char
は、パス内のセグメントを区切る文字です。「
m
」 は、選択する最初のセグメントのインデックスです。「
n
」 は、選択する最後のセグメントのインデックス +1 です。 たとえば、以下のように設定されているとします。
introscope.agent.urlgroup.group.alpha.format={path_delimited:/:2:4}
以下の形式の要求に対する統計情報を考えます。
http://www.buyitall.com/userid,sessionid/pageid
これは、メトリック名
/pageid
で表示されます。
以下のことに注意してください。
  • 区切り文字(この例では /(スラッシュ))もセグメントとしてカウントされます。
  • セグメントのカウントは 0 から始まります。
URL の例で、スラッシュ文字で区切られたセグメントを以下に示します。
0=
/
, 1=
userid,sessionid
, 2=,
/
, 3=
pageid
必要に応じて、複数の区切り文字を指定できます。 たとえば、以下のように設定されているとします。
introscope.agent.urlgroup.group.alpha.format={path_delimited:/,:3:4}
上記の形式の要求に対する統計情報は、メトリック名
sessionid
の下に表示されます。URL の例でスラッシュおよびカンマで区切られたセグメントを以下に示します。
0=
/
, 1=
userid
, 2=,
,
3=
sessionid
, 4=
/
, 5=
pageid
URL グループに複数の名前付け方法を使用
以下のように、複数の命名メソッドを 1 つの
format
文字列に組み合わせることができます。
introscope.agent.urlgroup.group.alpha.format=red {host} orange {protocol} yellow {port} green {query_param:foo} blue {path_substring:2:5} indigo {path_delimited:/:0:1} violet {path_delimited:/:1:4} ultraviolet {path_substring:0:0} friend computer
URLGrouper の実行
URLGrouper は、一般的な形式での Web サーバ ログ ファイルを分析するコマンド ライン ユーティリティです。 URL グループを定義する出発点として URLGrouper を使用できます。
注:
URLGrouper ユーティリティを使用して、Web サーバ ログ ファイルを分析できます。 URLGrouper は、Web サーバ ログ ファイルの内容に基づき、潜在的な URL グループに対してプロパティ 設定のセットを出力します。 アスタリスク記号(*) は、ワイルドカードとして、URLGrouper で使用できます。
以下の手順に従います。
  1. コマンド シェルを開きます。
  2. 以下のコマンドを入力します。
    java -jar urlgrouper.jar logfile
    ここで、
    logfile
    は、Web サーバ ログ ファイルへのフル パスです。
  3. URL グループ セットのプロパティ定義が、STDOUT に出力されます。
  4. 提案された URL グループを設定するには、URLGrouper が生成したプロパティ ステートメントを
    IntroscopeAgent.profile
    にコピーします。
    URLGrouper が実行されました。