Splunk AppDynamics では、エントリポイントを定義し、ビジネストランザクションに名前を付けるために、さまざまなタイプのトランザクション検出ルールを使用します。

多くの場合、ビルトインルールによって、有用なビジネストランザクションセットが生成されます。生成されない場合は、新しいルールを作成するか既存のルールを編集して、ご使用の環境に合わせてトランザクション検出を最適化できます。

権限

トランザクション検出ルールをカスタマイズするには、Configure Transaction Detection 権限が必要です。

View Sensitive Data 権限Configure Transaction Detection 権限をともに使用すると、ライブプレビューおよびビジネストランザクション検出機能を使用してアプリケーションからライブデータをストリーミングできるようになります。

ライブプレビュー

Javaおよび.NET環境では、以下のインタラクティブなライブプレビューツールを使用して、ビジネストランザクションのエントリポイントを見つけることができます。

  • ビジネストランザクション検出セッションでノードからコントローラ UI にライブデータをストリーミングすることにより、インストゥルメンテーションに関する意思決定がしやすくなります。これらのセッションでは、該当するノードでアクティブなすべてのトランザクション検出ルールに基づいてトランザクションが表示されます。

  • 特定のエントリポイントのタイプでは、カスタム一致ルールのライブプレビューを使用し、1 つのトランザクション検出ルールを 1 つのノードに適用して、トランザクションをプレビューできます。

ライブプレビューのコンテキスト内のビジネストランザクション(一時的トラザクションと呼ばれます)は、ライブプレビューの終了後は存続しません。ビジネストランザクション検出セッションを使用すれば、セッションの終了時にルールの変更内容を適用することも破棄することもできます。カスタムマッチのライブプレビュールールは、ルールの保存後に適用されます。 

一時的トランザクションでは、ライブプレビューセッションが実行されている同じノードへの終了コールが呼び出されることがあります。場合によっては、エージェントはダウンストリームセグメントで追加の一時的トランザクションとインストゥルメント化されていないコードを検出します。

  • 終了コールと対応するエントリポイントは、HTTPやWebサービスのような自動検出された終了およびエントリポイントです。
  • カスタムアクティビティインプロセスコールのレアケース。

トランザクション検出ルールの管理

コントローラ UI でトランザクション検出ルールをカスタマイズするには、[Configuration > Instrumentation] に移動します。[ビジネストランザクション] リストから、[Configure] をクリックして、トランザクション検出設定にすばやくアクセスすることもできます。

柔軟なスコープ構成モデルを使用して、トランザクション検出ルールをティアに適用します。Transaction Detectionタブから、次のようにルールを管理できます。

  • [Transaction Detection] タブで個々のスコープのルールを管理します。
  • Rulesサブタブでアプリケーション全体のルールを管理します。Rulesサブタブには、ルールが適用されるティアと、どのスコープにしたがうかも表示されます。
  • Tiersサブタブで、特定のティア のルールを表示または変更します。

既存のルールを変更するには、そのルールをダブルクリックして [Rule Editor] を表示します。[+/Add ] をクリックして新しいルールを定義します。

[Live Preview ] ボタンを使用して、Java および .NET エージェントを実行しているノードに対してビジネストランザクション検出セッションを開始します。

トランザクション コール グラフの管理

  • コールグラフキャプチャは、CPU とメモリを使用します。エージェントパフォーマンスに影響を与える場合があります。
  • これは、エントリポイントが POJO である Java ルールに適用されます。
  • このオプションは、Java 階層でのみ使用できます。

コールグラフを使用すると、インストゥルメント化されたイグジットポイントまたはロガーにヒットしているすべての潜在的なエントリポイントを自動的に見つけることができます。一部のトラフィックがビジネストランザクションとして検出されていない疑いがある場合、このオプションを使用します。コントローラ UI でコールグラフを表示するには、次の手順を実行します。

  1. [Configuration > Instrumentation > Transaction Detection] に移動します。
  2. [Tier] タブから階層をセレクトします。
  3. コールグラフリストからコールグラフを開き、関連するスタックトレースを開きます。

  4. スタックトレースからメソッドを選択すると、現在の検出ルールのクラスとメソッドフィールドが自動的に入力されます。
  5. ルールの優先順位、範囲を設定し、ルールを保存します。ルールの優先順位の詳細については、「トランザクション検出ルールの優先順位」と「スコープ構成モデル」を参照してください。ルールを保存するとすぐに、欠落しているビジネストランザクションの表示を開始できます。

