Memfault is a full device monitoring solution which can be integrated into any AOSP device with dumpstate.

How does it work?

  1. Using the Memfault Bug Report (Bort) SDK, bug reports are generated at a configurable interval and automatically uploaded to Memfault.
  2. Kernel oops, tombstones, java exceptions, ANRs, SELinux policy violations and other issues are extracted, grouped, de-duplicated, and displayed in a searchable dashboard. Notifications can let you know when problems are detected. Memfault can also symbolicate native traces and de-obfuscate android traces.
  3. Interactive, zoomable timeline charts are provided to view system and custom metrics over time, including battery, WiFi, Bluetooth, and activity manager events.
  4. Logs from logcat and dmesg are parsed, merged and displayed in a searchable interface alongside issues.

Getting Started

The Bug Report SDK is primarily a system application built using gradle and an additional dumpstate runner to allow bug reports to be generated in the background. For a detailed integration guide, see the Bug Report SDK.

To symbolicate native and ANR traces, as well as de-obfuscate android traces, Memfault provides a CLI tool that can be integrated into your build system to upload the required symbols and mappings, respectively. See Uploading Android Bugreports and Symbols for more information.

Small patches may be required to add the GNU build ID to ANRs and Tombstones, or to add the timestamp to Tombstones.

To track additional or custom metrics on your platform, see our guide on Collecting Device Metrics.