Download PDF
Download page Apache Webサーバーのトランザクション検出.
Apache Webサーバーのトランザクション検出
AppDynamics Apacheエージェントは、Webサーバーエントリポイントをモニタリングし、リクエストURIに基づいてApache Webサーバーティア上で発生するビジネストランザクションを命名します。必要に応じて、デフォルトのビジネストランザクション命名スキームを変更できます。
Webトランザクションのデフォルトの自動命名
デフォルトでは、AppDynamicsの自動検出命名スキームは、クエリ文字列の前に完全なURIを使用して、すべてのWebサーバートランザクションを識別します。たとえば、次のURIはオンラインバンキングの送金操作を表します。
http://bank.example.com/Account/Transferfunds/California
デフォルトのスキームに基づいて、ビジネストランザクションは/Account/Transferfunds/Californiaと命名されます。
以下に基づいて識別を構成することにより、自動検出命名スキームをカスタマイズできます。
- URIセグメント
- ヘッダー、クッキー、およびHTTPリクエストの他の部分
自動検出命名をカスタマイズするには
- [Transaction Detection] ページで、構成するアプリケーションまたはティアを選択し、[Web Server] タブをクリックします。
- トランザクション モニタリングが有効なことを確認し、[Discover Transactions automatically for http web requests] をクリックします。
Discover Transactions automatically for http web requestsを無効にすると、命名のカスタマイズが構成されていてもエージェントによりWebトランザクションは検出されません。 - [Entry Points] パネルの [Web] タイプで [Configure Naming ] をクリックします。
URIセグメントを使用してトランザクションを特定
AppDynamics には、URI に基づいて Web トランザクションを自動命名する複数のオプションがあります。オンラインストアで購入操作を表す次の URL があるとします。
http://onlinestore.example.com/Web/Store/Checkout
以下のオプションのいずれかを使用して、より意味のある名前を識別するようにAppDynamicsを構成できます。
- [Use the first ] または [Use the last] をクリックして、URI の先頭または末尾から、選択した数の連続セグメントを使用します。たとえば、URI の末尾 2 つのセグメントを使用して購入トランザクションを識別する場合、「/Store/Checkout」と命名します。
- 連続していないセグメントを使用するなど、より柔軟に命名を構成する場合は、[Name Transactions dynamically using part of the requests ] をクリックし、[Use URI segments in Transaction names] オプションでセグメントを指定します。
- 特定の URI セグメントでトランザクションを命名するには、[Use URI segment(s) in Transaction names] をクリックします。これにより、命名スキームで URI セグメントをスキップしたり、連続していないセグメントを使用できます。
カンマで区切ったセグメント番号(1, 3)を入力します。たとえば、次の URL は ID 1234 の顧客が要求した購入トランザクションを表します。http://onlinestore.example.com/Store/cust1234/Checkout
購入トランザクションは顧客に関係なく同じであるため、顧客 ID を省略して、URI の 1 番目と 3 番目のセグメントからトランザクションを命名します(ここでは /Store/Checkout)。
ヘッダー、クッキー、およびHTTPリクエストのその他の部分を使用してトランザクションを特定
HTTP リクエストの特定の一部を使用して、ビジネストランザクションを識別するには、[Name Transactions dynamically using part of the request] をクリックし、アプリケーションにとって意味のあるオプションを構成します。
命名の構成は慎重に選択してください。リクエストの送信元アドレスなどの値を使用し、多くのクライアントがアプリケーションにアクセスする場合は、登録済みビジネストランザクションがすぐに最大数に達する可能性が高くなります。このイベントの詳細については、「ビジネストランザクション」の「「その他のトラフィック」ビジネストランザクションについて」を参照してください。
以下に、構成オプションに基づいた結果の例を示します。
- パラメータ名に基づいてトランザクションを命名するには、[Use a parameter value in Transaction names ] をクリックして、[Parameter Name] を入力します。
たとえば、パラメータ名「category」を使用して、トランザクション(http://example.com/Store/Inventory?category=electronics)を命名する場合、AppDynamics はトランザクションに category パラメータ値を含んだ名前(/Store/Inventory.electronics)を付けます。 - トランザクション名でヘッダー値を使用するには、[Use header value in transaction names] をクリックして、[ Header Name] を入力します。
たとえば、「Version」というヘッダーを使用してトランザクションを命名する場合、AppDynamics は /Store/Inventory.v2.5 など、ヘッダー値を含んだ名前をトランザクションに付けます。 - トランザクション名に cookie 値を使用する場合は、[Use a cookie value in Transaction names] をクリックして、[Cookie Name] を入力します。
たとえば、cookie 内のユーザのロイヤルティステータスを追跡する Web サイトの場合は、[Cookie Name] を「loyalty」に設定します。AppDynamics は、ロイヤルティ cookie 値でトランザクションに名前(/Store/Inventory.Status=Gold)を付けます。 - トランザクション名にセッション属性値を使用する場合は、[Use a session attribute in Transaction names] をクリックして、[Session Attribute Key] を入力します。
たとえば、Web サイトのセッションプロパティに顧客のリージョンが保存されるとします。セッション属性名を「region」に設定します。AppDynamics は、region セッション属性値でトランザクションに名前(/Store/Inventory.NorthAmerica)を付けます。 - トランザクション名にリクエストメソッドを使用するには、トランザクション名で [Use the request method (GET/POST/PUT)] をクリックします。
たとえば、「 /Store/Inventory.GET」となります。 - トランザクション名でリクエストホストを使用するには、[Use the request host in Transaction names] をクリックします。 例:
/Store/Inventory.192.0.2.0
- トランザクション名でリクエストの発信元アドレスを使用するには、[Use the request originating address in Transaction names] をクリックします。
AppDynamics は、リクエストクライアントの IP アドレスでトランザクションを命名します。例:/Store/Inventory.192.0.2.10
。 - URI に正規表現を使用してトランザクションを命名するには、[Apply a custom regular expression on the transaction name] をクリックします。AppDynamicsは以下のルールを使用してトランザクションを命名します。
- Apache エージェントは Perl 形式の正規表現を使用する。
- AppDynamicsは、構成で指定されるセグメントで正規表現をテストする。
- AppDynamicsは、一致する文字列の一部を使用してビジネストランザクションを命名する。
- 正規表現パターンが見つからない場合、ビジネストランザクション名はURIルールに基づき決定される。
- 正規表現でグループを使用する場合、AppDynamics は最初に一致したグループでビジネストランザクションを命名する。一致するグループがパターンマッチで見つからない場合、AppDynamics は完全に一致した部分文字列でトランザクションを命名する。
たとえば、http://mywebapp.example.com/abc/;jsessionid=12345008;mykey=mytransaction;anotherkey=foo
という URL について考えてみます。
正規表現(.*mykey.(\w+).*
)を指定し、URI の最初の 2 つのセグメントを使用して mykey の値でトランザクションを命名します。
この例では、AppDynamics はトランザクションを mytransaction と命名します。
カスタムマッチルールおよび除外ルール
ApacheエージェントのWebタイプエントリポイントに、カスタムマッチルールと除外ルールを作成することができます。構成パラメータは、このページで説明した命名のカスタマイズと同様です。Webサーバーティアの除外リクエストが、Java、PHP、またはPythonなどのインストゥルメント化された他のティアに通じる場合、ダウンストリームエージェントによりトランザクションが検出されます。詳細については、「カスタムマッチルール」を参照してください。