デフォルトでは、コールグラフは 15 分間キャプチャされます。また、1 つのセッションで最大 100 のコールグラフをキャプチャでき、階層に最大 200 のコールグラフをキャプチャできます。すべてのコールグラフは 24 時間後に削除されます。デフォルトのコールグラフ設定を変更するには、次のコントローラプロパティを設定します。「検出ルールのコントローラ設定」を参照してください。

  1. コールグラフのキャプチャ期間を変更するには、find.entry.point.session.window.size コントローラプロパティを設定します。このプロパティでは、コールグラフキャプチャ期間の数(分)を指定します。
    コールグラフセッションが開始されると、数分以内にコールグラフが表示されます。
  2. 階層ごとに保存できるコールグラフの最大数を変更するには、find.entry.point.max.callgraph.tier コントローラプロパティを設定します。このプロパティで、階層に対してキャプチャして保存する番号コールグラフを指定します。エージェントはセッションごとに 100 のコールグラフのみをキャプチャすることに注意してください。

トランザクション検出ルールの優先順位

Splunk AppDynamics のアプリケーション エージェントは、同じタイプのトランザクション検出ルールを次の優先順序で適用します。

  1. ルールの優先順位は、最高から最低の順になります。優先順位 0 は、指定可能な最低の優先順位です。
  2. 作成日の古い方から先に。これは、カスタムルールにのみ適用されます。

たとえば、優先度 2 のカスタムマッチルールと優先度 6 のカスタムマッチルールを照合する HTTP リクエストがある場合、エージェントは、優先度 6 のルールを適用します。

受信リクエストが複数のタイプの検出ルールに一致した場合、Splunk AppDynamics は次の優先順位で検出ルールを適用します。

  1. 包含ルールの優先度に従うカスタムマッチ包含ルール。リクエストが包含ルールに一致すると、エージェントはそのルールに基づいてビジネストランザクションに名前を付けます。
  2. 除外ルールの優先度に従うカスタムマッチ除外ルール。リクエストが除外ルールに一致すると、アプリエージェントはそのトランザクションを検出から除外します。

  3. デフォルトの自動検出ルール。リクエストがデフォルトの自動検出ルールに一致した場合、自動検出命名スキームに従ってトランザクションを命名します。

2 つのエントリポイントタイプの優先順位が同じで、いずれを使用してもエントリポイントを定義または登録できる場合、それらの間に一定の優先順位があります。

たとえば、Java で単にすべてのタイプの Java 自動検出ルールが有効になっていて、Web サービスまたはサーブレットと見なすことができるエントリポイントがある場合、サーブレットが優先されます。Web サービスがデフォルトとして必要な場合は、より高い優先度のルールが必要です。

ティアのトランザクション検出ルールのデフォルトの順序を表示するには、次の手順を実行します。

  1. [Configuration > Instrumentation > Transaction Detection > Tiers] に移動します。 
  2. ティアをクリックすると、優先順位および優先度の順にルールが表示される。

Java および .NET の場合は、check-bt-excludes-early ノードプロパティを「true」に設定することで、カスタムマッチ包含ルールの前にカスタムマッチ除外ルールを評価するようにアプリケーション エージェントを構成できます。  これはノードベースの構成であり、コントローラ UI のルールの表示順序には影響しません。

検出ルールのエクスポート

コントローラAPIを使用してアプリケーションとティア間でルールを移行できます。詳細については、「構成インポートおよびエクスポートAPI」を参照してください。 

検出ルールのインポート

検出ルールをインポートするには、[Import] をクリックし、インポートするファイルを選択して [Import] をクリックします。このファイルは XML 形式である必要があります。