# Binary profiling

A common challenge when managing digital employee experience (DEX) is a change implemented throughout the IT ecosystem, such as upgrades to applications or the rollout of new applications. With Binary profile, assess the risk of any adverse impact related to changes in your environment beforehand.

Binary profiling helps you answer important questions:

* *Is the specific version of the binary stable?*
* *Is the resource consumption on a similar level?*
* *Are there any unexpected problems we might see after the change?*

<figure><img src="/files/818MlzuvD3UBj6Ub6maQ" alt=""><figcaption></figcaption></figure>

## Accessing Binary profiling <a href="#binaryprofiling-accessingbinaryprofiling" id="binaryprofiling-accessingbinaryprofiling"></a>

To access the binary profiling dashboard of a specific binary or product:

1. Open **Alerts and Diagnostics** → **Binary profiling** from the navigation menu.
2. Search and select a target binary or product name.
   * You can access binaries that you do not use in your environment.
   * If a binary name or product is not widely used by other Nexthink customers, searches may not return results.

After choosing a binary/product, a new dashboard opens with cross-customer statistics for that specific binary or product.

<figure><img src="/files/vJkDbncYDsEUbrbabL0U" alt="Binary Profiling - 11707674228 (1).png" width="760"><figcaption></figcaption></figure>

{% hint style="info" %}
Search results list only binaries running the main process. However, once a binary is selected, the profiling data includes all [associated subprocesses](/platform/references/database-information-and-organization/binary-grouping.md).
{% endhint %}

## Interpreting Binary profiling <a href="#binaryprofiling-binaryprofilingtable" id="binaryprofiling-binaryprofilingtable"></a>

After selecting a specific binary or product of interest, the **Binary profiling** dashboard contains the following widgets grouped into the sections:

* Binary **Insights** (right-side panel)
* **Binary details**
* **Metric by version**
* Version comparison

### **Binary Insights**

Use the **Insights** right-side panel in the **Binary profiling** dashboard to quantify the impact of identified global binary issues and follow suggested improvements.

Current insights cover CPU and memory usage, as well as crashes and freezes.

