自動命名ルールのカスタマイズ

URIベースのエントリポイントに対して新しいデフォルトの自動検出ルールを編集または作成する場合、命名を次のように調整できます。

  • 完全なURIを使用してトランザクションを命名します。
  • URIの一部を使用して動的にトランザクションを命名します。

[Rule Configuration] タブで [Configure Naming] オプションを展開して、設定オプションを表示します。

ルールを /store/coats/menUse the full URI に設定すると、エージェントは完全なリクエスト URI のビジネストランザクション名を作成します。動的な命名オプションはありません。たとえば、URI では、

ヒント: は Grails Servlet トランザクションに最適です。多くの場合デフォルトの命名スキームでは、複数のトランザクションの区別が行われないからです。

URIの一部を使用してトランザクションを命名する場合、トランザクションの命名を構成する複数のオプションがあります。

URI の一部の使用

Splunk AppDynamics では、URI に基づいて URI ベースのトランザクションを自動的に命名する以下のオプションを提供しています。

  • 最初または最後のURIセグメントを使用します。

  • 特定のURIセグメントの使用

次のURLの場合、URIの最初の2つのセグメントは、ビジネストランザクションの重要な名前にはなり得ません。

http://example.com/Web/Store/Checkout では、「Web/Store」というデフォルトのトランザクション名が生成されます。

次のオプションのいずれかを使用して、より意味のあるトランザクション名を識別できます。

  • [Use the first] または [Use the last n] セグメントをクリックして、URI の先頭か末尾にある 2 つの連続したセグメントを使用します(n はセグメントの数)。たとえば、URIの末尾2つのセグメントを使用して購入トランザクションを識別する場合、エージェントはトランザクションに「/Store/Checkout」と命名します。
  • 連続していないセグメントを使用するなど、より柔軟に命名を構成する場合は、[Name Transactions dynamically using part of the request] をクリックします。[Use URI segments in Transaction names] オプションを選択します。http://example.com/Store/cust1234/CheckoutSplunk AppDynamicsたとえば、次の URL は ID 1234 の顧客が要求した購入トランザクションを表します。購入トランザクションは顧客に関係なく同じであるため、URI の 1 番目と 3 番目のセグメントに基づいてトランザクションを命名します。 はトランザクションに「StoreCheckout」という名前を付けます。トランザクション名の URI

ヘッダー、クッキー、およびHTTPリクエストの他の部分の使用

[Name Transactions dynamically using part of the request] オプションを使用すると、HTTP リクエストの特定の部分を使用して URI ベースのトランザクションを識別するように選択できます。必ずしもすべてのエージェントで次の命名オプションがすべて使用できるわけではないことに注意してください。

