Skip to main content

Dashboards

Configurable Dashboards

Memfault allows you to create multiple dashboards to visualize and group your data. You can create a dashboard for each of your different use cases, or create a dashboard for each of your teams. Configurable dashboards allow you to create a specific set of metrics that you can share with your team. You can create and duplicate dashboards from the All Dashboards page located in the left navigation bar. To open it, go to Dashboards → All Dashboards.

Create multiple dashboards

After creating a dashboard, you can add metric or issue charts to it. Fill up your dashboard with charts that are relevant to your team or give your team a high-level overview of your device health. For more in-depth information on how to create charts, check out the Charts page.

Overview Dashboard

The Built-in Overview Dashboard offers a selection of charts that provide an outlook of the state of your fleet at a glance. To open it, go to Dashboards → Overview.

Active Devices and Software Versions of your fleet in the Memfault Overview Dashboard

Active Devices and Software Versions of your fleet in the Memfault Overview Dashboard.

If you alter or delete any of the charts in the Overview Dashboard, you can always restore the default version by clicking the Restore Default Dashboard button on the All Dashboards page.

Restore default overview dashboard

Layout Mode

After building your charts, you can use the Layout Mode to rearrange them in a way that makes sense to you. To enter the Layout Mode, click the Layout Mode toggle on the top-right corner of the page.

Toggle layout mode for dashboard

Inside the Layout Mode, you can drag and drop the charts to rearrange them. You can also resize the charts by dragging the right corner of the chart. To exit the Layout Mode, click the Layout Mode toggle again and the changes will be saved.

Filtering Charts

You can filter the values visible in the charts by selecting from the available filters in the top area of the page:

Define, save and reset chart filters for a dashboard

The available filters:

These filters can be saved, by clicking the Save for Everyone button. As the name suggests, this will change the filters for everyone in the Organization viewing the Dashboard.

You can change the filters and get back to the saved version by clicking Reset.

Filtering by Devices

Advanced Analytics
This feature is limited to customers with Memfault's Advanced Analytics bundle. Please reach out to our sales or customer success team to access it.

To filter the data by Devices, you can click the "All Devices" button. This will open a modal dialog with all Device filtering options. The options are (almost) the same as in the Fleet → Devices page. The modal also shows a preview of the selected Devices. Click "Apply" to apply the filter.

Once a filter is applied, the Devices button will change into a blue button saying "Filtered Devices".

If the Advanced Analytics package is not available in your plan, you can use the Devices filter, but you will not be able to save the filter for everyone. The "Current Cohort" and the "Hardware Version" options are exceptions to this rule. A device filter with only this option can always be saved for everyone, regardless of whether the Advanced Analytics package is available.

Filtering by historic Software Version

Filter a dashboard by historic Software Version

To filter the data by the historic Software Version, you can select one or more Software Versions from the right-most dropdown.

The historic Software Version is the Software Version that was running on the Device at the time the data was captured. Note this is different from the Devices filter's "Current Software Version" option, which filters Devices based on their current Software Version.

This filter is most useful in combination with the "By Cohort or Software Version" rollup option of Metric charts and Device Vitals charts, to get a per-Software Version breakdown for each chart.

Filtering by historic OS Version (Android only)

Filter a dashboard by historic OS Version

To filter the data by the historic Android OS / android-build Version, you can select one or more Software Versions from the Software Version dropdown as normal. For Android projects, the dropdown will only show the Android OS Versions. This is because all data collected from Android devices (monitoring, debugging and log data) is attributed to the android-build version and not to the app versions. Memfault has future plans to extend this coverage and attribute these data points also to the versions of the apps running at the time of the collection of the data (e.g. reboot when app version X was running).

The historic OS Version is the Android OS Version that was running on the Device at the time the data was captured. Note this is different from the Devices filter's "Current Software Version" option, which filters Devices based on their current Software Version.

The distinction between OS Version and Software Version (individual app versions) is only relevant for Issue/Trace Charts and only for Android projects. A Trace from a crashing Android app will have the app's Software Version as well as the Android OS version associated with it. Using the OS Version filter, you can filter the Issue/Trace Charts by Android OS Version, regardless of the (app) Software Versions of the aggregated Traces.

To see crashes of a certain app version, you can create an Issue Chart using the Software Version filter on the Issue Search Page.

Incompatible Filters

Some charts may not support certain filters. This is indicated by a warning on the chart. The tooltip will show which filters are incompatible with the chart:

Incompatible filters warning

Please get in touch with our support team if you need a chart to support more filters.

Comparison Mode

To compare the data from different sets of Devices, you can click the Compare button next to the filters section on the top-right area of the page to add a new colorized selection to the filters as well as the charts:

When comparing Metric and Issue Charts, bear in mind that the aggregations Count and Sum lead to absolute values that are a function of the number of Devices reporting the given value. When visualizing absolute values for different sets of Devices, the resulting chart could be misleading as the underlying number of Devices per set may vary. Also see chart normalization for more information.

Comparisons can also be saved with the Save for Everyone button, and changes can be undone via the Reset button.

Drilldown

Some charts that have a Drilldown badge on them can be clicked on sections of the chart (and sometimes also on labels) to dig into the information behind the clicked section. For example, clicking on a section in a Reboots chart will go to a filtered-down list of Devices that make up the data for that interval and reboot reason.

The drilldown feature of some Memfault Overview Dashboard charts

Clicking on this section will give you a list of devices that rebooted on November 12th due to a user reset.

The drilldown feature of some Memfault Overview Dashboard charts

Clicking on the label will give you a list of devices that rebooted on November 12th for any reason.

