<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic USQL vs DQL: different session counts, contradictory docs on active sessions, and User Action Properties not available in Grail? in Dashboarding</title>
    <link>https://community.dynatrace.com/t5/Dashboarding/USQL-vs-DQL-different-session-counts-contradictory-docs-on/m-p/301305#M5836</link>
    <description>&lt;P class=""&gt;Hi Team,&lt;/P&gt;
&lt;P class=""&gt;We are building new Grail-based dashboards (Document app) for our RUM-monitored web applications. To add business context to sessions, we configured User Action Properties that capture JavaScript variables from the page. These properties work in USQL but we cannot find them in DQL.&lt;/P&gt;
&lt;P class=""&gt;Additionally, we found significant differences between USQL and DQL session counts for the same application and time range, and contradictory documentation about what sessions USQL includes.&lt;/P&gt;
&lt;P class=""&gt;We would appreciate help understanding these differences and the recommended approach going forward.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2 id="1-contradictory-documentation-does-usql-include-active-sessions"&gt;1. Contradictory documentation: does USQL include active sessions?&lt;/H2&gt;
&lt;P class=""&gt;We found two official Dynatrace documentation pages that contradict each other:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;
&lt;P class=""&gt;&lt;STRONG&gt;"User sessions and actions USQL reference"&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;states:&lt;/P&gt;
&lt;BLOCKQUOTE dir="auto"&gt;
&lt;P class=""&gt;"Dynatrace captures user activity in real-time but requires a session to end before data is queryable via USQL."&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=""&gt;&lt;STRONG&gt;"USQL - User session query language"&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;states:&lt;/P&gt;
&lt;BLOCKQUOTE dir="auto"&gt;
&lt;P class=""&gt;"queries always work on the raw user session data that includes both active and already finished user sessions"&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class=""&gt;Which one is correct? Does USQL return:&lt;/P&gt;
&lt;OL class=""&gt;
&lt;LI&gt;Only completed/finished sessions?&lt;/LI&gt;
&lt;LI&gt;Both active and completed sessions?&lt;/LI&gt;
&lt;LI&gt;Something else (e.g., depends on query type)?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class=""&gt;This distinction is important because it directly impacts whether DQL and USQL are expected to return the same session counts.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2 id="2-dql-vs-usql-return-very-different-session-counts"&gt;2. DQL vs USQL return very different session counts&lt;/H2&gt;
&lt;P class=""&gt;For the same application and time range, we get significantly different results.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;DQL query&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in Grail):&lt;/P&gt;
&lt;PRE&gt;fetch user.events, from:now()-24h
| filter frontend.name == 'My_Application'
| filter view.name == '/my-app/some-page'
| summarize sessions = countDistinct(dt.rum.session.id)&lt;/PRE&gt;
&lt;P class=""&gt;Result:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;83 sessions&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;USQL query&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(classic):&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN class=""&gt;SELECT&lt;/SPAN&gt; &lt;SPAN class=""&gt;COUNT&lt;/SPAN&gt;(&lt;SPAN class=""&gt;DISTINCT&lt;/SPAN&gt; usersession.userSessionId)
&lt;SPAN class=""&gt;FROM&lt;/SPAN&gt; useraction
&lt;SPAN class=""&gt;WHERE&lt;/SPAN&gt; useraction.application &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;'My Application'&lt;/SPAN&gt;
  &lt;SPAN class=""&gt;AND&lt;/SPAN&gt; useraction.name &lt;SPAN class=""&gt;LIKE&lt;/SPAN&gt; &lt;SPAN class=""&gt;'%some-page%'&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P class=""&gt;Result:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;35 sessions&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=""&gt;The DQL count is 2.4x higher. We noticed that&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;contains multiple&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;characteristics.classifier&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;types per view (request,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;error,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;navigation,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user_action,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;page_summary,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;view_summary,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;visibility_change,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;other), so&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;countDistinct(dt.rum.session.id)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;may be counting sessions across ALL event types.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Questions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;Are DQL&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and USQL&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;useraction&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;expected to return the same session counts?&lt;/LI&gt;
