Charts and Cards
Memfault charts allow you to proactively monitor any smart device, anywhere. Monitor your releases and view data-driven device and fleet-level metrics, like battery health, connectivity, stability and more in real-time dashboards.
Creating & Editing Charts
To create a new chart, navigate to the dashboard you want to add the chart to. Check out Dashboards to learn more about creating and managing dashboards.
Click the Create Chart
menu in the top-right corner of the page and select the
type of chart you want to create.
Existing charts can be edited by clicking the blue pencil icon in header of the card containing the chart.
Copying Charts & Cards
You can copy a card from one dashboard to another. To do so, open the editing modal for the card you want to copy by clicking the blue pencil icon in the header of the card. Next, click "Copy" in the top right corner of the modal. Select the dashboard you want to copy the card to and click "Copy".
Metric Charts
Memfault indexes and aggregates the metrics collected by your devices to provide you not only with insights of how individual devices are performing, but also the emergent behavior of your entire fleet. These metric aggregations are available in all versions of the Memfault SDK.
You can add charts to visualize these aggregated, fleet-wide metrics by navigating to the sidebar and selecting Dashboards → Metrics.
Creating a new chart is as simple as clicking Create Chart
=> Generic
=>
Metric Chart
from the dropdown menu selecting your metric of interest, and
choosing the desired aggregation type. Also see video below. Note that only
metrics configured as Timeseries can be
used in Metric Charts.
Metric chart configuration options are described in detail more below:
Y-Axis
The name suggests it already: the Y-Axis selects what to show on the vertical axis of the chart. Theses options are available:
We'll go into more detail on each of these options below.
Aggregation of Metrics
The list of metrics available in your project is automatically created from the metrics collected by your devices. For that reason, at least one device must upload data for a given metric before a chart for that metric can be created.
Aggregation | Description | Rollup Availability | |
---|---|---|---|
Over-Time | By Cohort or Software Version | ||
Min | The lowest reading received. | ✅ | ❌ |
Mean | Arithmetic mean of all readings. | ✅ | ❌ |
Max | The highest reading received. | ✅ | ❌ |
Min/Mean/Max | All of the above combined into a single chart. | ✅ | ✅ |
Percentiles | Distribution of values (p01, p05, p50/median, p95 and p99). | ✅ | ✅ |
Count | Number of times a value was received. | ✅ | ❌ |
Sum | Sum of all readings. | ✅ | ❌ |
The values to be aggregated can be filtered using the "Segments" options.
For more information about adding metrics to your devices:
- Bare Metal/RTOS: see the Metrics Guide
- Android: update to the 3.0+ version of the Android SDK
- Linux: see the Metrics Guide
Report Count
The "Report Count" option will show a count of reports that have been received. The reports to include can be configured using the "Segments" options.
Device Count
The "Device Count" option will show a count of unique devices for which matching reports have been received. The reports to include can be configured using the "Segments" options.
Rollup
The "Rollup" option selects whether the data should be aggregated over time or not:
Purpose | Description | |
---|---|---|
Over Time | This rollup is useful to show trends over time. For example: uptake of a new product feature during a marketing campaign, or showing stability over time. | The data of each segment is aggregated over time. The chart's X-axis is used to represent time. The time range and granularity of buckets can be selected from the chart's card. |
By Cohort or Software Version | This rollup is useful to compare data of all-time from different segments or populations of data against each other. For example: comparing the stability of different software versions, or comparing the battery life between production and beta cohorts. | All-time data (after applying filters) is aggregated for each segment and plotted in a way that makes comparison between segments easy. Please note that this particular type of chart only supports the "Min/Mean/Max", and "Percentiles" aggregation methods. |
Below are a few examples of metric charts "Over-Time" (left) and "By Software Version/Cohort" (right). The top row is showing the "Min/Mean/Max" aggregation mode and the bottom row is showing the "Percentiles" aggregation mode:

Segments
Using segments, you can create charts that plot the same metric for different subsets of the data. For example, based on the type of activity that the device is performing. The example chart below has 2 segments: "Running" and "Swimming".
A segment defines a subset of the data to be included in the chart. Each segment selects data from one or more Metric Report types. Furthermore, each segment can specify additional filtering conditions, using other timeseries metrics in the same report to filter the data by.

Both segments source from voice-command
Metric Reports. A workout_kind
timeseries metric is used to record the kind of workout being performed. A
condition on that metric is added to each segment to filter the data:

Creating Segments
All Metric charts are created with one segment by default. To add more segments, click the "Add Segment" button. You can also use the "Duplicate this segment" button to easily derive one segment from an existing one. Up to 4 segments can be created. If you need more, we recommend creating separate charts.
We recommend giving each segment a short but descriptive name to make it easier to understand the chart.
Selecting Reports
Use the "Report Type" drop down to select which reports you would like to include in the segment. You can add more using the "Add Report Type" button. It is possible to use session reports, but also Heartbeat reports, although it usually does not make sense semantically to mix them. Read more information about heartbeats, sessions and reports, here.
Adding Conditions
Optionally, a segment's data can be further filtered by adding conditions on other metrics. Limitations:
- Only "Over-Time" charts support conditions. "By Cohort or Software Version" charts do not support this.
- Only metrics configured as Timeseries can be used in conditions.
- Multiple conditions are AND'ed together.
- Up to 3 metrics can be used in a single segment's conditions. This includes
the metric being charted. For example, a chart that aggregates the
"Min/Mean/Max" of metric
step_count
. Aside ofstep_count
, 2 other metrics may be used in conditions. That said, it's possible to add any number of conditions with those 3 metrics.