Semantic conventions for user action events in Dynatrace RUM. User action capturing is an upcoming feature of Dynatrace RUM that will be available soon.
This query searches for all user actions.
fetch user.events| filter characteristics.has_user_action == true
| Attribute | Type | Description | Examples |
|---|---|---|---|
characteristics.classifier | string | experimental Fixed value other. | other |
characteristics.has_navigation | boolean | experimental Primary characteristic: If set to true, the user event contains navigation information. | true |
characteristics.has_user_action | boolean | experimental Fixed value true. | true |
characteristics.is_api_reported | boolean | experimental Additional characteristic: If set to true, the user event was sent using the Dynatrace API. | true |
| Attribute | Type | Description | Examples |
|---|---|---|---|
user_action.instance_id | uid | experimental A random ID that is generated for every user action. The user_action.instance_id is an 8-byte ID and hex-encoded if shown as a string. | f76281848bd8288c |
user_action.type | string | experimental The user action type. | xhr |
user_action.custom_name | string | deprecatedThe attribute user_action.custom_name will be replaced with user_action.name soon.The user action name reported via the Dynatrace API. | FooBar - Title |
user_action.interrupted_by_instance_id | uid | experimental The user_action.instance_id of the user action that interrupted this user action. | f76281848bd8288c |
user_action.interrupted_instance_id | uid | experimental The user_action.instance_id of the user action that was interrupted by this user action. | f76281848bd8288c |
user_action.mutation_count | long | experimental The number of DOM mutations during the lifespan of the user action. | 3 |
user_action.requests.pending_request_count | long | experimental The number of requests that were pending when the user action finished. | 2 |
user_action.requests.data_url_request_count | long | experimental The number of requests to a data URL during the lifespan of the user action. | 2 |
user_action.requests.count | long | experimental The number of requests during the lifespan of the user action. | 10 |
user_action.resources.count | long | experimental The number of resources loaded during the lifespan of the user action. | 9 |
user_action.resources.__initiator_type__.count | long | experimental The number of resources loaded during the lifespan of the user action split by initiator type, for example, user_action.resources.xmlhttprequest.count. Known initiator types are xmlhttprequest, fetch, navigation, css, script, beacon, video, audio, track, img, image, input, a, iframe, frame, link, icon, internal, violationreport and other. | 9 |
user_action.complete_reason | string | experimental The reason why the user action was completed. | timeout |
user_action.type MUST be one of the following:
| Value | Description |
|---|---|
api | The user action was reported via the Dynatrace API. |
soft_navigation | The user action was triggered by a soft navigation that led to a view change. |
xhr | The user action was triggered by a user interaction, followed by an XHR or fetch request. |
user_action.complete_reason MUST be one of the following:
| Value | Description |
|---|---|
completed | The user action was normally completed. |
completed_by_api | The user action was completed using the Dynatrace API. |
interrupted_by_api | The user action was interrupted by a new user action started with the Dynatrace API. |
interrupted_by_navigation | The user action was interrupted by a navigation. |
interrupted_by_request | The user action was interrupted by a request. |
no_activity | The activity detection was triggered, but no user action was captured. |
page_hide | The user action was closed because the page was left. |
timeout | The user action timed out. |
| Attribute | Type | Description | Examples |
|---|---|---|---|
dom_event.is_trusted | boolean | experimental Interaction is genuine from real user and not a synthetic event. | true |
interaction.name | string | experimental Type of action performed by the user. | click |
ui_element.custom_name | string | experimental Custom name of the element. Filled by the data-dt-name or the data-dt-children-name DOM attribute. Limited to 32 characters. | Add to cart; Homepage logo |
ui_element.name | string | experimental User interface element name. Captured by precedence of aria-label > title > name > data-testid > content > id. In case of content and name, it's cropped to 32 chars. In case it is masked, precedence is aria-label > title > name > data-testid > id > "masked". | Add to cart; Homepage logo |
ui_element.name_origin | string | experimental Field used to fill ui_element.name. | title; name; id; content; value |
ui_element.tag_name | string | experimental User interface element type. For web, it's the tag name. For mobile, it's the name of, for example, the controller or fragment | div; CartFragment |
| Attribute | Type | Description | Examples |
|---|---|---|---|
network.protocol.name | string | experimental OSI Application Layer or non-OSI equivalent. This is a mandatory field for request user events. | amqp; http; mqtt |
| Attribute | Type | Description | Examples |
|---|---|---|---|
url.domain | string | experimental The URI domain component. This is extracted from url.full. | www.foo.bar; google.com; wikipedia.org |
url.fragment | string | experimental The URI fragment component. This is extracted from url.full. | SemConv |
url.full | string | experimental Absolute URL describing a network resource according to RFC3986. OneAgent for Mobile removes the optional user information subcomponent. This is a mandatory field for request user events. Tags: sensitive-spans | https://www.foo.bar/docs/search?q=OpenTelemetry#SemConv |
url.path | string | experimental The URI path component. This is extracted from url.full. | /docs/search |
url.provider | string | experimental The provider type for the host name of url.full. This information is determined by Dynatrace RUM resource detection. | third_party |
url.query | string | experimental The URI query component. This is extracted from url.full.Tags: sensitive-spans | q=OpenTelemetry |
url.scheme | string | experimental The URI scheme component identifying the used protocol. This is extracted from url.full. | https; ftp; telnet |
| Attribute | Type | Description | Examples |
|---|---|---|---|
span.id | uid | experimental A unique identifier for a span within a trace. The span.id is an 8-byte ID and hex-encoded if shown as a string. Only available if Dynatrace RUM starts a trace and sets the Trace Context HTTP headers. | f76281848bd8288c |
trace.id | uid | experimental A unique identifier for a trace. The trace.id is a 16-byte ID and hex-encoded if shown as a string. Available if Dynatrace RUM starts a trace and sets the Trace Context HTTP headers or if RUM JavaScript captures the trace information reported by OneAgent via server-timing HTTP response header. | 357bf70f3c617cb34584b31bd4616af8 |
trace.is_sampled | boolean | experimental Flag indicating whether the trace was sampled out. If set to true, the trace is recorded. If set to false, the trace is ignored. Only available if RUM JavaScript captures the trace information reported by OneAgent via server-timing HTTP response header. Not supported by OneAgent for Mobile. | true; false |
| Attribute | Type | Description | Examples |
|---|---|---|---|
request.trace_context_hint | string | experimental Indicates if and why Dynatrace RUM set the W3C Trace Context headers on the request. | excluded |
request.server_timing_hint | string | experimental Indicates if and why RUM JavaScript received trace information from OneAgent via the browser's performance API ( PerformanceServerTiming interface). | received |
request.trace_context_hint MUST be one of the following:
| Value | Description |
|---|---|
api_set | Trace Context headers were set using the Dyntrace API. |
api_unused | Trace Context headers were not set in the customer code using the Dyntrace API, therefore it’s expected that the header is not set. |
cross_origin | Trace Context headers were not set because the request is a cross-origin request. |
disabled | Trace Context headers were not set for the request because the feature is disabled. |
excluded | Trace Context headers were not set because the request is excluded by configuration. |
external | Trace Context headers were not set because the traceparent HTTP request header was already available. |
from_server | Trace Context headers were set based on the request's server-timing HTTP response header. |
included | Trace Context headers were set because the request is included by configuration. |
invalid | Trace Context headers were not set because the traceparent HTTP request header was already available but invalid according to the W3C specification. |
max_length | Trace Context headers were not set because the maximum length for the tracestate entry was exceeded. |
missing_values | Trace Context headers were not set because mandatory values were not available to Dyntrace RUM. |
not_http | Trace Context headers were not set because the request is not an HTTP request. |
not_initialized | Trace Context headers were not set because the initial configuration was not received. |
not_set | Trace Context headers were not set for the request. |
set | Trace Context headers were set for the request. |
request.server_timing_hint MUST be one of the following:
| Value | Description |
|---|---|
invalid | RUM JavaScript ignored invalid trace information. |
mismatch | RUM JavaScript received trace information that doesn't match the Trace Context headers. |
no_trace_info | No trace information available. |
not_available | Server-Timing not available. |
received | RUM JavaScript received valid trace information. |
| Attribute | Type | Description | Examples |
|---|---|---|---|
error.csp_violation_count | long | experimental The number of CSP rule violations. | 1 |
error.dropped_exception_count | long | experimental The number of exceptions that are observed, but which are not captured due to error capture limits. | 1 |
error.exception_count | long | experimental The total number of exceptions that are observed, including exceptions that are not captured. | 1 |
error.http_4xx_count | long | experimental The number of HTTP request errors with an http.response.status_code of 400-499. | 1 |
error.http_5xx_count | long | experimental The number of HTTP request errors with an http.response.status_code of 500-599. | 1 |
error.http_other_count | long | experimental The number of HTTP request errors with an http.response.status_code of 0-99 or 600+ (undefined errors). | 1 |
| Attribute | Type | Description | Examples |
|---|---|---|---|
web_vitals.cumulative_layout_shift | double | experimental The Cumulative Layout Shift (CLS) value. | 0.1279 |
web_vitals.first_input | duration | experimental The First Input value. | 6000000 |
web_vitals.first_input_delay | duration | experimental The First Input Delay (FID) value. | 6000000 |
web_vitals.interaction_to_next_paint | duration | experimental The Interaction to Next Paint (INP) value. | 190000000 |
web_vitals.largest_contentful_paint | duration | experimental The Largest Contentful Paint (LCP) value. | 880000000 |
The Largest Contentful Paint (LCP) attributes contain additional information about the captured web_vitals.largest_contentful_paint.
| Attribute | Type | Description | Examples |
|---|---|---|---|
lcp.status | string | experimental The status information for LCP. | reported |
lcp.update_count | long | experimental The number of LCP updates during the entire lifespan. | 0 |
lcp.start_time | double | experimental The value of the LCP object's startTime property. The unit is milliseconds. | 880.0 |
lcp.url | string | experimental If the element is an image, the request URL of the image. | https://www.foo.bar/images/image.png |
lcp.load_time | double | experimental The value of the LCP object's loadTime property (the time the element was loaded). The unit is milliseconds. In case the element finished to load but the browser did not render it yet, a negative value is reported. | 874.0 |
lcp.render_time | double | experimental The value of the LCP object's renderTime property (the time that the element was rendered). The unit is milliseconds. | 880.0 |
lcp.size | long | experimental The intrinsic size of the element representing its area on the screen. The value is equal to the element's width multiplied by its height, in pixels. | 53640 |
lcp.id | string | experimental The element's ID. | productLogo |
lcp.ui_element.xpath | string[] | experimental The element's xpath. Might be missing, for example, for element's that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
lcp.ui_element.tag_name | string | experimental The element's tag name. Might be missing, for example, for element's that are inside a shadow DOM. | BUTTON |
lcp.ui_element.render_delay | double | experimental The element's render delay, that is the time between when the element finishes loading and when it is fully rendered. The unit is milliseconds. Only available if a resource timing is available for the element. | 100.0 |
lcp.resource.load_delay | double | experimental The resource's load delay, that is the time between Time to First Byte and when the browser starts loading the resource. The unit is milliseconds. Only available if a resource timing is available for the resource. | 400.0 |
lcp.resource.load_duration | double | experimental The resource's load duration, that is the total time it takes to load the resource. The unit is milliseconds. Only available if a resource timing is available for the resource. | 300.0 |
lcp.status MUST be one of the following:
| Value | Description |
|---|---|
backgrounded | LCP is not reported because the browser tab was loaded in the background. |
disabled | LCP is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | LCP is not reported because no content was rendered. |
not_supported | LCP is not supported by the browser. |
reported | LCP is reported. |
The First Input Delay (FID) attributes contain additional information about the captured web_vitals.first_input_delay.
| Attribute | Type | Description | Examples |
|---|---|---|---|
fid.status | string | experimental The status information for FID. | not_reported |
fid.loading_state | string | experimental The document's loading state recorded at the point in time when the FID was captured. | complete |
fid.start_time | double | experimental The value of the FID object's startTime property. The unit is milliseconds. | 13427.0 |
fid.duration | double | experimental The value of the FID object's duration property. The unit is milliseconds. | 24.0 |
fid.name | string | experimental The value of the FID object's name property (the user interaction event). | click |
fid.processing_start | double | experimental The value of the FID object's processingStart property. The unit is milliseconds. | 13433.0 |
fid.processing_end | double | experimental The value of the FID object's processingEnd property. The unit is milliseconds. | 13433.0 |
fid.processing_duration | double | experimental How long it took for the event handler to execute. This is calculated as fid.processing_end minus fid.processing_start. | 0.0 |
fid.cancelable | boolean | experimental The value of the FID object's cancelable property. | true |
fid.ui_element.xpath | string[] | experimental The element's xpath. Might be missing, for example, for element's that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
fid.ui_element.tag_name | string | experimental The element's tag name. Might be missing, for example, for element's that are inside a shadow DOM. | BUTTON |
fid.status MUST be one of the following:
| Value | Description |
|---|---|
disabled | FID is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | FID is not reported because there was no user interaction. |
not_supported | FID is not supported by the browser. |
reported | FID is reported. |
fid.loading_state MUST be one of the following:
| Value | Description |
|---|---|
complete | The document and all sub-resources have finished loading. |
dom_content_loaded | The document has been parsed and deferred scripts have finished loading but other sub-resources such as async scripts, images, stylesheets, and frames are still loading. |
dom_interactive | The document has finished loading and the document has been parsed but sub-resources such as scripts, images, stylesheets, and frames are still loading. |
loading | The document is still loading. |
The Interaction to Next Paint (INP) attributes contain additional information about the captured web_vitals.interaction_to_next_paint.
| Attribute | Type | Description | Examples |
|---|---|---|---|
inp.status | string | experimental The status information for INP. | reported |
inp.update_count | long | experimental The number of INP updates during the entire lifespan. | 0 |
inp.interaction_count | long | experimental The number of interactions, during the entire lifespan, that exceed 40 milliseconds. | 0 |
inp.loading_state | string | experimental The document's loading state recorded at the point in time when the INP was captured. | complete |
inp.start_time | double | experimental The value of the INP object's startTime property. The unit is milliseconds. | 13427.0 |
inp.duration | double | experimental The value of the INP object's duration property. The unit is milliseconds. | 24.0 |
inp.name | string | experimental The value of the INP object's name property (the user interaction event). | click |
inp.processing_start | double | experimental The value of the INP object's processingStart property. The unit is milliseconds. | 13433.0 |
inp.processing_end | double | experimental The value of the INP object's processingEnd property. The unit is milliseconds. | 13433.0 |
inp.processing_duration | double | experimental How long it took for the event handler to execute. This is calculated as inp.processing_end minus inp.processing_start. | 0.0 |
inp.cancelable | boolean | experimental The value of the INP object's cancelable property. | true |
inp.ui_element.xpath | string[] | experimental The element's xpath. Might be missing, for example, for element's that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
inp.ui_element.tag_name | string | experimental The element's tag name. Might be missing, for example, for element's that are inside a shadow DOM. | BUTTON |
inp.status MUST be one of the following:
| Value | Description |
|---|---|
below_threshold | INP is not reported because the value is below the threshold of 40 milliseconds. |
disabled | INP is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | INP is not reported because no relevant user interaction happened. |
not_supported | INP is not supported by the browser. |
reported | INP is reported. |
inp.loading_state MUST be one of the following:
| Value | Description |
|---|---|
complete | The document and all sub-resources have finished loading. |
dom_content_loaded | The document has been parsed and deferred scripts have finished loading but other sub-resources such as async scripts, images, stylesheets, and frames are still loading. |
dom_interactive | The document has finished loading and the document has been parsed but sub-resources such as scripts, images, stylesheets, and frames are still loading. |
loading | The document is still loading. |
The Cumulative Layout Shift (CLS) attributes contain additional information about the captured web_vitals.cumulative_layout_shift.
| Attribute | Type | Description | Examples |
|---|---|---|---|
cls.status | string | experimental The status information for CLS. | not_supported |
cls.update_count | long | experimental The number of CLS updates during the entire lifespan. | 0 |
cls.loading_state | string | experimental The document's loading state recorded at the point in time when the CLS was captured. | complete |
cls.value | double | experimental The final CLS value. | 0.1279 |
cls.ui_element.xpath | string[] | experimental The xpath of the element causing the largest layout shift. Might be missing, for example, for elements that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
cls.ui_element.tag_name | string | experimental The tag name of the element causing the largest layout shift. Might be missing, for example, for elements that are inside a shadow DOM. | BUTTON |
cls.ui_element.shift_time | double | experimental The time when the largest layout shift occurred. The value is relative to start_time. The unit is milliseconds. | 2066.9 |
cls.ui_element.shift_value | double | experimental The layout shift score of the element causing the largest layout shift. | 0.11 |
cls.status MUST be one of the following:
| Value | Description |
|---|---|
disabled | CLS is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | CLS is not reported. |
not_supported | CLS is not supported by the browser. |
reported | CLS is reported. |
cls.loading_state MUST be one of the following:
| Value | Description |
|---|---|
complete | The document and all sub-resources have finished loading. |
dom_content_loaded | The document has been parsed and deferred scripts have finished loading but other sub-resources such as async scripts, images, stylesheets, and frames are still loading. |
dom_interactive | The document has finished loading and the document has been parsed but sub-resources such as scripts, images, stylesheets, and frames are still loading. |
loading | The document is still loading. |
| Attribute | Type | Description | Examples |
|---|---|---|---|
long_task.status | string | experimental The status information for long task information. | not_supported |
long_task.all.count | long | experimental The number of all long tasks observed during the entire lifespan. | 2 |
long_task.all.avg_duration | long | experimental The average duration of all observed long tasks in milliseconds. | 60 |
long_task.all.slowest_occurrences | record[] | experimental The start time and the duration of the slowest observed long tasks in milliseconds. The start time is relative to the user event's start_time. | {'duration': 60, 'start_time': 1234}; {'duration': 58, 'start_time': 2999} |
long_task.self.count | long | experimental The number of long tasks from the same browser context or frame observed during the entire lifespan. Only long tasks with long_task.name set to self are considered. | 2 |
long_task.self.avg_duration | long | experimental The average duration of the observed long tasks from the same browser context or frame in milliseconds. Only long tasks with long_task.name set to self are considered. | 60 |
long_task.self.slowest_occurrences | record[] | experimental The start time and the duration of the slowest observed long tasks from the same browser context or frame in milliseconds. The start time is relative to the user event's start_time. Only long tasks with long_task.name set to self are considered. | {'duration': 60, 'start_time': 1234}; {'duration': 58, 'start_time': 2999} |
long_task.status MUST be one of the following:
| Value | Description |
|---|---|
disabled | Long task information is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | Long task information is not reported because no long task was observed. |
not_supported | Long tasks API is not supported by the browser. |
reported | Long task information is reported. |
In case a soft navigation happens during the lifespan of an activity, the activity event also contains the navigation attributes that are defined in the navigation model.