ブラウザ エージェントの拡張
ブラウザ エージェントは拡張可能です。
apmdevops102jp
ブラウザ エージェントは拡張可能です。
ブラウザ エージェントの拡張
JavaScript フレームワーク、トランザクション追跡プロパティのカスタム測定ができるように、また apmbrowseragentextensibility.js ファイルにカスタムの JavaScript を追加することで名前のフォーマットができるようにブラウザのエージェントを拡張することができます。ファイルで各 JavaScript 拡張ポイントはプレースホルダの JavaScript 関数でマークされます。このプレースホルダにより、独自の JavaScript コードを追加できます。ブラウザ エージェントでは、以下の拡張ポイントをサポートしています。
- 現在のブラウザ ウィンドウのスコープ内への JavaScript 関数のブラウザのエージェントのインスツルメンテーション
- Web ページ(たとえば、Navigation Timing API)用のカスタム メトリックの追加
- JavaScript 関数用のカスタム メトリックの追加
- AJAX 用のカスタム メトリックの追加
- その他のメトリック(JavaScript 関数、AJAX、または web ページに関連しない)の追加
- ブラウザ エージェントのトランザクション追跡コンポーネントへのトランザクション追跡プロパティの挿入
- メトリックの名前付けおよび構造の変更
アプリケーションをインスツルメントする JavaScript 関数の追加
アプリケーション コードをインスツルメントする JavaScript 関数を追加することができます。
以下の手順に従います。
- <Agent_Home>/examples/APM/browseragent/js ディレクトリに移動し、テキスト エディタで、apmbrowseragentextensibility.js ファイルを開きます。
- ファイルで、extFuncMap拡張ポイントに移動します。
- 形式にインスツルメントされる JavaScript 関数の名前を追加します。“key” : { name : “Name of the JavaScript function to instrument” }「key」は一意の識別子にする必要があり、JavaScript 関数の下の JavaScript 関数名として、メトリック階層で表示されます。インスツルメントされる JavaScript 関数が、JavaScript オブジェクト内のメンバ関数の場合は、「プロトタイプ」キーワードを追加する必要があります。例:“Math_Random”: { name : “Math.random” }“Math_Random”: { name : “XMLHttpRequest.prototype.setRequestHeader” }ブラウザ エージェントは、setTimeout()やsetInterval()のようなタイミング イベント メソッドによって直接呼び出される関数について JavaScript 関数メトリックをサポートしていません。目的の関数を呼び出す、匿名の関数を使用することをお勧めします。例:以下のように、目的の関数をsetTimeout()で直接呼び出すのではなく、function interestedFunc () {};setTimeout(interestedFunc, 5000);目的の関数を呼び出すために、以下のように匿名の関数を使用します。function interestedFunc () {};setTimeout(function(){interestedFunc();}, 5000);
- ファイルを保存して閉じます。
- エージェントを再起動します。
Web ページ用のカスタム メトリックの追加
Web ページ用のカスタム メトリックを追加することができます。
以下の手順に従います。
- <Agent_Home>/examples/APM/browseragent/js ディレクトリに移動し、テキスト エディタで、apmbrowseragentextensibility.js ファイルを開きます。
- ファイルで、extAddCustomPageMetric拡張ポイントに移動します。
- カスタム JavaScript コードを持つメトリックを収集する作業を実行します。注:事前に以下のようにマークされたファイルのセクション以外には、すべてのカスタム JavaScript コードを配置することをお勧めします。/*** ADD YOUR OWN CODE HERE*/
- extCustomPageMetricMapに、収集されたメトリックを保存します。extCustomPageMetricMapは、キーがメトリック名で、値が 2 つの項目の配列である JavaScript の HashMap です。これらの項目は、メトリック値およびメトリック アグリゲータ タイプです。例:extCustomPageMetricMap["Average Used JS Heap (Bytes)"] = [32000000, BrowserAgentGlobals.metricAggregatorType.INT_LONG_DURATION]メトリック アグリゲータ タイプは、Introscope エージェントがそのメトリック間隔でデータ ポイントのセットをどのように集約するかを指定します。デフォルトで、ブラウザ エージェントは、以下のアグリゲータ タイプを使用できます。
- BrowserAgentGlobals.metricAggregatorType.LONG_INTERVAL_COUNTERこれらのメトリックは、間隔ごとに値を合計することによって、一定期間で集約されます。
- BrowserAgentGlobals.metricAggregatorType.INT_LONG_DURATIONこれらのメトリックは、間隔ごとに、値の平均値を利用することによって一定期間で集約されます。
- ファイルを保存して閉じます。
- エージェントを再起動します。
AJAX 用のカスタム メトリックの追加
AJAX 用のカスタム メトリックを追加できます。
以下の手順に従います。
- <Agent_Home>/examples/APM/browseragent/js ディレクトリに移動し、テキスト エディタで、apmbrowseragentextensibility.js ファイルを開きます。
- ファイルで、extAddCustomAjaxMetric拡張ポイントに移動します。
- カスタム JavaScript コードを持つメトリックを収集する作業を実行します。注:事前に以下のようにマークされたファイルのセクション以外には、すべてのカスタム JavaScript コードを配置することをお勧めします。/*** ADD YOUR OWN CODE HERE*/
- extAddCustomAjaxMetricMapに、収集されたメトリックを保存します。extAddCustomAjaxMetricMapは、キーがメトリック名で、値が 2 つの項目の配列である JavaScript の HashMap です。これらの項目は、メトリック値およびメトリック アグリゲータ タイプです。例:extCustomAjaxMetricMap["Resource Size (KB)"] = [426, BrowserAgentGlobals.metricAggregatorType.INT_LONG_DURATION]メトリック アグリゲータ タイプは、Introscope エージェントがそのメトリック間隔でデータ ポイントのセットをどのように集約するかを指定します。デフォルトで、ブラウザ エージェントは、以下のアグリゲータ タイプを使用できます。
- BrowserAgentGlobals.metricAggregatorType.LONG_INTERVAL_COUNTERこれらのメトリックは、間隔ごとに値を合計することによって、一定期間で集約されます。
- BrowserAgentGlobals.metricAggregatorType.INT_LONG_DURATIONこれらのメトリックは、間隔ごとに、値の平均値を利用することによって一定期間で集約されます。
- ファイルを保存して閉じます。
- エージェントを再起動します。
JavaScript 関数用のカスタム メトリックの追加
JavaScript 関数用のカスタム メトリックを追加できます。
以下の手順に従います。
- <Agent_Home>/examples/APM/browseragent/js ディレクトリに移動し、テキスト エディタで、apmbrowseragentextensibility.js ファイルを開きます。
- ファイルで、extAddCustomJSFuncMetric拡張ポイントに移動します。
- カスタム JavaScript コードを持つメトリックを収集する作業を実行します。注:事前に以下のようにマークされたファイルのセクション以外には、すべてのカスタム JavaScript コードを配置することをお勧めします。/*** ADD YOUR OWN CODE HERE*/
- extCustomJSFuncMetricMap に、収集されたメトリックを保存します。extCustomJSFuncMetricMap は、キーがメトリック名で、値が 2 つの項目の配列である JavaScript の HashMap です。これらの項目は、メトリック値およびメトリック アグリゲータ タイプです。例:extCustomJSFuncMetricMap["Arguments Count"] = [37, BrowserAgentGlobals.metricAggregatorType.LONG_INTERVAL_COUNTER]メトリック アグリゲータ タイプは、Introscope エージェントがそのメトリック間隔でデータ ポイントのセットをどのように集約するかを指定します。デフォルトで、ブラウザ エージェントは、以下のアグリゲータ タイプを使用できます。
- BrowserAgentGlobals.metricAggregatorType.LONG_INTERVAL_COUNTERこれらのメトリックは、間隔ごとに値を合計することによって、一定期間で集約されます。
- BrowserAgentGlobals.metricAggregatorType.INT_LONG_DURATIONこれらのメトリックは、間隔ごとに、値の平均値を利用することによって一定期間で集約されます。
- ファイルを保存して閉じます。
- エージェントを再起動します。
その他のメトリックの追加
その他のメトリックを追加することができます。
以下の手順に従います。
- <Agent_Home>/examples/APM/browseragent/js ディレクトリに移動し、テキスト エディタで、apmbrowseragentextensibility.js ファイルを開きます。
- ファイルで、extCollectMiscMetrics拡張ポイントに移動します。
- カスタム JavaScript コードを持つメトリックを収集する作業を実行します。注:事前に以下のようにマークされたファイルのセクション以外には、すべてのカスタム JavaScript コードを配置することをお勧めします。/*** ADD YOUR OWN CODE HERE*/
- ブラウザ エージェント API に、収集されたメトリックを保存します。BrowserAgentUtils.metricUtils.addDataPoint(BrowserAgentGlobals.metricTypeToAccumulatorMap[BrowserAgentGlobals.metricType.MISC], ‘metric Name’, metric value)
- ファイルで、extAddCustomMiscMetric拡張ポイントに移動します。
- 収集されたメトリックをextCustomMiscMetricMapに入力します。extAddCustomMiscMetricMapは、キーがメトリック名で、値が 2 つの項目の配列である JavaScript の HashMap です。これらの項目は、メトリック値およびメトリック アグリゲータ タイプです。例:extCustomMiscMetricMap["Angular Watch Count"] = [37, BrowserAgentGlobals.metricAggregatorType.INT_LONG_DURATION]メトリック アグリゲータ タイプは、Introscope エージェントがそのメトリック間隔でデータ ポイントのセットをどのように集約するかを指定します。デフォルトで、ブラウザ エージェントは、以下のアグリゲータ タイプを使用できます。
- BrowserAgentGlobals.metricAggregatorType.LONG_INTERVAL_COUNTERこれらのメトリックは、間隔ごとに値を合計することによって、一定期間で集約されます。
- BrowserAgentGlobals.metricAggregatorType.INT_LONG_DURATIONこれらのメトリックは、間隔ごとに、値の平均値を利用することによって一定期間で集約されます。
- 手順 4 からBrowserAgentGlobals.metricTypeToAccumulatorMap[BrowserAgentGlobals.metricType.MISC]に保存されているデータ ポイントを削除します。例:BrowserAgentGlobals.metricTypeToAccumulatorMap[BrowserAgentGlobals.metricType.MISC] = {};
- ファイルを保存して閉じます。
- エージェントを再起動します。
トランザクション追跡プロパティの挿入
ブラウザ エージェントのトランザクション追跡コンポーネントにトランザクション追跡プロパティを挿入できます。
以下の手順に従います。
- <Agent_Home>/examples/APM/browseragent/js ディレクトリに移動し、テキスト エディタで、apmbrowseragentextensibility.js ファイルを開きます。
- ファイルで、extAddCustomOptionalProperty拡張ポイントに移動します。
- トランザクション追跡のプロパティ名と値をextCustomOptionalPropertyに次の形式で追加します。“propertyName1=value1;propertyName2=value2”例:“shoppingCartValue=534.79;itemCount=4;paymentType:CC”“timeSpent=21.5;client=Chrome 43.0.2357.130 m”
- ファイルを保存して閉じます。
- エージェントを再起動します。
メトリックの名前付けおよび構造の変更
メトリックの名前付けおよび構造を変更することができます。
以下の手順に従います。
- <Agent_Home>/examples/APM/browseragent/js ディレクトリに移動し、テキスト エディタで、apmbrowseragentextensibility.js ファイルを開きます。
- ファイルで、extNameFormatter拡張ポイントに移動します。
- 現在のメトリック パスおよび構造を拡張ポイントへの引数としてを指定し、必要に応じて、パスと構造を変更します。
- 変更されたメトリックの名前および構造を、以下のように、JavaScript 文字列としてformattedMetricPathJavaScript 変数に置き換えます。var appCount = unformattedMetricPath.replace(/localhost\/5080|\/exampleApp:Invocation Count Per Interval/, "localhost/5080|/exampleApp:exampleApp Pop Hit Count");formattedMetricPath = appCount;
- ファイルを保存して閉じます。
- エージェントを再起動します。