DEX score NQL examples
Last updated
Last updated
Use Nexthink Query Language (NQL) to access DEX score data and other relevant information.
The dex.scores
and dex.application_scores
tables contain score data. The system computes each score once a day at 00:00 UTC for a combination of user
and device
objects, and device
dimensions active over the last 7 days. For example, employee A who used device 1 and device 2 over the last 7 days will have two sets of score data for the current day.
DEX score V3 primarily focuses on user-centric experience management rather than a device-centric approach, which differs from previous versions. Even though starting an NQL query with the device
table is technically possible, you may witness deviations between the device's metric value and its score. Refer to the FAQ section of the (available to Nexthink Community users) documentation for more information.
The dex.scores
table contains score data for the endpoint and collaboration scores and their subscores. The system structures a set of scores as follows:
Each node of the DEX score has a score value with the syntax [node name]_value
. For example, if you want the score for logon speed, you would enter score.endpoint.logon_speed_value
.
In addition, each node has a score impact value with the syntax [node name]_score_impact
. This value represents the estimated decrease in the Technology component of the DEX score due to issues monitored by this node.
The dex.application_scores
table contains score data for the application scores and their subscores. This table is linked to users
, devices
and application
objects. The system structures a set of scores as follows:
node.type
represents the type of node of the application score structure:
page_loads
transactions
web_reliability
crashes
freezes
application
node.value
indicates the score of a node of the application score structure. It must be used with the field application_score.node.type
to specify the target node score.
node.score_impact
indicates the estimated decrease in the Technology component of the DEX score due to issues monitored by this node. It must be used with the field application_score.node.type
to specify the target score impact.
Both dex.scores
and dex.application_scores
include a score_impact
value for all nodes, i.e., [node name]_score_impact
. This value estimates the number of points removed from the DEX score due to user-level issues for the node. For example, logon_speed_score_impact
contains the estimated impact on the DEX score for a user due to slow logons.
To compute the impact on DEX score of a node for a population, use the following formula:
A user
or device
object without any data over the last 7 days will have no score.
The score computed today at 00:00 UTC is associated with today's date, not yesterday's date.
This means that querying the dex.scores
data with during past 7d
is not correct, as this returns seven days of data points, and each data point is already a rolling window of 7 days. The data should be queried for only 1 day, for example
dex.scores during past 24h
dex.scores on 2023-10-30
Example:
The daily computation of the scores starts at 00:00 UTC, but may take several hours to complete. Once the computation is finished, Nexthink tags the outcome with 04:00 UTC.
To compare raw metric tables, for example, session.logins
, web.page_views
with corresponding scores, the timeframe must mimic the one used in the DEX score computation:
00:00 UTC today - 7d to 00:00 UTC today
Ensure that your timeframe matches the timezone of your browser.
Example:
Your browser timezone is CET (i.e., UTC + 1).
You want to compare the raw metrics with the DEX score of 2024-01-17.
You are interested in checking the page loads trends of Outlook.
The DEX scores take into account hourly samples of data. This data is either an average of a field or a sum of events over the past hour, depending on the metric type. To understand if a metric has breached the configured score thresholds, use hourly aggregation, not 5-minute or 15-minute time buckets.
Example:
Computing the DEX scores of a population requires first computing the score of each employee and then averaging them across the entire population.
First, aggregate the DEX score per user
or device
and then for the population.
In this case, you should not start an NQL query with dex.scores during past 24h
, but with the users
or the devices
table to compute individual scores. Use the summarize
statement to compute the DEX score for the population.
Example:
The system computes a score for a combination of user
, device
, and device dimensions such as geolocation, or location type. The rationale behind this approach is to enable advanced filtering on each employee context to extract insights.
This means employees who have changed their location during the last 7 days will have several scores for different geolocation or location types. Additionally, a device used by multiple employees will also have several scores.
To compare the raw metric with its corresponding score, you must:
Understand the different dimensions associated with the score data.
Apply the same dimensions when looking at the raw data.
Example:
Some metrics used in the DEX score computation do not have any user
association in the Nexthink data model, for example:
device_performance.events
device_performance.boots
device_performance.hard_resets
device_performance.system_crashes
connectivity.events
The DEX score pipeline keeps a list of recent users on a device so that these events can be associated with these users’ DEX scores. If no recent users can be found on the device, these events will not be factored into the device’s DEX scores.
The priority of the DEX score V3 data is to report on the user experience and highlight when it can be improved to deliver a proper Digital Employee Experience management solution. This implies that Nexthink accurately captures the user experience, but the data is approximated when projected on the device.
Suppose an employee is working on multiple devices simultaneously. In this case, Nexthink collects all the data received on the user
object for the hourly time bucket, but we only associate one context, for example, device
, geo-location
, location type
to the bucket. This means that the system associates the last context of the hour with the time bucket, extracting the last data message received for the hour.
Nexthink flags score events with a warning to inform users that the multi-device situation resulted in an approximation when associating a device with a score event. The field score_computation_approximation
indicates whether an approximation related to the device or its context influenced the computation of the score. The possible values are:
unknown: No information about any score computation approximation associated with the score event.
none: No computation approximation was used in the computation of the score.
multi_device: An approximation regarding the device associated with the score was made. This indicates that the score cannot be associated beyond the user.
multi_context: An approximation regarding the device context associated with the score was made. This indicates that the score cannot be associated beyond the user and device.
Examples:
Refer to the documentation (available for Nexthink Community users) for the full list of nodes and their respective NQL names.