Skip to main content

August 2023

New Data Aggregation for Metric Charts: Percentiles

Metric Charts now have a new data aggregation available for both chart rollup options (by Cohort or Software version, and Over Time). This aggregation is called "Percentiles" and will display the data set broken into the 1st, 5th, 50th, 95th and 99th percentiles. Displaying the metric data as percentiles makes it easier to understand the prevalence of behaviors (tracked as metrics) across your fleet.

As an example, if you are seeing significant spikes in battery discharge rates for a specific software version you can use percentile aggregation to get a clearer picture of the scale of this problem. Are these undesirable metric readings I am receiving contained to a small set of samples or is this a wide scale problem? Conversely, this aggregation should also make it easier to understand what "normal" actually looks like across your fleet.

This new aggregation is the default view when creating any new metric chart. You can read more about this new data aggregation in our Metric Charts documentation.

Best Practices Guide for Android Battery Debugging

Our Developer Experience team have released a new guide designed to help users get the most from Memfault when identifying and debugging battery issue on Android devices. This guide provides detail on:

  • What data the Android SDK can collect
  • Using metric charts for tracking battery health/performance
  • Setting fleet and device alerts
  • Identifying problem devices
  • Debugging individual devices using Device Timeline

The guide takes into account the recently released set of updates to our Android SDK with version 4.8.0 which included the addition of new battery usage metrics such as per app battery usage.

You can read the full guide in the Memfault Best Practices for Android Battery Debugging.

July 2023

Bulk Issue Merging improvements

Users can now merge multiple issues together with a few clicks, eliminating the previously repetitive process of merging each issue independently. This addresses the scenarios where Memfault's de-duplication algorithm may not group related issues due to unaccounted for variables within the Issue Signature making each appear as an independent issue.

Users can now use all of the filtering capabilities within the issues page to narrow down to a specific issue set and either bulk select or individually select a set of issues they believe should be merged into one issue. You can read more about issues and bulk merging in the Issue Management documentation.

Android SDK 4.8.0: More OTA control, more metrics and more issue tracking

The most recent Android SDK 4.8.0 introduces a number of new features for Android customers. Android customers now get powerful additional controls for the OTA update process, more granular battery usage metrics and tracking of SELinux violations.

The OTA improvements allow users to control download and install behavior independently and dependent on additional payload specific metadata and/or current device condition. For example, you can ensure that devices will prioritize updates a user has tagged as "critical" for download and will only install an update if certain battery conditions are met. You can read more about the specific configurations in Memfault's documentation on configuring download and install for OTA updates.

The changes to battery metrics allow users to view the battery usage per app, distinguish usage in screen-on or screen-off scenarios, and see battery capacity, all on the device timeline view. This gives much more granular visibility into battery performance and further enhance users' ability to root cause issues. You can read more about this in Memfault's Android Battery Summary Metrics documentation.

Finally, we added support for tracking SELinux violations via Memfault. Tracking these issues will now be possible with all of the same functionality as the other pre-existing Android issue types.

June 2023

Metric Charts: Comparison by Software Version or Cohort

Metric charts have been enhanced with the addition of a new chart type presenting a direct comparison version to version or Cohort to Cohort without time as a variable. This new chart type presents a comparison of min/mean/max data aggregated across the entire comparison populations based on your selection (e.g. min/mean/max ever reported on v1.0.0 vs min/mean/max ever reported on v.1.0.1).

The pre-existing "over-time" chart view restricts comparison to an 8 week window which is great for intensive monitoring but less good at judging absolute performance. This new chart type allows users to make more effective performance comparisons in real-world scenarios and take decisions with more confidence.

You can read more about this new chart type in Memfault's documentation.

Increased Configurability for Alerting and Notifications

Alerting and notification functionality has received a set of significant enhancements. These include the introduction of configurable incident start and end delays, the ability to decide at which stages of an incident a user wants a notification, and increased control over the scheduling for incident summary notifications.

These changes are designed to give users greater control on an alert-by-alert basis over the alerting behavior and incident related notifications, reducing unnecessary "noise" without sacrificing visibility. Ultimately these changes help ensure alerts trigger notifications which are highly relevant and timely.