&lt;LI&gt;If not, what is the correct way to get equivalent counts from both?&lt;/LI&gt;
&lt;LI&gt;Is there a recommended&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;characteristics.classifier&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;filter in DQL to match USQL results?&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2 id="3-user-action-properties-not-available-in-grail"&gt;3. User Action Properties not available in Grail&lt;/H2&gt;
&lt;P class=""&gt;We configured&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;User Action Properties&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that capture JavaScript variables from the page to enrich our RUM data with business context. They work correctly in USQL:&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN class=""&gt;SELECT&lt;/SPAN&gt; useraction.stringProperties.myCustomProperty, useraction.name
&lt;SPAN class=""&gt;FROM&lt;/SPAN&gt; useraction
&lt;SPAN class=""&gt;WHERE&lt;/SPAN&gt; useraction.application &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;'My Application'&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P class=""&gt;However, we cannot find these properties anywhere in Grail DQL. We tried:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;event_properties.myCustomProperty&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;→&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;undefined&lt;/LI&gt;
&lt;LI&gt;event_properties.__myCustomProperty__&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;→&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;undefined&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class=""&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;data object does not seem to expose User Action Properties or Session Properties.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Questions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;Are User Action Properties available in Grail? If yes, what is the correct field path?&lt;/LI&gt;
&lt;LI&gt;If not yet available, is there a roadmap for this?&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2 id="4-recommended-approach-for-user-action-data-in-new-dashboards"&gt;4. Recommended approach for User Action data in new dashboards&lt;/H2&gt;
&lt;P class=""&gt;Currently, the only way we found to use User Action data (action names with naming rules, properties) in new Grail-based dashboards is by importing the classic SDK in code tiles:&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN class=""&gt;import&lt;/SPAN&gt; { rumUserSessionsClient } &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;"@dynatrace-sdk/client-classic-environment-v1"&lt;/SPAN&gt;;
&lt;SPAN class=""&gt;const&lt;/SPAN&gt; response = &lt;SPAN class=""&gt;await&lt;/SPAN&gt; rumUserSessionsClient.&lt;SPAN class=""&gt;getUsqlResultAsTable&lt;/SPAN&gt;({ &lt;SPAN class=""&gt;query&lt;/SPAN&gt;: usqlQuery });&lt;/PRE&gt;
&lt;P class=""&gt;This works, but it mixes classic and Grail data models and we are unsure about long-term support.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Questions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;Is there a native DQL way to query User Action data (action names, properties) without using the classic USQL SDK import?&lt;/LI&gt;
&lt;LI&gt;What is the recommended approach for building new dashboards that need User Action Property data?&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Environment:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Dynatrace SaaS, Grail active, web applications monitored with RUM (React SPA + JSF legacy).&lt;/P&gt;
&lt;P class=""&gt;Thank you in advance for any guidance.&lt;/P&gt;</description>
    <pubDate>Tue, 30 Jun 2026 12:40:58 GMT</pubDate>
    <dc:creator>v_mayordomo</dc:creator>
    <dc:date>2026-06-30T12:40:58Z</dc:date>
    <item>
      <title>USQL vs DQL: different session counts, contradictory docs on active sessions, and User Action Properties not available in Grail?</title>
      <link>https://community.dynatrace.com/t5/Dashboarding/USQL-vs-DQL-different-session-counts-contradictory-docs-on/m-p/301305#M5836</link>
      <description>&lt;P class=""&gt;Hi Team,&lt;/P&gt;
