The AppDynamics Apache Agent monitors web server entry points and names business transactions originating on Apache web server tiers based on the request URI. You can modify the default business transaction naming scheme if needed.
Default Automatic Naming for Web Transactions
By default, the AppDynamics auto-detection naming scheme identifies all web server transactions using the full URI before the query string. For example, the following URI represents a funds transfer operation for an online bank:
Based on the default scheme, the business transaction would be named /Account/Transferfunds/California.
You can customize the auto-detected naming scheme by configuring identification based on:
- URI segments
- Headers, cookies, and other parts of HTTP requests
To customize auto-detected naming:
- On the Transaction Detection page, select the application or tier to configure and click the Web Server tab.
- Verify that Transaction Monitoring is enabled and click Discover Transactions automatically for http web requests.
If you disable Discover Transactions automatically for WEB requests, the agent doesn't discover WEB transactions even if you configure custom naming.
- Click Configure Naming for the Web type in the Entry Points panel.
Identify Transactions Using URI Segments
AppDynamics offers several options to automatically name web transactions based on the URI. Consider the following URL representing a checkout operation in an online store:
You can configure AppDynamics to identify a more meaningful name using one of the following options:
- Click Use the first or Use the last to use the selected number of contiguous segments at the beginning or end of the URI. For example, to identify the checkout transaction using the last two segments of the URI: /Store/Checkout.
- If you need more flexibility, such as using non-contiguous segments in the name, click Name Transactions dynamically using part of the requests and specify the segments with the Use URI segments in Transaction names option.
- To name the transaction for specific URI segments, click Use URI segment(s) in Transaction names. This enables you to skip URI segments or use non-contiguous segments in the naming scheme.
Enter the segment numbers separated by commas: 1, 3. For example, the following URL represents the checkout transaction requested by a customer with ID 1234:
The checkout transaction is the same regardless of the customer, so it makes sense to omit the customer ID and name the transaction based on the first and third segments of the URI: /Store/Checkout.
Identify Transactions Using Headers, Cookies, and Other Parts of HTTP Requests
To identify business transactions using particular parts of the HTTP request, click Name Transactions dynamically using part of the request and configure the option that makes sense for your application.
Carefully consider your naming configuration choices. If you use a value such as the request originating address and you have many clients accessing your application, it's likely that you would quickly reach the maximum number of registered business transactions. See "About the "All Other Traffic" Business Transaction" in Business Transactions for information about this event.
The following provides sample results based on the configuration options:
- To name transactions based upon the parameter name, click Use a parameter value in Transaction names and enter the Parameter Name.
For example, when you name the following transaction using the parameter name "category": , /Store/Inventory.electronics.
- To use a header value in transaction names, click Use header value in transaction names and enter a Header Name.
For example, if you name the transaction using a header such as "Version", AppDynamics names transactions with the header value as follows: /Store/Inventory.v2.5.
- To use a cookie value in transaction names, click Use a cookie value in Transaction names and enter the Cookie Name.
For example, for a website that tracks a user's loyalty status in a cookie. Set the Cookie Name to "loyalty". AppDynamics names transactions for the loyalty cookie value: /Store/Inventory.Status=Gold.
- To Use a session attribute value in transaction names, Click Use a session attribute in Transaction names and enter the Session Attribute Key.
For example, a website stores a customer's region in the session property. Set the Session Attribute name to "region". AppDynamics names transactions for the region session attribute value: /Store/Inventory.NorthAmerica.
- To use the request method in Transaction names, click Use the request method (GET/POST/PUT) in Transaction names.
For example: /Store/Inventory.GET.
- To use the request host in Transaction names, click Use the request host in Transaction names. For example:
- To use the request originating address in Transaction names, click Use the request originating address in Transaction names.
AppDynamics names transactions for the IP address of the request client. For example:
- To use a regular expression on the URI to name the transaction, click Apply a custom regular expression on the transaction name. AppDynamics uses the following rules to name the transaction:
- The Apache Agent uses Perl style regular expressions.
- AppDynamics tests the regular expression against the segments specified in the configuration.
- AppDynamics names the business transaction for the substring match.
- If the regular expression pattern isn't found, the business transaction name follows the URI rules.
- If you use groups in the regular expression, AppDynamics names the business transaction for the first matching group. If no matching groups are found in the pattern match, AppDynamics names the transaction for the fully matched substring.
For example consider the following URL:
Use the first two segments of the URI with the following regular expression to name the transaction for the value of mykey:
In this instance AppDynamics names the transaction mytransaction.
Custom Match Rules and Exclude Rules
You can create custom match rules and exclude rules for Web type entry points for Apache Agent. The configuration parameters work the same as those for custom naming in this page. If an excluded request on the Web Server tier passes to another instrumented tier such as Java, PHP, or Python, the downstream agent will detect the transaction. See Custom Match Rules.