トレーサおよびマーカの設定

apmsaas
インストール中またはインストール後に以下のファイルおよびプロパティを設定して、PHP エージェントの動作を調整することができます。
PHP エージェントの設定ファイル
トレーサ ディレクティブは、アプリケーションで監視するメトリックとコンポーネントを識別します。また、これらのディレクティブはアプリケーションのフロントエンドとバックエンドを識別することができます。
以下の場所にある
IntroscopeAgent.profile
で AutoProbe ディレクティブ プロパティを見つけます。
${INSTALL_DIR}/apmia/core/config
AutoProbe ディレクティブ プロパティは次のとおりです。
introscope.autoprobe.directivesFile=php-typical.pbl,hotdeploy
php-typical.pbl ファイルには、以下の .pbd ファイルが含まれています。
ファイル名
説明
php-toggles-typical.pbd
ファイルには、行をコメント化して切り替えることができる次のトレーサ フラグが含まれます。
  • PhpScriptFrontendTracing
    - トップレベルのすべての PHP スクリプトのフロントエンド URL グループ メトリックのキャプチャをアクティブにします。デフォルト: オン
  • PhpSqlTracing
    - SQL データベース メトリックのキャプチャをアクティブにします。デフォルト: オン
  • PhpClassDeepTracing
    - トランザクション追跡における PHP クラスとメソッドをすべて含みます。デフォルト: オフ
  • PhpScriptDeepTracing
    - フロントエンド スクリプトが呼び出すすべてのスクリプトがトランザクション追跡に含まれます。デフォルト: オフ
  • SamplePhpTracing
    - カスタム バックエンド追跡のフラグ例を示します。デフォルト: オフ
php-common.pbd
このファイルには、フロントエンド、バックエンド、Blamepoint メトリックの共通トレーサ設定が含まれます。さらに、デフォルトで処理からスキップされる PHP メソッドとクラスのリストが含まれます。
php-sample.pbd
このファイルには、
MySQLDB
などのクラスでのバックエンド マーカの配置方法を示す設定例が含まれます。
デフォルトの PHP エージェントは、PHP システム コールおよび文字列長関数など、多くの低レベルの統一された内部 PHP メソッドをスキップします。これらのメソッドが多数のトランザクション追跡をトリガしたとき、トレースはトランザクション追跡コンポーネント制限を超え、トレースがクランプする可能性があります。この場合、データベース バックエンドなどの関心があるコンポーネントは表示されません。php-common.pbd ファイルには、PHP スキップ ディレクティブのデフォルト リストが含まれています。このファイルは次の場所にあります:
${INSTALL_DIR}/apmia/extensions/PHPExtension/directives
。このディレクティブは、処理からスキップされる PHP メソッドとクラスです。php-common.pbd ファイルで、スキップされたメソッドのリストを編集することができます。
共通トレーサおよびマーカの設定
PHP エージェントは、現在、
PhpBlamePointTracer
PhpBackendMarker
および
PhpFrontendMarker
トレーサ タイプをサポートしています。
これらの
トレーサは、Java や .NET エージェントと同じような標準的な 5 つの BlamePoint メトリックを作成します。
Blamepoint トレーサの設定
このコンポーネントに対して標準的な BlamePoint メトリックを取得するために
PhpBlamePointTracer
使用して、任意のスクリプト、クラス、またはメソッドをマークできます。設定すると、エージェントは、Investigator ツリーでこれらのメトリックを収集してレポートします。
BlamePointTracer
は、追跡対象のコンポーネントの標準的な一連のメトリックを提供し、最も一般的に使用されるトレーサです。このトレーサは、関連付けられているメソッドまたはクラス用に個々に 5 つのメトリックを生成します。
  • Average Response Time (ms)
  • 同時進行中の呼び出し
  • Errors Per Interval[Errors Per Interval]
  • Responses Per Interval
  • ストール数
以下の例では、
Catalog
クラスで
search
メソッド用に
BlamePointTracer
が設定されます。このメソッドとクラスの BlamePoint メトリックが、Investigator
Catalog|search
ノードの下に表示されます。
TraceOneMethodOfClass: Catalog search BlamePointTracer "Catalog|search"
バックエンド マーカの設定
以下の
いずれかの
タスクを実行することで、PHP エージェントでのアプリケーションのバックエンドの表示を設定できます。
  • php-sample.php ファイルのディレクティブを更新し、php-toggles-typical.pbd 構成ファイルで
    SamplePhpTracing
    が有効になっていることを確認します。
または
  • カスタム PBD ファイルにディレクティブを追加して、実行時に PBD ファイルをこのディレクトリにコピーします。
    <Installation_Directory>/apmia/core/config/hotdeploy
PhpBackendMarker
は、リソース名の以下の置換変数を受け入れます。
{programname} - データが抽出されるプロセスの名前。たとえば、/usr/bin/httpd です。
{classname} - ルート レベル関数のバックエンドまたはグローバルを実装する PHP クラスの名前。
{method} - PHP クラス メソッドまたはルート レベル関数。
{filename} - 実行中のスクリプトあるいはクラスまたはメソッドを定義したスクリプトのファイル名。
たとえば、以下のディレクティブを php-sample.pbd ファイルに追加したり、カスタム PBD ファイルに追加したりできます。
IdentifyClassAs: MySQLDB SamplePhpTracing TraceAllMethodsIfFlagged: SamplePhpTracing PhpBackendMarker Backends|{classname}
MySQLDB
クラスはバックエンド コンポーネントとして識別されます。対応するバックエンド メトリックは以下の形式で作成されます。
Backends|{classname}
フロントエンド マーカの設定
すぐに使用可能なフロントエンド マーカに加え、
PhpFrontendMarker
トレーサ タイプをカスタム クラス、メソッド、またはスクリプトに設定することで、カスタム フロントエンドを作成できます。ディレクティブの構文と構造は、バックエンドのメトリックの設定に似ています。トレーサが使用される例外は、
PhpBackendMarker
ではなく
PhpFrontendMarker
です。
カスタム PBD ファイルにディレクティブを追加して、実行時に PBD ファイルを以下にコピーします。
<Installation_Directory>/apmia/core/config/hotdeploy
PhpFrontendMarker
は、リソース名の以下の置換変数を受け入れます。
{programname} - データが抽出されるプロセスの名前。たとえば、/usr/bin/httpd です。
{filename} - 実行中のスクリプトあるいはクラスまたはメソッドを定義したスクリプトのファイル名。
たとえば、以下のディレクティブを php-sample.pbd ファイルに追加したり、カスタム PBD ファイルに追加したりできます。
IdentifyClassAs: MyHomePage ScriptInit PhpScriptFrontendTracing TraceAllMethodsIfFlagged: PhpScriptFrontendTracing PhpFrontendMarker Frontends|{filename}"