コールグラフにキャプチャされるデータは、[Call Graph Settings] パネルで制御できます。 

アクセス権

コールグラフ設定を構成するには、[Configure Call Graph Settings] 権限が必要です。

コールグラフの粒度

コールグラフの粒度を管理するには、以下の設定を使用します。

  • Control granularity for Methods:低パフォーマンスのオーバーヘッドを確保するには、メソッド実行時間にしきい値(ミリ秒単位)を選択します。ここで指定された時間より実行時間が短いメソッドは、コールグラフから除外されます。
  • Control granularity for SQL calls:SQL クエリのしきい値を指定できます。指定された時間(ミリ秒単位)よりも実行時間が短い SQL クエリは、コールグラフから除外されます。詳細については、Javaエージェントパフォーマンスの調整を参照してください。 

Node.js エージェントでは、コールグラフ構成SQL キャプチャ設定のみが適用されます。

コールグラフ構成にアクセスするには、[Configuration > Instrumentation] をクリックして、[Call Graph Settings] タブを選択します。アプリケーションのタイプごとにサブタブがあります。

コールグラフからのパッケージまたはネームスペースの除外

コールグラフには、数百ものメソッドが含まれる可能性があります。モニタリングしないクラスのあるパッケージ(Java)やネームスペース(.NET)は除外することができます。

Javaの場合、一部のパッケージはデフォルトで除外されています。これらのパッケージはExcluded Packagesリストに表示されます。デフォルトで除外されているパッケージは削除できません。ただし、除外されているパッケージの特定のサブパッケージを含めることは可能です。 

コールグラフのインストゥルメンテーション ページから、コールグラフのインストゥルメンテーションをカスタマイズできます。このページで、次の構成オプションから選択します。

  • 特定のパッケージまたは名前空間をコールグラフから除外するには、Add Custom Package Exclude(Java)または Add Custom Namespace Exclude(.NET)の構成オプションを使用します。
  • パッケージまたは名前空間を常にコールグラフに表示させるには、Add Always Show Package/Class(Java)または Add Always Show Namespace/Class(.NET)の構成オプションを使用します。

コントローラはコールグラフを作成する際、除外されたパッケージと包含されたサブパッケージを使用して、どのコールを含めるか決定します。しかし、コントローラは除外されたパッケージの中からも一部のコールを含めます。たとえば、Webサービスコールが該当します。

SQLキャプチャの設定

SQLキャプチャ設定により、SQLステートメントをキャプチャし、動的パラメータをランタイム値にバインドした状態でコントローラUIに表示するかどうかを制御します。たとえば、次のようにSQLコールを構成するJavaコードを見てみましょう。 

stmt = new PreparedStatement("select * from user where ssn = ?")
stmt.bind(1, "123-123-1234")
stmt.execute()
CODE

Capture Raw SQLオプションを有効にすると、AppDynamicsは次の形式でSQLコールをキャプチャして表示します。 

select * from user where ssn = '123-123-1234'
CODE

Capture Raw SQL が無効な場合、SQL コールは、値にバインドされていない疑問符パラメータとともに元の形式で表示されます。capture-raw-sql を無効にし、SQL プリペアドステートメントで疑問符パラメータを使用すると、機密データがコントローラ UI に表示されなくなります。

重要な点としては、上記のように、SQL ステートメントの元のプリペアドステートメント形式で、機密の値をパラメータ化する必要があることに注意してください。以下のステートメントでは機密データがパラメータ化されていないため、Capture Raw SQL が有効か無効かを問わず、コントローラ UI に機密の可能性がある情報(社会保障番号)が表示されてしまいます。   

stmt = new PreparedStatement("select * from user where ssn ='123-123-1234'")
CODE

[Call Graph Settings] タブで SQL キャプチャ設定を構成するには、[ SQL Capture Settings] セクションまでスクロールして、次のオプションのいずれかを選択します。

  • Capture Raw SQL: このオプションを選択すると、プレペアドステートメントとして構成されたSQLステートメントが、動的パラメーターをランタイム値にバインドした状態でキャプチャされます。デフォルトでは、プライベートSQLデータと10ミリ秒未満のクエリはキャプチャされません。

    重要

    このオプションを選択すると、MongoDB、DynamoDB、および CassandraDB などの NoSQL データベースの raw クエリの詳細をキャプチャできます。また、リレーショナルクエリはスクラビング処理されません。

    .NET環境でCapture Raw SQLを有効にすると、エージェントはADO.NETストアドプロシージャコールのパラメータを、疑問符で表されていなくてもキャプチャします。CLRで使用できないストアドプロシージャのローカル変数はキャプチャしません。

  • Filter Parameter values: このオプションを選択すると、プリペアドステートメントとして作成されたSQLステートメントが、動的パラメータをランタイム値にバインドしない状態でキャプチャされます。