Skip to main content

Fleet Sampling

As your fleet grows, it becomes more costly to send, process and store the data from all devices in growing fleets. With the Fleet Sampling feature, Memfault helps manage the costs for your device data bandwidth by only collecting diagnostics and performance data from a smaller, yet statistically significant, subset of a fleet that you can control at any time.


Thanks to Chart Normalization, all insights to understand issues occurring across your fleet will still be at your disposal even when a only smaller number of devices are reporting from the field. For more information, please refer to the Fleet Sampling documentation.

Best Practices: Low-Bandwidth Devices

Memfault was built from the ground up to handle devices with limited bandwidth, intermittent connectivity, and minimal processing power capabilities. Following the guidelines and code examples in the recently published Using Memfault with Low-Bandwidth Devices article, IoT operators can save on network costs and lower the power consumption of their devices.


Debug Devices with Custom Data Recordings

Memfault’s new Custom Data Recordings (CDRs) allow devices to send any custom data for specific events or periods at arbitrary times. Memfault’s Device Timeline shows these recordings grouped by their user-defined reason in relation to the existing debug information, such as metrics, logs, traces, or reboots to provide even more detail about the state a device was in at a given moment.


The underlying data of CDRs can be of any format and is accessible for download for further analysis outside of Memfault. This allows devices to send vendor-specific or proprietary debug data from their sub-components. Via the Memfault CLI, one can also augment the device timeline with data captured outside of the device (e.g. reports for hardware-in-the-loop tests).

Best Practices: Tracking Battery Life

Two of the most important IoT reliability metrics are the expected and the actual battery life for devices. Understanding and predicting trends for battery life and detecting regressions with thousands to millions of devices in the field is a challenging problem that Memfault recently published advice and product improvements for.


The combination of metric charts, device timeline, and the recently added documentation with code samples help with understanding battery life of MCU, Linux or Android devices.

Linux SDK 1.0 with Coredump support

Memfault's Linux SDK reached version 1.0 when introducing support for Coredumps: In the event of a crash of any process on the system, memfaultd produces a memory dump that will be uploaded to Memfault for further processing to allow for detailed debugging across the fleet. Together with the already existing support for OTA, metrics, and reboot reasons, Memfault now offers all its essential features on Linux devices!

Linux SDK 1.0.0.png

The documentation of Memfault’s Linux SDK was extended even further to explain the integration steps as well as the growing number of configuration options.

Linux SDK 0.3.0 – Metrics and Diagnostics Data

Memfault's Linux support reaches another milestone: Devices can now report metrics and diagnostic data to measure the success of software updates (OTA) and to proactively diagnose anomalies before users even experience their effect. The Memfault Linux SDK 0.3.0 ships with a configurable set of plugins for collectd to obtain standard KPIs at the operating system level (e.g. available storage or RAM, CPU utilization, or network status and traffic). You can also use the SDK to collect product-specific custom metrics via statsd.

Linux SDK 0.3.0 features

When sent to the cloud, all telemetry data is being processed and distilled to fleet-wide time-series metrics (e.g. "was there an uptick in avg. CPU usage since the last version?"), device attributes (e.g. “which devices at site B ran for more than 6 months already without reboot?"), and detailed per-device insights via the Timeline UI (e.g. “are there any anomalies on the network traffic that correlate with crashes reported for this device?").

Combined with Memfault's alerting feature, operating your fleet of Linux devices is now easier than ever!

Improved Device Timeline

Memfault’s Device Timeline provides a view for each device’s metrics, reboots and crashes to make debugging easier. With the recent performance improvements, Device Timeline now renders considerably more time-series metrics simultaneously and expandable “Panels” group relevant metrics together for ease of use (see Value History, Foreground, Longwakes below).

Device Timeline Panels

Linux SDK 0.2.0

Memfault extends its features on embedded Linux toward basic fleet operations. You can now measure basic fleet-wide health metrics by tracking reboots and their cause at scale. Similar to Memfault’s MCU and Android SDKs, there is now a dedicated Memfault Linux SDK 0.2.0 with source code including examples. The SDK repository comes with Docker images including QEMU support to simplify the first steps.

