Skip to main content

November 2021

Comparison Mode for Metric Charts

Since the introduction of Custom Metrics, Memfault provided various ways to define charts for plotting Fleet-wide aggregations (sum, count, min, max, mean). These charts are often used to visualize trends over time (e.g. "hours between recharge") or to detect anomalies (e.g. "attempt until successful connect") for a subset of the Fleet. The controls in the top-right corner allow for ad-hoc filtering by Cohort and/or software version.

With the advent of the Chart Comparison Mode, users can now apply up to 4 such filters simultaneously to plot the resulting data series side-by-side inside each custom chart.

Use this feature to visually compare your beta Cohort against the production Fleet or to see at a glance if there are any regressions for key metrics between the last software versions.

Linked Devices

Sometimes, products span across multiple devices: Each pair of wireless earplugs has a left and right version, for each smart home installation there may be multiple components in a network, or some related device information lives outside of Memfault, and your workflow benefits from quick navigation to another software system.

Memfault's Linked Devices provide convenient navigation in these scenarios. It builds these connections by looking at Device Attributes that can be edited in the UI, updated via API, or sent from devices at any time.

MCU Heap Visualization

Memfault can now track and visualize heap allocations with any coredump on a growing number of MCU Architectures starting with ARM Cortex-M, nRF Connect SDK, ESP32 ESP-IDF, ESP8266, and Dialog DA1469x.

This optional debugging feature tags all heap allocations with their respective size, address, and location of code that allocated it. Use it to understand memory distribution, heap fragmentation, or to find memory leaks in an out-of-memory situation in the field.

Managing Rate Limits

Memfault's frontend is now more upfront with the visualization of quotas and rate limits that may affect large projects.

When managing Timeseries Metrics and Device Attributes, Memfault informs about the number of remaining metrics for Fleet-wide analytics. The dedicated page at Settings→Quotas presents an overview.

July 2021

Compact Logs in Memfault's Firmware SDK

Memfault's Firmware SDK now includes support for what we are calling "Compact Logs". It is similar to Zephyr's dictionary-based-logging and a few other implementations in other RTOS's, but we think we've hit the perfect balance of performance, features, ease-of-use, and size compression.

Let's walk through a quick example of what compact logs are. Here is a log line that a user of the Memfault SDK could write:

MEMFAULT_TRACE_EVENT_WITH_LOG("QSPI Flash Erase Failure: error code: 0x%x", 0x5);

With a generic formatted string implementation such as printf, we would need to include the entire string contents in our log buffer or storage. In total, this requires 41 bytes.

00000000: 5153 5049 2046 6c61 7368 2045 7261 7365  QSPI Flash Erase
00000010: 2046 6169 6c75 7265 3a20 6572 726f 7220 Failure: error
00000020: 636f 6465 3a20 3078 35 code: 0x5

Once developers run out of firmware code space, a common pattern is to start shortening log lines or removing them entirely. We believe this is a bad practice! We should be able to keep our useful log lines and make the messages as long as necessary!

This is why we created compact logs. With compact logs, every log "string" is placed in a special section in the ELF file and we just need to reference each log line with an index, or ID.

For a compact log, we just need to encode an integer ID for the string portion and the arguments to be serialized. In this example, this information requires just 5 bytes.

00000000: 8218 8805                                ....

In this example, we can reduce the storage occupied by 88%! For a firmware that contains 100-1000 log lines, these savings are dramatic.

Check out our documentation for more information on how to enable compact logs in your firmware.

Along with compact logs, we've been busy adding more ways to filter and slice the data in our application and building up some exciting features related to Custom Events and State. More news to come next month.

June 2021

Nordic nRF Connect SDK Memfault Integration

Nordic Semiconductor's nRF Connect SDK now has Memfault's SDK built-in, allowing for customers and users of Nordic's chips and tools to integrate and use Memfault in minutes.

Check out our press release for more information!

As for new Memfault features, we made improvements to symbol-file uploading and downloading, added favorite projects, and sped everything up a bit.

May 2021

Heartbeat Metric Improvements

One of Memfault's most capable features is Metrics. With Metrics, you can determine how specific metrics on a single device correlate with each other to root cause performance and power regressions, or aggregate them on a Fleet level and determine whether the health of your Fleet of devices is improving over time!

We're announcing new features today which should help make our metrics feature more usable.

First, users can now view all the Metric names that have been received from Heartbeat events in the Settings → Metrics page. This allows for easy auditing of metric names and configurations.

If you find any that are stale or shouldn't be tracked anymore, you can archive them.

When Edit is clicked, users can configure the valid ranges for the metric, which will improve the displayed charts by normalizing the Y-axis to possible values. An example of where this could be useful is battery life, where the min and max values are 0-100.

Users can also specify a single value for Memfault to ignore, such as 0xffffffff, which can represent the absence of a value.

These new features will enable developers and customer support representatives to more easily dig into the health of a single device and the entire Fleet.

That's not all though! We've made more improvements to symbol file uploading, bugreport filtering, and the archiving of software versions.

April 2021

Memfault Now Offering Free Trial

The day you have all (maybe) been waiting for is here! Anyone can now sign up for a free trial of Memfault! There is no sales team in your way of getting your devices integrated with Memfault and monitoring your Fleet of devices.

Check out our press release to learn more.

March 2021

User Management Improvements

You can now view, invite, remove, and set roles for all users in your Organization!

You can find this setting under Admin → Users. This feature is only available for admins of an Organization.

February 2021

Android Timeline Improvements

Many improvements have been happening on the Android side of the product, primarily when viewing Caliper data within the Timeline view. We now include almost every type of data a device can send in the timeline view, such as drop box manager entries, log files, traces, and more.

View the timeline by day, drill into specific hours, and navigate to the pieces of data that you want to investigate!

January 2021

Issue Merging

Make your Issue list more organized and concise with the new Issue merging feature! Users can now merge Issues together by clicking the Merge button on the detail page of an Issue and then selecting which Issue to be its parent.

This workflow is especially useful when there are multiple Issues stemming from the same root cause, such as a stack overflow that presents itself with different backtraces.

This feature is available for both Android and Real-Time products.

December 2020

Memfault's Android SDK hits v3.0!

Memfault's Bort SDK v3.0 has been released, which includes Memfault Caliper.

The Caliper system supports Trace collection from various subsystems, as well as per device and Fleet-wide metrics collection via the Android batterystats subsystem. Additional data sources, such as logs and system properties, are in development and are coming soon!

Memfault's Caliper is designed to have minimal effects on runtime performance, as well as consume less bandwidth and storage than sending bug reports.

To compare and contrast how Bug Reports and Memfault Caliper differ, please refer to the Bort SDK Reference docs page.

November 2020

Logging Improvements

  • Power up your log searching capabilities with filtering by log level, tags, regular expressions. This helps you find offending log lines faster than ever. Works for both Android and Real-Time products.