You can read more about these changes to alerting, incidents and notifications in Memfault's documentation.

May 2023

Simplified Debugging with Device Timezone in Memfault

The Timezone selector allow users to adjust the timezone within which all information viewed in Memfault is contextualized for that session. Currently, the timezone selections available include "Browser" (browser default), "Universal" (UTC), "Device" (configurable) and "Custom" (region selection).

Timezone selection within Memfault is designed to make it easier for international teams working with globally deployed devices to contextualize, coordinate and collaborate. Whether you want to standardize working within the "Universal" timezone across your team, or you want to use the "Custom" or "Device" options to adjust your session to the specific local timezone of a device you are debugging, having this type of control over context can be powerful.

To provide a specific example, let's say you receive a report of a customer having an issue with a device via your support team. The end user has reported a problem at 11am this morning. Rather than the developer needing to do the calculation manually they can just adjust to the correct "Custom" timezone assuming they know where that device was located. This process is even quicker if "Device" timezone is configured and takes a single click with no additional information required.

This month we made some improvements to the function of the "Device" timezone selection for Android devices. This selection is now available by default for Android devices using the persist.sys.timezone system property.

You can read more about timezones here and about the Android specific "Device" timezone metric collection here.

April 2023

Server-Side Support for Developer Mode

Developer Mode now allows you to temporarily remove any server-side rate limiting on devices from within the device view. This new functionality gives you full control over your integration/testing process with no imposed requirement to pause or prematurely switch between devices because a rate limit has been hit.

This will make it easier to integrate, configure and test new Memfault features and accelerate the testing, debugging and feature development processes of your own products using Memfault.

Developer Mode is activated on a per-device basis and will remove all rate limiting for uploads from the device to Memfault of coredumps, bug reports, Heartbeats and other data. This Server-Side Developer Mode functionality is an extension of the existing device-side Developer Mode (Android, Linux) and they can be used in tandem or independently.

Memfault Support for Cortex-R

Memfault has expanded its coverage of Arm-based devices adding support for coredumps on Arm Cortex-R. This allows customers to realize the full value of the Memfault monitoring, debugging and update capabilities on more of their Arm-based devices.

For customers already familiar with integrating the Memfault Firmware SDK on Cortex-M devices, the process for Cortex-R-based devices is very similar, with the only minor difference in the integration of the exception/interrupt handlers on Cortex-R. For more information on how to complete the integration, please review our Arm Cortex-R integration guide.

March 2023

New Access Control Permissions: Teams and Roles

Memfault added new concepts for access control: Teams are a flexible way to group members of an organization. They can reflect an actual company structure with functions such as "quality assurance" or "firmware engineering." Alternatively, with Roles, administrators can design teams solely to manage permissions more conveniently when assigning dedicated roles on a per-project level.

Teams and Roles allow for configuration scenarios such as "read-only access for this department" or "OTA must only ever be performed by these four people." They further allow for sophisticated setups such as "these five contractors may only ever see this one project and nothing else" or "newly invited members of the organization can do anything with our playground project but are otherwise limited to read-only access."

Using this new system is strictly optional as all members of an organization are part of the group "everyone" that grants permission to all of Memfault's features by default.

February 2023

Memfault Support for RISC-V on ESP32-C3 Devices

Memfault now supports RISC-V on ESP32-C3 devices. By following the steps in the ESP32 ESP-IDF integration guide, you will be able to integrate the Memfault Firmware SDK into a system that is using the ESP-IDF, including the ESP32-C3 chip. The integration guide assumes you already have a working project/toolchain for the ESP32. If you do not, the official getting started guide is a great resource.

January 2023

Including Linked Devices in the Search Results

With the introduction of the Linked Device Search feature, users can not only list the devices returned by search results, but also the devices that are linked to those devices. This is helpful when defining a population of devices (both primary and linked) before performing follow-up tasks such as assigning them to a specific Cohort, describing a new Device Set or assigning Fleet Sampling Resolutions and while doing so preventing any discrepancies (e.g. linked device staying in the old Cohort while the primary device is moved to a new one). Improvements to the Device Details page will also allow users to easily inspect the configuration states and update the Fleet Sampling Resolutions of both devices.

December 2022

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.

November 2022

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).