&lt;P class=""&gt;We are building new Grail-based dashboards (Document app) for our RUM-monitored web applications. To add business context to sessions, we configured User Action Properties that capture JavaScript variables from the page. These properties work in USQL but we cannot find them in DQL.&lt;/P&gt;
&lt;P class=""&gt;Additionally, we found significant differences between USQL and DQL session counts for the same application and time range, and contradictory documentation about what sessions USQL includes.&lt;/P&gt;
&lt;P class=""&gt;We would appreciate help understanding these differences and the recommended approach going forward.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2 id="1-contradictory-documentation-does-usql-include-active-sessions"&gt;1. Contradictory documentation: does USQL include active sessions?&lt;/H2&gt;
&lt;P class=""&gt;We found two official Dynatrace documentation pages that contradict each other:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;
&lt;P class=""&gt;&lt;STRONG&gt;"User sessions and actions USQL reference"&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;states:&lt;/P&gt;
&lt;BLOCKQUOTE dir="auto"&gt;
&lt;P class=""&gt;"Dynatrace captures user activity in real-time but requires a session to end before data is queryable via USQL."&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P class=""&gt;&lt;STRONG&gt;"USQL - User session query language"&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;states:&lt;/P&gt;
&lt;BLOCKQUOTE dir="auto"&gt;
&lt;P class=""&gt;"queries always work on the raw user session data that includes both active and already finished user sessions"&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class=""&gt;Which one is correct? Does USQL return:&lt;/P&gt;
&lt;OL class=""&gt;
&lt;LI&gt;Only completed/finished sessions?&lt;/LI&gt;
&lt;LI&gt;Both active and completed sessions?&lt;/LI&gt;
&lt;LI&gt;Something else (e.g., depends on query type)?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class=""&gt;This distinction is important because it directly impacts whether DQL and USQL are expected to return the same session counts.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2 id="2-dql-vs-usql-return-very-different-session-counts"&gt;2. DQL vs USQL return very different session counts&lt;/H2&gt;
&lt;P class=""&gt;For the same application and time range, we get significantly different results.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;DQL query&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in Grail):&lt;/P&gt;
&lt;PRE&gt;fetch user.events, from:now()-24h
| filter frontend.name == 'My_Application'
| filter view.name == '/my-app/some-page'
| summarize sessions = countDistinct(dt.rum.session.id)&lt;/PRE&gt;
&lt;P class=""&gt;Result:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;83 sessions&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;USQL query&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(classic):&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN class=""&gt;SELECT&lt;/SPAN&gt; &lt;SPAN class=""&gt;COUNT&lt;/SPAN&gt;(&lt;SPAN class=""&gt;DISTINCT&lt;/SPAN&gt; usersession.userSessionId)
&lt;SPAN class=""&gt;FROM&lt;/SPAN&gt; useraction
&lt;SPAN class=""&gt;WHERE&lt;/SPAN&gt; useraction.application &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;'My Application'&lt;/SPAN&gt;
  &lt;SPAN class=""&gt;AND&lt;/SPAN&gt; useraction.name &lt;SPAN class=""&gt;LIKE&lt;/SPAN&gt; &lt;SPAN class=""&gt;'%some-page%'&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P class=""&gt;Result:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;35 sessions&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=""&gt;The DQL count is 2.4x higher. We noticed that&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;contains multiple&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;characteristics.classifier&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;types per view (request,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;error,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;navigation,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user_action,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;page_summary,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;view_summary,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;visibility_change,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;other), so&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;countDistinct(dt.rum.session.id)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;may be counting sessions across ALL event types.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Questions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;Are DQL&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and USQL&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;useraction&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;expected to return the same session counts?&lt;/LI&gt;
