カスタムマッチルールは、ビジネストランザクション検出とエントリポイントタイプの命名の基準を定義できるタイプのトランザクション検出ルールです。

次の2つのタイプのカスタムマッチルールがあります。

  • カスタム包含ルールは、新しいトランザクションで使用するエントリポイントを定義します。
  • カスタム除外ルールを使用すると、トラッキング対象外のビジネストランザクションを Splunk AppDynamics が検出しないようにできます。たとえば、アプリケーション フレームワーク サービス、管理コンソール要求、ハートビート ping などがあります。

ライブプレビューを使用して、特定のカスタムマッチルール構成を実験し、可能性のあるビジネス トランザクション エントリ ポイントを識別します。

トランザクションの命名

アプリケーション エージェントがカスタム包含ルールに一致するリクエストを検出すると、そのルール名に基づいてビジネストランザクションに名前を付けます。URI ベースのルール、POJO、または POCO のトランザクション分割を使用して、トランザクション名をさらに絞り込むことができます。

リクエストが複数のカスタム包含ルールに一致した場合、優先順位が最も高いルールを適用します。「トランザクション検出ルール」を参照してください。

カスタムマッチルールの作成

  1. [Configuration > Instrumentation ] に移動して、[Transaction Detection] サブタブを選択します。

  2. [Rules] サブタブを選択します。

    [Transaction Detection] タブの特定のスコープ内にルールを追加することもできます。

  3. [Custom Match Rule] が選択された状態で [Add ] を選択すると、[Add Rule] ページが開きます。

  4. [Agent Type] と [ Entry Point Type ] を選択し、[Next] を選択します。
  5. Summaryタブで一般的なルール構成を行います。
    • カスタムマッチ除外ルールを作成している場合、次をクリックします
    • ルールの名前を入力します。アプリエージェントは、ルールに一致するリクエストをこのルール名に基づいて命名します。

      エラーを回避するために、ルール名には次の特殊文字を使用しないでください。小なり記号(<)および大なり記号(>)。

    • 必要に応じてルールを無効にし、ルールの優先順位を設定して、ルールをスコープに割り当てます。
      ルールの優先順位については、「トランザクション検出ルール」を参照してください。
      スコープの詳細については、「スコープ構成モデル」を参照してください。
  6. [Rule Configuration] タブで、次を実行します。

    • エントリポイントタイプに基づいて一致基準を構成します。たとえば、PHP Web では、HTTP メソッド、URI、クエリパラメータなどの HTTP 指向の一致基準を指定できます。

      Servlet および POJO エントリポイントタイプには [Live Preview] ボタンがあり、カスタムマッチルールのライブプレビューセッションを起動できます。ライブプレビューは、アクティブノードからデータをストリーミングするので、Add Ruleウィンドウでルール構成をインタラクティブに実験できます。


    • (オプション)エントリポイントが POJO である Java エージェント トランザクション検出ルールの場合、[Select from call graphs] オプションを使用すると、インストゥルメント化されたイグジットポイントまたはロガーにヒットしているすべての潜在的なエントリポイントを自動的に見つけることができます。一部のトラフィックがビジネストランザクションとして検出されていない疑いがある場合、このオプションを使用します。次の設定を行います。
        1. [Rule Configuration Tab] の [Select from call graph] をクリックします。
        2. [Select Method and Class from Call Graph] で階層を選択し、[Capture Call Graphs] をクリックします。デフォルトでは、コールグラフは 15 分間キャプチャされます。また、1 つのセッションで最大 100 のコールグラフをキャプチャでき、階層に最大 200 のコールグラフをキャプチャできます。すべてのコールグラフは 24 時間後に削除されます。デフォルトのコールグラフ設定を変更するには、次のコントローラプロパティを設定します。「検出ルールのコントローラ設定」を参照してください。
          1. コールグラフのキャプチャ期間を変更するには、find.entry.point.session.window.size コントローラプロパティを設定します。このプロパティでは、コールグラフキャプチャ期間の数(分)を指定します。
            コールグラフセッションが開始されると、数分以内にコールグラフが表示されます。
          2. 階層ごとに保存できるコールグラフの最大数を変更するには、find.entry.point.max.callgraph.tier コントローラプロパティを設定します。このプロパティで、階層に対してキャプチャして保存する番号コールグラフを指定します。エージェントはセッションごとに 100 のコールグラフのみをキャプチャすることに注意してください。コールグラフセッションが開始されると、数分以内にコールグラフが表示されます。

            コールグラフキャプチャは、CPU とメモリを使用します。エージェントパフォーマンスに影響を与える場合があります。

        3. コールグラフの詳細で、インストゥルメント化する特定のクラスまたはメソッドを検索します。選択したクラスとメソッドは、現在のルールに自動的に追加されます。ルールの優先順位、範囲を設定し、ルールを保存します。ルールの優先順位については、「トランザクション検出ルール」と「スコープ構成モデル」を参照してください。ルールを保存するとすぐに、欠落しているビジネストランザクションの表示を開始できます。

