Memfault is a full device monitoring solution that can be integrated into any AOSP device. SDKs are available for Android 8-12. Running a different version of Android? Let us know!
What does it do?
- Using the Bort SDK (source), data is captured at a configurable interval and automatically uploaded to Memfault. Data can be captured by configuring individual data sources for fine-grained data collection, as well as via bug reports for large snapshots of diagnostic information.
- Kernel oops, tombstones, java exceptions, ANRs, WTFs, 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 deobfuscate android traces.
- Interactive, zoomable timeline charts are provided to view system and custom metrics over time, including battery, WiFi, Bluetooth, and activity manager events. These metrics can be viewed per device and also across the entire fleet to spot key trends.
- Logs from logcat and dmesg are parsed, merged and displayed in a searchable interface alongside issues.
Memfault provides the Bort SDK, an open source, customizable SDK that can be easily integrated into your Android build.
Once integrated, it can collect detailed diagnostics from the entire operating system to provide diagnostics and telemetry on everything from low-level hardware or kernel issues to high-level application crashes.
The SDK's behavior is driven by the Bort application; it schedules and requests the diagnostics information, then processes the results and uploads then to the cloud when the device is online. The Bort application is easily configurable to collect more or less data depending on your use case, and can be updated by pushing a new APK --- no OS update is required.
The Usage Reporter is a companion system application that provides a mechanism for Bort to collect diagnostics information. It can use either the Memfault Caliper system, or bug reports, or both, depending on how the Bort application is configured.
For a detailed integration guide, see the Getting Started Guide.
To symbolicate native and ANR traces, as well as deobfuscate 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 Bug Reports and Symbols for more information.
The Bort SDK contains built-in support for collecting many Android system metrics. To track additional or custom metrics on your platform, see our guide on Collecting Custom Metrics.