&lt;LI&gt;If not, what is the correct way to get equivalent counts from both?&lt;/LI&gt;
&lt;LI&gt;Is there a recommended&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;characteristics.classifier&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;filter in DQL to match USQL results?&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2 id="3-user-action-properties-not-available-in-grail"&gt;3. User Action Properties not available in Grail&lt;/H2&gt;
&lt;P class=""&gt;We configured&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;User Action Properties&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that capture JavaScript variables from the page to enrich our RUM data with business context. They work correctly in USQL:&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN class=""&gt;SELECT&lt;/SPAN&gt; useraction.stringProperties.myCustomProperty, useraction.name
&lt;SPAN class=""&gt;FROM&lt;/SPAN&gt; useraction
&lt;SPAN class=""&gt;WHERE&lt;/SPAN&gt; useraction.application &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;'My Application'&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P class=""&gt;However, we cannot find these properties anywhere in Grail DQL. We tried:&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;event_properties.myCustomProperty&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;→&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;undefined&lt;/LI&gt;
&lt;LI&gt;event_properties.__myCustomProperty__&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;→&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;undefined&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class=""&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user.events&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;data object does not seem to expose User Action Properties or Session Properties.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Questions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;Are User Action Properties available in Grail? If yes, what is the correct field path?&lt;/LI&gt;
&lt;LI&gt;If not yet available, is there a roadmap for this?&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2 id="4-recommended-approach-for-user-action-data-in-new-dashboards"&gt;4. Recommended approach for User Action data in new dashboards&lt;/H2&gt;
&lt;P class=""&gt;Currently, the only way we found to use User Action data (action names with naming rules, properties) in new Grail-based dashboards is by importing the classic SDK in code tiles:&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN class=""&gt;import&lt;/SPAN&gt; { rumUserSessionsClient } &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;"@dynatrace-sdk/client-classic-environment-v1"&lt;/SPAN&gt;;
&lt;SPAN class=""&gt;const&lt;/SPAN&gt; response = &lt;SPAN class=""&gt;await&lt;/SPAN&gt; rumUserSessionsClient.&lt;SPAN class=""&gt;getUsqlResultAsTable&lt;/SPAN&gt;({ &lt;SPAN class=""&gt;query&lt;/SPAN&gt;: usqlQuery });&lt;/PRE&gt;
&lt;P class=""&gt;This works, but it mixes classic and Grail data models and we are unsure about long-term support.&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Questions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class=""&gt;
&lt;LI&gt;Is there a native DQL way to query User Action data (action names, properties) without using the classic USQL SDK import?&lt;/LI&gt;
&lt;LI&gt;What is the recommended approach for building new dashboards that need User Action Property data?&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;P class=""&gt;&lt;STRONG&gt;Environment:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Dynatrace SaaS, Grail active, web applications monitored with RUM (React SPA + JSF legacy).&lt;/P&gt;
&lt;P class=""&gt;Thank you in advance for any guidance.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jun 2026 12:40:58 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dashboarding/USQL-vs-DQL-different-session-counts-contradictory-docs-on/m-p/301305#M5836</guid>
      <dc:creator>v_mayordomo</dc:creator>
      <dc:date>2026-06-30T12:40:58Z</dc:date>
    </item>
    <item>
      <title>Re: USQL vs DQL: different session counts, contradictory docs on active sessions, and User Action Properties not available in Grai</title>
      <link>https://community.dynatrace.com/t5/Dashboarding/USQL-vs-DQL-different-session-counts-contradictory-docs-on/m-p/301316#M5838</link>
      <description>&lt;P class=""&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I would not expect these two queries to return the same number out of the box.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;In Grail, user.events is an event-based RUM data model. It contains many event types for the same journey/session, for example navigation, request, error, page/view summary, visibility changes, user actions, and property events. Therefore:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;fetch user.events
