Skip to main content

Rate Limiting

Memfault employs rate limiting to prevent malfunctioning devices from causing excessive amounts of traffic on the platform, which in turn improves site stability. Rate limits also help us provide fair pricing to our customers.

Below is a list of the APIs and payloads that may be rate-limited:

Rate LimitScopePlatformDetails

Ingestion of Custom Reports

Device

All

Custom Reports are a primitive data type from which Metrics (both Timeseries and Attributes) are created. Heartbeats are built on top of Custom Reports and are limited to 100 per device per 24-hour period.

Calls to the Latest Release endpoint

Device

All

The Latest Release endpoint returns the latest Release that should be installed for a given device.

Ingestion of Log Files

Device

All

Log Files uploaded by Bort through the Caliper system (Android) or using the memfault_log_trigger_collection() API (MCU).

Ingestion of Custom Data Recordings

Device

All

Custom Data Recordings (CDR) are sets of user defined data of any custom format that are sent from a device. Limited to 1 CDR upload per device per 24-hour period, and a maximum size of 16MB per CDR upload payload

Ingestion of Reboot Events

Device

All

Reboot Events uploaded by Bort through the Caliper system (Android), using the Reboot Reason Tracking subsystem (MCU) or Reboot Reason Tracking plugin (Linux).

Ingestion of Trace Events

Device

MCU

Trace Events are a MCU-specific feature allowing the capturing of an issue without sending a full Coredump.

Ingestion of Coredumps

Device

MCU

Coredumps are a source of Issues for MCU Projects.

Ingestion of Chunks

Device

MCU

Chunks are packets of data coming from the Memfault Firmware SDK.

Ingestion of ELF Coredumps

Device

Linux

ELF Coredumpsare a source of Issues for Linux Projects.

Ingestion of Bug Reports

Device

Android

Bug Reports are Android-specific files.

Ingestion of Drop Box Manager Entries

Device

Android

Drop Box Manager Entries uploaded by Bort through the Caliper system are produced by Android and can contain Java Exceptions, ANRs and Tombstones.

Ingestion of Batterystats Files

Device

Android

The output of Android's Batterystats subsystem is periodically polled and uploaded by Bort through the Caliper system.

Ingestion of Custom Events

Device

Android

Custom Events are batch-uploaded by Bort periodically and also when the number of pending events reaches a threshold (by default, 1000 events).

Server-Side Developer Mode

Memfault allows you to enable Server-Side Developer Mode for a specific Device in your Project. This mode allows you to bypass the rate limits for that Device temporarily. This is useful for development and testing purposes. To enable Server-Side Developer Mode for a Device, navigate to the Device Details page for that Device and click the "Developer Mode" tab. In here you will find detailed information on how Server-Side Developer Mode works and how to enable it for a Device.

The interface to enable Server-Side Developer mode for a device in the Memfault app

Server-Side Developer Mode is compatible with all Memfault Device SDKs, including Linux, Android, and MCU.

In addition to Server-Side Developer Mode, Memfault SDKs also offer a Developer Mode feature on Linux and Android. This feature enables additional functionalities in the Memfault SDKs. There is no equivalent feature for MCU Projects, but Server-Side Developer Mode can nevertheless be used stand-alone on MCU Projects.

The number of Devices that can be put in Server-Side Developer Mode simultaneously is currently limited.

View Rate Limit Settings

You can view a project's current rate limit settings by visiting Rate Limits on the Settings page.

The interface to view rate limit settings in the Memfault app