カスタムマッチ包含ルールの例

この例では、MyCustomScope という名前の範囲の cart.GET というカスタム一致包含ルールを示します。

Custom Match Rule

「cart.GET」ルールは、URI が /cart/ で始まり、その後に数字が続く Web サービス GET リクエストのビジネストランザクションを生成します。Splunk AppDynamics は、得られるビジネストランザクションに cart.GET という名前を付けます。

Business Transaction Match Criteria


ルールに条件を追加して、特定の HTTP パラメータまたはホスト名に基づく一致状況を見ることができます。

ServletやASP.NETなどの特定のHTTPベースのリクエストタイプにおいては、マッチルールに複数のHTTPパラメータ一致条件を設定できます。このルールに一致するには、リクエストがすべてのHTTPパラメータ条件に一致する必要があります。パラメータ間にはOR演算子ではなく、暗にAND演算子があります。

より複雑な正規表現マッチングを使用できます。たとえば、次のリクエスト URL があります。

  • example.com/aaa123.aspx
  • example.com/b1.aspx

受信したリクエスト URL をこのビジネストランザクションと照合するには、次を使用します。

example\.com/[a-zA-Z]]+?[0-9]+?

example.com とそれに続く大文字または小文字および数字を含む URL へのすべてのリクエストは、このビジネストランザクション検出ルールに一致します。example.com/z.aspx などの、文字の後に数字が続かない URL は一致しません。

最適なパフォーマンスを確保し、潜在的な問題を回避するには、正規表現の一致ルールを正確に設定することが重要です。正規表現の対象が広すぎる場合、または NotEmpty オプションがアクティブになっている場合は、エージェントがモニター対象ではないメソッドをインストゥルメント化する可能性があります。これにより、不正確なメソッドコールカウント、メソッドの制限による追加のインストゥルメンテーションの困難、および一般的なパフォーマンスの低下が生じる可能性があります。これらの問題を回避するには、必要なメソッドのみがインストゥルメント化されるように一致ルールを調整します。

UI で正規表現を使用する場合は、「正規表現の使用」を参照してください。  

URIベースのエントリポイントのトランザクション分割

次のタイプの URI ベースのエントリポイントに対して、ビジネストランザクションの分割を構成できます。

  • Java Servlet
  • ASP.NET
  • PHP Web
  • Node.js Web
  • Python Web
  • Web サーバ

トランザクション分割を有効にすると、エージェントは、リクエストの動的部分に基づいて、カスタム包含ルールに一致したリクエストのサブセットを、別々のビジネストランザクションに転換します。アプリケーション エージェントは、次のようにトランザクションに名前を付けます。

<custom match rule name>.<name derived from the split configuration>.

次の受信リクエストを持つアプリケーションを考えてみましょう。

  • http://nwtrader.com/checkout?category=electronics 
  • http://nwtrader.com/checkout?category=clothing 

この例では、2 つのリクエストを、次の名前の 2 つの異なるビジネストランザクションに転換するようにトランザクション分割を構成する方法を示しています。

  • Checkout.electronics
  • Checkout.clothing

Split Transaction Using Request Data

ペイロードに基づいてServletトランザクションを分割できます。詳細については、ペイロードによるServletトランザクションの分割の例を参照してください。

デフォルトのカスタム除外ルール

Splunk AppDynamics には、通常は対象外のフレームワークのエントリポイントに対するデフォルトの除外ルールが含まれています。デフォルトのカスタム除外ルールを表示または変更するには、[Configuration] > [Instrumentation > Transaction Detection > Rules] に移動し、[Rule Type: Custom Exclude] でフィルタリングします。詳細については、カスタム除外ルールの例を参照してください。

サービスエンドポイントの除外ルールを構成するには、「サービスエンドポイント」を参照してください。