A user action is an interaction with the web browser that involves a call to a web server, which can potentially have multiple nested calls.
User action types
A user action can be a page load, an XHR action or a custom action. The key difference among these action types is the way action duration is calculated and that for each type there are different metrics available.
A page load is an actual page loading in your browser. If you enter a URL in your browser and press enter, a page load occurs. During a page load, many resources are loaded, including images, HTML, and CSS.
The action duration in this case is the time required for the complete page load. More specifically, the start time of the user action begins with the W3C
onload handler has completed its task. The
XMLHttpRequests (see XHR actions below) are started by an
onload handler, the user action ends when the
XMLHttpRequest is complete.
Resource timing steps
The following measures are used to chart the duration of specific steps in the page loading process.
|Measure||Description||Definition in terms of W3C specification|
|DNS||Time spent or resolving domain names.||
|Connect||Time spent establishing a socket connection from the browser to the web server.||
|SSL||Time spent establishing a secure socket connection from the browser to the web server.||
|URL Redirection||Time spent following HTTP redirects.||
|Request||Time spent waiting for the first byte of the document response.||
|Response||Time spent downloading the document response.||
|Total||Time between the response being delivered and the
XmlHttpRequest or via
Dynatrace continuously tracks user interactions with each page. If user interaction leads to
fetch() calls, an XHR action is created. Dynatrace also detects if there are additional XHRs triggered in the callback of the initial XHR and so on. In this case, Dynatrace waits until all requests are finished. By monitoring the DOM, Dynatrace can also identify resources that were added in the callbacks. Dynatrace then waits until those resources have finished downloading before ending the action.
An XHR action starts with the user's click on a control on a web page. All metrics are calculated in relation to this point in time and are based on the initial XHR that triggers the user action.
The Fetch API provides an interface for fetching resources (including across the network). It is similar to
XMLHttpRequest, but the API provides a more flexible feature set. The generic definitions of
Response and other network request objects in Fetch allow them to be used at any time they are needed, whether it’s for service workers, Cache API, or anything that handles or modifies requests and responses. Fetch also supports the Cross Origin Resource Sharing (CORS).
User actions based on the Fetch API appear in Dynatrace as XHR actions. You can configure Dynatrace to automatically detect and capture Fetch API request information.
Custom user actions
User action naming rules
Many applications allow users to accomplish the same goal through different UI controls. When monitoring such applications, it can be difficult to differentiate between actions that have the same result and goal, but are executed using different parts of the application UI. Likewise, if the UI of an application is translated into multiple languages, the same application function or control may appear under varying names. With user action naming rules, Dynatrace can detect such subtle variations and intelligently group related user actions (i.e., user actions that achieve the same goal) into logical groups for monitoring.
Dynatrace automatically removes certain common
sessionid tokens from user action names (for example,
jsessionid for Java containers, the default
sessionid for PHP, and
CFTOKEN for ColdFusion). Nonetheless, there are numerous session ID variations that may be present in your environment. If Dynatrace doesn't automatically recognize and remove session IDs from certain user action names you encounter, you'll need to configure custom naming rules for those user actions.