Versions Compared

    Key

    • This line was added.
    • This line was removed.
    • Formatting was changed.
    Comment: Published by Scroll Versions from this space and version 20.3
    Sv translation
    languageen

    AppDynamics automatically detects requests to servlet-based entry points and generates business transactions based on the requests. For general information on how to customize automatic transaction detection, see URI Based Entry Points.

    Frameworks Supported as Servlets or Servlets Filter

    AppDynamics supports many web frameworks based on servlets or servlet filters. The servlet configuration settings in AppDynamics apply to these frameworks as well as to plain servlets. Frameworks include:

    • Spring MVC
    • Wicket
    • Java Server Faces (JSF)
    • JRuby
    • Grails
    • Groovy
    • Tapestry
    • ColdFusion

    Custom Match Rules for Servlet Transactions

    Custom match rule let you control how business transactions are generated for Servlet-based requests. 

    Match Conditions

    Match conditions can be based upon the URI, HTTP method, hostname, servlet name, or other characteristics of the request.

    For HTTP Parameter conditions, you can add more than one. If you configure more than one HTTP Parameter match criteria, they must all be met by a request to be subject to this business transaction identification and naming rule, as must all conditions you configure for the rule.  

    Some of the options have NOT conditions that you can choose to negate the configured condition. Choose this option in the gear icon next to the condition.

    Splitting Transactions using Request Data or Payload

    If you match by URI, you can have the transaction identified (or split) based on values from the request, such as URI patterns, request data, or payload. See URI Based Entry Points for information on naming or splitting transactions by the request elements.

    When you create the rule, it appears in the Custom Match Rule list, where you can enable, disable, edit or remove the rule.

    See Split Servlet Transaction by Payload Examples for use case examples.

    POST Request Body Parameter Matching Considerations

    You can configure Servlet-based custom match that match POST requests based on HTTP body parameter values. To avoid interfering with the operation of the application, the Java Agent applies some special processing measures and limits on how it accesses the body parameters. This behavior can affect whether requests can be matched by POST body parameters for your particular application. If you are having trouble configuring matching by HTTP parameter in POST requests, you should understand this behavior. 

    Transaction Naming Match Criteria 

    For transaction match criteria, match conditions for HTTP parameters work under these conditions:

    • If the parameter is a query string in the URL of the POST request, as opposed to the request body. 
    • If the Servlet Request body parameters have already been read and parsed by the application prior to the invocation of the servlet. A Servlet Filter, for example, may do this. 

    Otherwise, custom servlet match rules do not match HTTP parameter values in POST requests.

    Transaction Splitting 

    For transaction split rules based on parameter matching in POST requests, the Java Agent defers transaction naming for incoming requests until the application servlet has accessed the request parameters.

    The Java Agent considers the parameters "accessed" once the application invokes getParameterMap()getParameter()getParameterNames(), or getParameterValues() on the ServletRequest object. If the servlet does not call one of these methods, the agent will not apply the split rule and the transaction will not be named. 

    Exclude Rules for Servlets

    To prevent specific Servlet methods from being monitored, add a custom exclude rule. The controls for selecting Servlets to exclude are the same as those for custom match rules. 



    Sv translation
    languageja

    AppDynamicsでは、Servletベースのエントリポイントへのリクエストを自動的に検出し、そのリクエストを基にビジネストランザクションを生成します。For general information on how to customize automatic transaction detection, see URI Based Entry Points.

    ServletまたはServletフィルタとしてサポートされているフレームワーク

    AppDynamicsは、ServletまたはServletフィルタベースの多数のWebフレームワークをサポートしています。AppDynamicsでのServlet構成設定は、プレーンなServletと同様に以下のフレームワークに適用されます。フレームワークは次のとおりです。

    • Spring MVC
    • Wicket
    • Java Server Faces(JSF)
    • JRuby
    • Grails
    • Groovy
    • Tapestry
    • ColdFusion

    Servletトランザクションのカスタムマッチルール

    カスタムマッチルールを使用して、Selvet ベースのリクエストに対するビジネストランザクションの生成方法を制御できます。 

    一致条件

    一致条件は、URI、HTTPメソッド、ホスト名、servlet名など、リクエストの特性に基づいて設定できます。

    HTTPパラメータ条件には、ひとつ以上の条件を追加できます。複数のHTTPパラメータ一致基準を構成する場合、すべてがリクエストを満たし、そのビジネストランザクションの識別および命名ルールに従う必要があります。  

    一部のオプションでは、構成された条件を否定できる NOT 条件を選択できます。このオプションを選択するには、条件の横にある歯車アイコンを使用します。

    リクエストデータまたはペイロードを使用したトランザクションの分割

    URIで一致させる場合、URIパターン、リクエストデータ、ペイロードなど、リクエストからの値に基づいて、トランザクションを識別(あるいは分割)することができます。リクエストエレメントによるトランザクションの命名または分割の詳細については、「URI Based Entry Points」を参照してください。

    ルールを作成すると Custom Match Ruleリストに表示され、ルールの有効化/無効化や、編集、削除ができます。

    使用例については、「Split Servlet Transaction by Payload Examples」を参照してください。

    POSTリクエストボディのパラメータマッチングに関する考慮事項

    HTTP ボディのパラメータ値に基づいて POST リクエストに一致する Servlet ベースのカスタムマッチを構成できます。アプリケーションの動作に干渉しないようにするために、Java エージェントは、自身のボディパラメータへのアクセス方法に対して複数の特別な処理方法と制限を適用します。この動作は、特定のアプリケーションの POST ボディパラメータが照合できるリクエストに影響を与える可能性があります。POST リクエストで HTTP パラメータによる照合の構成に問題が発生した場合は、この動作を理解しておく必要があります。 

    トランザクションの命名に関する一致基準

    トランザクションの一致基準におけるHTTPパラメータの一致条件は、以下の場合に作用します。

    • パラメータが、リクエストボディではなく POST リクエストの URL 内にあるクエリ文字列の場合。 
    • Servlet リクエストボディパラメータが、Servlet の呼び出し前に、アプリケーションによりすでに読み取られ解析されている場合。たとえば、Servlet フィルタはこれを実行できます。 

    上記以外の場合、カスタムServletマッチルールはPOSTリクエストのHTTPパラメータ値と一致しません。

    トランザクションの分割

    POST リクエストのパラメータ照合に基づくトランザクション分割ルールの場合、Java エージェントは、アプリケーション サーブレットがリクエストパラメータにアクセスするまで、受信リクエストのトランザクション命名を延期します。

    アプリケーションが ServletReques オブジェクトにおいて getParameterMap()getParameter()getParameterNames()、または getParameterValues() を呼び出すと、Java エージェントはパラメータに「アクセスがあった」と認識します。Servlet がいずれのメソッドも呼び出さない場合、エージェントは分割ルールを適用せず、トランザクションは命名されません。 

    Servletの除外ルール

    特定の Servlet メソッドがモニタされないようにするには、カスタム除外ルールを追加します。除外する Servlet の選択コントロールは、カスタムマッチルールと同様です。