Download PDF
Download page カスタムマッチルール.
カスタムマッチルール
カスタムマッチルールは、ビジネストランザクション検出とエントリポイントタイプの命名の基準を定義できるタイプのトランザクション検出ルールです。
次の2つのタイプのカスタムマッチルールがあります。
- カスタム包含ルールは、新しいトランザクションで使用するエントリポイントを定義します。
- カスタム除外ルールを使用すると、トラッキング対象外のビジネストランザクションを Splunk AppDynamics が検出しないようにできます。たとえば、アプリケーション フレームワーク サービス、管理コンソール要求、ハートビート ping などがあります。
ライブプレビューを使用して、特定のカスタムマッチルール構成を実験し、可能性のあるビジネス トランザクション エントリ ポイントを識別します。
- ビジネストランザクション検出セッション中、クラス/メソッドブラウザまたはインストゥルメント化されていないコードを使用して、POJO および POCO カスタムマッチルールを作成できます。
- POJO または Servlet エントリポイントを作成または編集するときに、作成している個々のルールについてライブプレビューを使用できます。
トランザクションの命名
アプリケーション エージェントがカスタム包含ルールに一致するリクエストを検出すると、そのルール名に基づいてビジネストランザクションに名前を付けます。URI ベースのルール、POJO、または POCO のトランザクション分割を使用して、トランザクション名をさらに絞り込むことができます。
リクエストが複数のカスタム包含ルールに一致した場合、優先順位が最も高いルールを適用します。「Transaction Detection Rules」を参照してください。
カスタムマッチルールの作成
[Configuration > Instrumentation ] に移動して、[Transaction Detection] サブタブを選択します。
[Rules] サブタブを選択します。
[Transaction Detection] タブの特定のスコープ内にルールを追加することもできます。
[Custom Match Rule] が選択された状態で [Add ] を選択すると、[Add Rule] ページが開きます。
- [Agent Type] と [ Entry Point Type ] を選択し、[Next] を選択します。
- Summaryタブで一般的なルール構成を行います。
- カスタムマッチ除外ルールを作成している場合、次をクリックします
ルールの名前を入力します。アプリエージェントは、ルールに一致するリクエストをこのルール名に基づいて命名します。
エラーを回避するために、ルール名には次の特殊文字を使用しないでください:小なり記号(<)および大なり記号(>)。
- 必要に応じてルールを無効にし、ルールの優先順位を設定して、ルールをスコープに割り当てます。
ルールの優先順位については、「Transaction Detection Rules」を参照してください。
スコープの詳細については、「スコープ構成モデル」を参照してください。
Rule Configurationタブで、エントリポイントタイプに基づいて一致基準を構成します。たとえば、PHP Web では、HTTP メソッド、URI、クエリパラメータなどの HTTP 指向の一致基準を指定できます。
Servlet および POJO エントリポイントタイプには [Live Preview] ボタンがあり、カスタムマッチルールのライブプレビューセッションを起動できます。ライブプレビューは、アクティブノードからデータをストリーミングするので、Add Ruleウィンドウでルール構成をインタラクティブに実験できます。
カスタムマッチ包含ルールの例
この例では、MyCustomScope という名前の範囲の cart.GET というカスタム一致包含ルールを示します。
「cart.GET」ルールは、URI が /cart/
で始まり、その後に数字が続く Web サービス GET リクエストのビジネストランザクションを生成します。Splunk AppDynamics は、得られるビジネストランザクションに cart.GET
という名前を付けます。
ルールに条件を追加して、特定の 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
ペイロードに基づいてServletトランザクションを分割できます。詳細については、ペイロードによるServletトランザクションの分割の例を参照してください。
デフォルトのカスタム除外ルール
Splunk AppDynamics には、通常は対象外のフレームワークのエントリポイントに対するデフォルトの除外ルールが含まれています。デフォルトのカスタム除外ルールを表示または変更するには、[Configuration] > [Instrumentation > Transaction Detection > Rules] に移動し、[Rule Type: Custom Exclude] でフィルタリングします。詳細については、カスタム除外ルールの例を参照してください。
サービスエンドポイントの除外ルールを構成するには、「サービスエンドポイント」を参照してください。