注: 命名の構成は慎重に選択してください。リクエストの送信元アドレスなどの値を使用し、多くのクライアントがアプリケーションにアクセスする場合は、その他すべてのトラフィックのビジネスアプリケーションを参照してください。
  • トランザクション名で HTTP パラメータ値を使用するには、[Use a parameter value in Transaction names] を選択して、[Parameter Name] を入力します。たとえば、次の URL を検討します。http://example.com/Store/Inventory?category=electronics 。トランザクション名の URISplunk AppDynamics では、category パラメータ値「/Store/Inventory.electronics」を含んだ名前をトランザクションに付けます。
  • トランザクション名でヘッダー値を使用するには、[Use header value in Transaction names] を選択して、[Header Name.] を入力します。たとえば、カスタムヘッダー「Version」を使用するサイトの場合、Splunk AppDynamics はヘッダー値を使用してトランザクションを「/Store/Inventory.v2.5」と命名します。
  • トランザクション名に cookie 値を使用するには、[Use a cookie value in Transaction names] を選択し、[Cookie Name] を入力します。たとえば、Web サイトで cookie を使ってユーザーのロイヤルティステータスを追跡する場合は、Cookie 名を「loyalty」に設定します。Splunk AppDynamics は、ロイヤルティ cookie 値でトランザクションに名前(/Store/Inventory.Status=Gold)を付けます。
  • トランザクション名にセッション属性値を使用するには、[Use a session attribute in Transaction names] をクリックし、[Session Attribute Key] を入力します。たとえば、Web サイトのセッションプロパティに顧客のリージョンが保存されている場合は、セッション属性名を「region」に設定します。Splunk AppDynamics は、region セッション属性値でトランザクションに名前(/Store/Inventory.NorthAmerica)を付けます。
  • トランザクション名にリクエストメソッドを使用するには、[Use the request method (GET/POST/PUT) in Transaction names] をクリックします。たとえば、Splunk AppDynamics はトランザクションに「/Store/Inventory.GET」という名前を付けます。
  • トランザクション名にリクエストホストを使用するには、[Use the request host in Transaction names] をクリックします。たとえば、Splunk AppDynamics ではトランザクション名「/Store/Inventory.192.0.2.0」にリクエストホスト ID が含まれます。
  • トランザクション名にリクエスト元のアドレスを使用するには、[Use the request originating address in Transaction names] をクリックします。Splunk AppDynamics は、リクエストクライアントの IP アドレスのトランザクションに「/Store/Inventory.192.0.2.10」という名前を付けます。

カスタム式の使用

URIでカスタム式を使用して、次のように命名できます。

  • Java Servletトランザクション
  • .NET ASP.NETトランザクション

[Name Transactions dynamically using part of the request]、[Usea custom expression in Transaction names] の順に選択します。カスタム式 getter チェーンを次のように入力します。

Java の場合、getter チェーンを使用して、 オブジェクトから値にアクセスできます。

${getParameter(myParam)}-${getUserPrincipal().getName()}

同等のコード式は、以下のように評価されます。

request.getParameter("myParam")+"-"+request.getUserPrincipal()

HTTPServletRequestオブジェクトでカスタム式の結果を使用できます。

Servletトランザクションのカスタム式には、リクエスト属性に以下のgetterメソッドを組み合わせて使用できます。

getAuthType()

安全な(または安全ではない)コミュニケーションを監視するにはこのオプションを使用。

getContextPath()

URIの一部に基づくユーザーリクエストを識別。

getHeader()

リクエストヘッダーに基づくリクエストを識別。

getMethod()

特定のメソッドにより呼び出されるユーザーリクエストを識別。

getPathInfo()

URLと関連付けられた追加のパス情報に基づくリクエストを識別(リクエスト作成時にクライアントにより送信)。

getQueryString()

パスの後にくるリクエストURLに含まれるクエリ文字列に基づきリクエストを識別。

getRemoteUser()

リクエストしたユーザーのログインに基づきユーザーリクエストを識別。

getRequestedSessionId()

クライアント指定のセッションIDに基づきユーザーリクエストを識別。

getUserPrincipal()

現在の認証済ユーザーを基準にユーザーリクエストを識別。

.NET の場合、getter チェーンを使用して、フルフレーム上の ASP.NET の オブジェクトや ASP.NET Core の のプロパティおよびメソッドにアクセスできます。

たとえば、http://mystore.example.com/Store/Inventory-Furniture という URL の場合、次のカスタム式は、2 つの getter チェーンを使用して、 オブジェクトのプロパティにアクセスします。

${Url.ToString().Split(Char[]/-).[2]}-${UserAgent}
  • 1つ目のgetterチェーンはURLを取り出してダッシュ("-")で分割し、その列の2つ目の文字列を使用する。
  • 2 つ目の getter チェーンが HttpRequest.UserAgent プロパティを取り出す。
  • ダッシュ「-」が 2 つの getter チェーンを分割します。

結果は次のビジネストランザクション名になります。

Geckoに似たFurniture-Mozilla/5.0(Windows NT 6.3; Trident/7.0; rv:11.0)