Chart Normalization

Chart Normalization converts absolute values such as number of incidents, sums, and counts to relative values "per 1,000 devices". This helps understanding real trends when you are comparing these values between populations of different sizes (e.g. comparing devices from large production Cohort Default against those from a smaller test Cohort Beta) or when the population size changes over time (e.g. new devices being activated continuously or changing Fleet Sampling resolutions).

Toggling Chart Normalization on/off

Toggling Chart Normalization at the top

This is a global setting for all browser tabs that you can toggle in the top right corner of the page, next to the timezone selector. Additionally for convenience, each chart has a small button Icon to Toggle Chart Normalization that allows toggling the feature globally.

Charts that support Normalization

Toggle Chart Normalization at the chart

Chart Normalization is supported on all charts that show absolute values such as number of incidents, sums, or counts. For values that are not affected by the population size (e.g. minimum, maximum, average) Chart Normalization would have no affect and the feature is unavailable.

Population and Normalized Values

The population represents the number of devices that contributed to the value. Usually, this is based on the Active Devices for the corresponding time span.

Tooltip for Normalized Charts

Normalized values are depicted with a suffix 1k in the bottom right corner next to the value (and are pronounced "per 1,000 devices"). Examples:

  • 42₁ₖ means "42 per 1,000 devices"
  • 3K₁ₖ means "3,000 per 1,000 devices".

To calculate the normalized value (NormNorm) from the absolute value (RealReal) and a given population (PopPop) use the following formula:

Norm=Real×1000PopNorm=Real\times \frac{1000}{Pop}

For the values in the screenshot above that translates to:

63M1k=2.2B×100035K63\textup{M}_{1\textup{k}}=2.2\textup{B} \times \frac{1000}{35\textup{K}}

Examples of Chart Normalization

Comparing Values Between Cohorts

info

If you're interested in seeing an all-time comparison between multiple Cohorts or multiple Software Versions, use Metric Charts by Cohort or Software Version.

Using normalized charts when comparing Cohorts

Without Chart Normalization (left): Cohort A (blue) reported more than 10x the duration spent charging compared to Cohort B (purple). But in reality, both cohorts have a growing population with Cohort A consisting of 13,000 devices and Cohort B of only 1,000 devices.

Relatively speaking, the time spent charging stayed the same at about 60M₁ₖ.

Population Changes

Using normalized charts for populations with varying size

Two weeks ago, the fleet reported 36K reboots per day steadily growing towards 130K daily reboots. It looks like the devices started to reboot more often. But in reality, the population grew from 10K devices to 36K devices during the same time span (as more people unpacked devices).

Relatively speaking, the number of reboots stayed the same at about 3.6₁ₖ.

Normalization by Active Device Days

Using normalized charts for populations with varying size and active time

While normalizing by the population size is useful for comparing absolute values over time, it does not account for the fact that some devices may have been active for longer periods of time than others. To account for this, you can normalize by the total number of active-device-days when comparing reboots over all time by population aggregation. This will give you a value that represents the number of reboots per 1,000 device days.

Device VS Data

Devices

When targeting a Device you are looking for information about its current status, and reviewing its historical data.

Device queries/filters are the tool to use when you are looking at a specific Device. In the app you will sometimes seen Device searches prefixed with "Current" (Example: "Current software version")

Data

When targeting data the search will respond with all data that meets the requirements of the search, disregarding the current status of the Device. Data queries are what you should use when you are looking for the value of a specific software version.

How does this work on your Memfault dashboard?

Device filtering is the button on the left side of the "Data collected on…" section of the dashboard. The data filters are the All Cohorts and All Software Versions sections inputs on the right side of the "Data collected on…" section of the dashboard.

Explaining what section of the dashboard filtering is associated to Devices, and to data

Imagine a situation where you have had 3 Devices, with the IDs 10,55, and 999. and three different versions of your software.

Visual example of data showing the difference between data and Devices

If you did a Device query for ID:999 it would look like this:

Visual example of data showing a Device query of ID:999

If you did a data query for SWV: 1.0.0 it would look like this:

Visual example of data showing a data query of SWV:1.0.0

So far all of the examples have been pretty straight forward, but what happens if we do a Device query for Devices on software version 7.7.7?

Visual example of data showing a Device query of SWV:7.7.7

Notice in the illustration above we are also getting information from 1.0.0, and 2.5.0? why? This is because the Device search looks for all Devices with any of their primary or secondary software versions set as 7.7.7 and gets all of heartbeats from those Devices.

Device and Data queries can be used in conjunction with each other to target specific information. Take the example of a Device Query for SWV 7.7.7 and a Data Query for SWV 1.0.0:

Visual example of data showing a Device query of SWV:7.7.7 & data query of SWV:1.0.0

Notice how this returning heartbeats from 1.0.0 for the Devices where the CURRENT version is 7.7.7.

An analogy to help

Imagine you are recording people (Device) and conversations (data). You can filter down people by attribute such as "current age", or "country of residency" or "country of birth" or "languages spoken". Some of these attributes are varying over time, some are (theoretically) stable (there are always exceptions). With a population (Device) filter you can answer questions such as "number of conversations of all German residents". Note, some of these people may have traveled or lived outside of Germany during that time period so they would have had conversations in places outside of Germany despite being a Germany resident.

Then you have the conversations (data), each conversation can be filtered down by "duration of the conversation", number of people in the conversation", "country the conversation was held at", "language the conversation was held in" etc. You may wonder "how many conversations did we measure last quarter that were held in German". This is different from "conversations held in Germany" and different from "conversations held by people in Germany". :::