| filter frontend.name == "My_Application"
| filter view.name == "/my-app/some-page"
| summarize sessions = countDistinct(dt.rum.session.id)&lt;/LI-CODE&gt;&lt;P&gt;counts all sessions that produced any matching user event for that view, not only sessions with a classic useraction row.&lt;/P&gt;&lt;P&gt;To get closer to the USQL FROM useraction query, I would first inspect the classifiers:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;fetch user.events, from: now()-24h | filter frontend.name == "My_Application" | filter contains(view.name, "/my-app/some-page") | summarize events = count(), sessions = countDistinct(dt.rum.session.id), by: { characteristics.classifier } | sort events desc&lt;/LI-CODE&gt;&lt;P&gt;&lt;SPAN&gt;Then restrict the DQL query to the user-action-like events only, for example:&lt;/SPAN&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;fetch user.events, from: now()-24h 
| filter frontend.name == "My_Application" 
| filter contains(view.name, "/my-app/some-page") 
| filter characteristics.classifier == "user_action" 
| summarize sessions = countDistinct(dt.rum.session.id)&lt;/LI-CODE&gt;&lt;P&gt;Depending on how the application is instrumented, especially for SPA navigation, you may also need to compare view.name, view.detected_name, page.detected_name, and user_action.name rather than assuming that USQL useraction.name LIKE ... maps directly to view.name.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;My recommendation would be:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;user.events in Grail contains multiple event types (request, navigation, user_action, view_summary, page_summary, error, etc.), so a simple countDistinct(dt.rum.session.id) is not equivalent to FROM useraction in USQL&lt;/LI&gt;&lt;LI&gt;To compare the two, first inspect the distribution of characteristics.classifier, then restrict the query to user_action events.&lt;/LI&gt;&lt;LI&gt;For User Action Properties, check events where characteristics.has_event_properties == true (or has_session_properties == true), as custom properties are represented through dedicated property events.&lt;/LI&gt;&lt;LI&gt;If the properties are still missing, it may indicate that the configured User Action Properties are currently available only in the classic RUM/USQL data model and are not yet exposed in Grail for that environment.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jun 2026 12:36:37 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dashboarding/USQL-vs-DQL-different-session-counts-contradictory-docs-on/m-p/301316#M5838</guid>
      <dc:creator>t_pawlak</dc:creator>
      <dc:date>2026-06-29T12:36:37Z</dc:date>
    </item>
    <item>
      <title>Re: USQL vs DQL: different session counts, contradictory docs on active sessions, and User Action Properties not available in Grai</title>
      <link>https://community.dynatrace.com/t5/Dashboarding/USQL-vs-DQL-different-session-counts-contradictory-docs-on/m-p/301323#M5839</link>
      <description>&lt;P&gt;Hi, thank you for the detailed response.&lt;/P&gt;&lt;P&gt;We followed your suggestion and checked for property events in our environment. Unfortunately, none exist:&lt;/P&gt;&lt;P&gt;fetch user.events, from:now()-24h&lt;BR /&gt;| filter frontend.name == "My_Application"&lt;BR /&gt;| filter contains(view.name, "/my-app")&lt;BR /&gt;| summarize events = count(), sessions = countDistinct(dt.rum.session.id),&lt;BR /&gt;by: {characteristics.classifier}&lt;BR /&gt;| sort events desc&lt;/P&gt;&lt;P&gt;This returns 8 classifiers (request, error, other, user_action, view_summary, navigation, visibility_change, page_summary) but no property classifier.&lt;/P&gt;&lt;P&gt;We also tested directly:&lt;BR /&gt;- characteristics.has_event_properties == true → 0 results&lt;BR /&gt;- characteristics.has_session_properties == true → 0 results&lt;BR /&gt;- characteristics.classifier == "property" → 0 results&lt;/P&gt;&lt;P&gt;Additionally, when inspecting individual user_action events, the characteristics.has_event_properties field is not present at all — not even as false. It simply doesn't exist in the event schema for our&lt;BR /&gt;tenant.&lt;/P&gt;&lt;P&gt;The User Action Property (a JavaScript variable configured as a string property) is correctly captured and queryable in USQL (useraction.stringProperties.&amp;lt;key&amp;gt;) and visible in the UI session filter&lt;BR /&gt;(properties.&amp;lt;key&amp;gt;), so the classic data model works fine.&lt;/P&gt;&lt;P&gt;It seems that property events are not being ingested into Grail for our environment. We are opening a support case to investigate further.&lt;/P&gt;&lt;P&gt;Thanks again for your help — your suggestions were very useful to narrow down the issue.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Jun 2026 14:22:21 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dashboarding/USQL-vs-DQL-different-session-counts-contradictory-docs-on/m-p/301323#M5839</guid>
      <dc:creator>v_mayordomo</dc:creator>
      <dc:date>2026-06-29T14:22:21Z</dc:date>
    </item>
  </channel>
</rss>