{% hint style="info" %}
Binary-related insights are also available in the **r**ight-side panel of the **Alerts overview** dashboard for [alerts triggered by global issues](/platform/user-guide/alerts-and-diagnostics/responding-to-alerts/alerts-overview.md#use-case-1-the-monitor-detects-global-issues)—based on cloud intelligence data.
{% endhint %}

<figure><img src="/files/EjZp4SxpmFS53eub8eEc" alt=""><figcaption></figcaption></figure>

#### FAQs about binary-related insights <a href="#alertsoverview-actionmenu" id="alertsoverview-actionmenu"></a>

<details>

<summary>What is a binary configuration in the context of binary insights?</summary>

Nexthink detects abnormal binary behavior by comparing performance metrics across organizations. The system uses **binary configurations**—combinations of a binary version and the operating system version—to identify deviations from normal behavior.

Examples of binary configurations include:

* `zoom.exe` version 5.15.7.20303
* `zoom.exe` version 5.15.7.20303 on Windows 10 Enterprise 21H2 (64-bit), version 19044.3324.0.0

</details>

<details>

<summary>What are the types of binary insights?</summary>

There are two types of binary insights Nexthink provides:

* Insights on global issues: Detect global binary issues related to the specific binary configuration's worse performance compared to other configurations. This issue is visible across many customers and may be vendor-related.
* Insights by benchmarking: Compare binary performance with other organizations to identify areas with significant performance differences. These issues are related to the local customer setup, not the vendor.

{% hint style="info" %}
Binary alerts are triggered by monitors that track [binaries grouped](https://docs.nexthink.com/platform/references/database-information-and-organization/binary-grouping) with their associated subprocesses. As a result, binary-related insights include all subprocesses.
{% endhint %}

</details>

<details>

<summary>How does Nexthink generate binary insights?</summary>

Nexthink identifies and analyzes binary issues to generate binary insights:

* The system uses the organization's data from the past 7 days and anonymized statistics from other organizations using Nexthink from the past 4 weeks to compute insights.
* The system uses absolute thresholds to evaluate binary configurations individually based on the four performance metrics:
  * **Normalized CPU usage**: The CPU's capacity a binary used, calculated by looking at how much CPU time it consumed compared to how long it was running.
  * **Memory usage**: The average memory usage of the specific binary configuration for the given timeframe.
  * **Freezes**: The frequency of freezes that occur concerning the execution duration. The system displays the value in hours.
  * **Crashes**: The frequency of crashes that occur concerning the execution duration. The system displays the value in hours.
* The system computes performance metrics for binary insights using the median, while various reports across the product (such as **Binary profiling**) usually compute the average.
* Nexthink identifies the impact for your organization based on the number of devices with the specific binary configuration.
* A specific binary configuration must be observed on at least 500 devices across five different customers to be evaluated.
* During issue detection, Nexthink sets thresholds on different levels of configuration details. For example, it compares the performance of a specific binary version running on a specific operating system with the overall performance of this binary version.

</details>

### Binary details <a href="#binaryprofiling-binarydetails" id="binaryprofiling-binarydetails"></a>

From the **Binary details** section in the **Binary profiling** dashboard, you can:

* Switch to a different binary within an existing product name or to a different product within an existing binary name.
* View the status of devices used with that binary.
* View the number of companies and devices that have installed the selected binary.
* View a GenAI description of the binary, which provides a category, subcategory and additional context based on its functionality.

<figure><img src="/files/GtNhqh5ZP3mdf4tho7MR" alt=""><figcaption></figcaption></figure>

### Metric by binary version <a href="#binaryprofiling-listallversionsbychosenmetric" id="binaryprofiling-listallversionsbychosenmetric"></a>

Use the **Metric by version** widget in the **Binary profiling** dashboard to compare all binary versions that devices use.

* The default breakdown shows the **Version usage** as a percentage of devices across all companies that use that binary.
  * See other metrics such as **CPU single core usage**, **Time between crashes**, **Average memory used**, and network-related metrics such as **Network traffic, Throughput,** and **Connectivity**.
* The system displays usage at your organization as complementary information.

{% hint style="info" %}
The global data uses a 4-week timeframe, while your organization uses 7 days. Within these periods, the system may count multiple versions per device, so version usage totals may exceed 1.

If a binary version is rare, it doesn't meet the threshold for significance across all organizations and thus doesn't appear on the list. This is why version usage in your organization might total less than 1.
{% endhint %}

<figure><img src="/files/j2R2QlpumXvzBMdoBZaT" alt=""><figcaption></figcaption></figure>

### Binary version comparison <a href="#binaryprofiling-comparechosenversions" id="binaryprofiling-comparechosenversions"></a>

To sort binary versions in the **Binary profiling** dashboard and see how the latest versions compare to the versions you are currently using at your organization:

1. From the **Metric by version** widget hover over the version number to reveal the action menu.
   * Add the selected binary version to one of the columns in the **Version comparison** widget.
2. Alternatively, from the **Version comparison** widget, select a specific version from the column dropdowns.

The system relies on cross-customer metrics and data for [version comparison statistics](#assessing-version-comparison-statistics).

<details>

<summary>Data included in cross-customer metrics for version comparison</summary>

* Binaries data from tenants with **at least 500 devices**
* Binaries used by **at least 2 tenants** within a 1 week window and by **at least 5 tenants** within the 4 week window
* Binary versions with **memory or CPU usage and throughput** greater than 0 within the specific day
* Binary versions used by **at least 2 tenants**
* Binaries versions used by **at least 100 devices**

</details>

<figure><img src="/files/o7bL5wmIvR0lEPX5H4jT" alt=""><figcaption></figcaption></figure>

#### Assessing version comparison statistics

Compare up to three versions to assess the following cross-customer statistics:

<details>

<summary>Reliability</summary>

Time between crashes. This statistic indicates how often the crash occurred with respect to the execution duration. The system displays the value in days and hours. The shorter the reported period is, the more often the binary crashes, resulting in a decrease in reliability.

The reliability KPI measures reliability in different systems. The more generic name is *Mean time to failure*.

Nexthink has chosen to use this metric over crash ratio, as it also takes into account the execution time. This means that a crash that occurs on an execution that lasts 1h, is more impactful than a crash that occurs on an execution that lasts 72h. A value of 30d means that the binary crashes, on average, every 30 days of usage for a single device.

</details>

<details>

<summary>CPU</summary>

Single core usage. The system uses two statistics to report CPU usage:

* Average CPU usage on a single core. This is based on the time period when the binary is actually using the CPU.
* Typical ranges of single-core usage. This is based on the time period when the binary is actually using the CPU. Typical ranges correspond to the 25th percentile and 95th percentile of single-core usage and are formatted as a percentage.

</details>

<details>

<summary>Memory</summary>

The system uses two statistics to report memory usage:

* Average memory usage is based on the time period when the binary is actually using the memory.
* A typical range falls between the 25th percentile on the lower limit and 95th percentile on the upper limit.

</details>

<details>

<summary>Network traffic</summary>

* Only TCP for incoming traffic. Count both TCP and UDP for outgoing traffic.
* The traffic situation varies depending on the device. Some devices are more active, others less. The system doesn’t distinguish between active devices versus idle devices, which is why the average value may seem low.

</details>

<details>

<summary>Throughput</summary>

* Only TCP for incoming traffic. Count both TCP and UDP for outgoing traffic.
* Throughput can be significantly different from one time bucket to another. Therefore when averaging, the average value tends to be low.

</details>

<details>

<summary>Connectivity</summary>

* Average time of establishing the connection.
* A typical range falls between the 25th percentile on the lower limit and the 95th percentile on the upper limit.

</details>

{% hint style="info" %}
Binary profiling is part of the Diagnostics feature and requires appropriate user role [permissions](/platform/user-guide/alerts-and-diagnostics/getting-started-with-diagnostics.md#gettingstartedwithdiagnostics-permissions).

Binary profiles use cross-customer stats to create benchmark profiles. Available only to customers who share telemetry—Opt-in is set as default.
{% endhint %}

***

RELATED LINKS

* [Getting started with Diagnostics](/platform/user-guide/alerts-and-diagnostics/getting-started-with-diagnostics.md)
* [Roles](/platform/user-guide/administration/account-management/roles.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nexthink.com/platform/user-guide/alerts-and-diagnostics/getting-started-with-diagnostics/binary-profiling.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