Documentation, Repository, and Project Wizard for Linux

As part of the SDK, a new on-device agent memfaultd orchestrates the configuration of related components such as SWUpdate for OTA. It will act as a minimal yet central component in future releases for features such as metrics and crash reporting.

There is also a new Getting Started section that guides users through the setup with Yocto, and the reference documentation covers more details.

Normalized Charts

Memfault’s charts can now be normalized to convert absolute values such as “number of incidents”, sums, and counts to corresponding relative values “per 1,000 devices". This helps in understanding real trends when you are looking at values over time or when comparing values between populations of different sizes.


This feature also works with custom metric charts for any custom metric. It is particularly helpful to measure the success of an ongoing OTA update by comparing devices from large production cohort “Default” against those from a smaller test cohort “Beta”. Chart normalization is also generally useful when the population size changes over time (e.g. new devices being activated continuously).

Notification Targets

Memfault improved its notification system and how notifications will be sent on Alerts. For each individual Alert, you can now decide which team members, external systems, or groups thereof should receive an email. All members of @team-maintenance may want to receive notifications about devices with an abnormal battery discharge rate while a spike in connectivity issues on the “Beta” cohort may only be relevant in the #beta-release Slack channel.


At Settings → Notifications, there are extensive options to customize the @userhandle for any team member to connect Memfault to dedicated Slack channels or any other external system (e.g. PagerDuty, Opsgenie) by registering external email addresses. Any combination of these User Handles and External Targets can be added to a Notification Group and used to control how to notify per Alert.

Memfault OTA for Embedded Linux

Memfault’s over-the-air update service is now available on Embedded Linux with SWUpdate via the hawkBit DDI. This makes all Memfault OTA management and hosting features such as cohorts, staged rollouts, full vs. delta releases, and a scalable global CDN available to Linux devices that utilize one of the most popular update agents. Memfault also added support for forced (non-interactive) updates – invaluable for delivering security updates to embedded IoT devices.

Memfault ❤️ Linux.png

To communicate with SWUpdate clients, Memfault acts as a hawkBit update server. It implements the Direct Device Integration API enabling other on-device agents such as RAUC (via hawkBit client) to deliver and install software remotely as well.

More Documentation

Memfault’s documentation at received a new landing page and various other additions.

Updated Docs

The updated landing page outlines content across MCU, Android, and Linux. It also links to additional learning resources such as video content and source code examples. Other improvements include the new page Introduction to Memfault, more information on Memfault’s Linux Support, and many smaller new sections such as a comparison between Android Bug Reports and Caliper.

Improvements on Charts

Memfault surfaces relevant insights about your fleet via charts. They receive updates regularly to be more comprehensive and useful.

Improved Charts

The dashboard chart “Active Devices” was redesigned to be a bar chart to communicate its underlying data more clearly: “Devices that communicated with Memfault in a given time period”. Tooltips on several charts better highlight the numerical values their lines and bars represent. The chart “Reboot Reasons” also allows for drill-down on any day by clicking on the respective labels.

Memfault organizes your data around the concept of devices. An investigative search for matching devices is a key activity when analyzing data around device attributes and time-series metrics. Memfault’s device search also acts as a hub when clicking on details on charts, OTA management, or as part of crash analysis. It allows you to precisely describe a population of devices before performing follow-up tasks such as assigning them to a specific Cohort or describing a new Device Set.


We made significant improvements to the device search! Most fields now accept multiple values (”OR”) and can be repeated where applicable (”AND”). You can search for device attributes and time-series data at the same time and it is even possible to search for historical data across different time ranges at once.


When combined, you can now conveniently describe (and store as Device Set) populations such as

  • “Devices on v1.2 that were charged >90% earlier this week but rebooted due to low power yesterday” – to validate presumed bug fixes via operational data, or
  • “Devices with attributes was_reworked: true, shipment_state: "back to us" and assignee: "John"” – to use custom device attributes for inventory management