Metric Reports
What is a Metric Report?
A Metric Report, or report for short, is a container for a set of metric readings. In the illustration below, 2 examples of reports from an imaginary action camera device are sketched out. All reports have a common set of metadata, containing the Device ID, the Software Version, captured date, Duration of the report and a few more pieces of metadata.
The report on the left is a periodic heartbeat
report, as indicated by its
"Report Type" field and contains a set of readings for each Heartbeat metric.
The reading represents that metric's value for the given time and period of the
report. For example, battery_soc_pct_drop
is the percentage drop in battery
over the 60 minutes from the start of the report to the end ("Captured Date") of
the report.
On the right, we have another report. Note it's very similar, except the "Report
Type", which is recording
. This is a so-called "session report". The device in
the example is an action camera and this report contains metrics from a video
recording session. Note that the battery_soc_pct_drop
and
chassis_temperature_celsius
keys are the same as with the heartbeat
report,
while fps
and resolution
are specific to the recording
report.
Report Types
In the example in the previous section, we saw two types of reports: heartbeat
and recording
. Generally speaking, there are 2 categories of reports: periodic
reports and session reports:
Periodic / Heartbeat Reports
Periodic reports are built-in and have the reserved type heartbeat
. The
Memfault SDKs typically capture this report every hour, continuously.
Session Reports
Session report types are customer-defined. A session report is explicitly captured around activities of interest. Some examples:
- A video camera device may use a
recording
session to capture metrics relevant to the video recording, such as frames per second, resolution, etc. - A gaming console may use a
gameplay
session to capture metrics relevant to the gameplay, such as input latency, cellular bytes transferred, etc. - A fitness device may use a
workout
session to capture metrics relevant to the workout, such as heart rate, steps taken, etc.
Any ASCII string between 1-128 characters can be used (excluding the built-in
heartbeat
) can be used as the report type string.
For more information about capturing metric sessions for each SDK:
- Bare Metal/RTOS: see the Session Metrics Guide
- Android: see the Sessions section
- Linux: see the Sessions Guide
Quotas
You're only allowed to use a limited amount of (session) report types. The limit is dependent on the plan you have. Check out the Settings → Quotas Files page to see the "Session Types" quota.
Category | Report Type | Quota-exempt |
---|---|---|
Periodic | heartbeat (builtin) | Yes |
Session | Customer-provided string | No |