Mobile Vitals

Overview

Real User Monitoring offers Mobile Vitals, a set of metrics inspired by Android Vitals, that can help compute insights about your mobile application’s responsiveness, stability, and resource consumption. Mobile Vitals range from poor, moderate, to good.

Mobile Vitals appear on your your application’s Performance Overview page when you navigate to UX Monitoring > Performance Monitoring and click your application. From the mobile performance dashboard for your application, click on a graph in Mobile Vitals to apply a filter by version or examine filtered sessions.

Mobile Vitals in the RUM Explorer

Understand your application’s overall health and performance with the line graphs displaying metrics across various application versions. To filter on application version or see specific sessions and views, click on a graph.

Event Timings and Mobile Vitals

You can also select a view in the RUM Explorer and observe recommended benchmark ranges that directly correlate to your application’s user experience in the session. Click on a metric such as Refresh Rate Average and click Search Views With Poor Performance to apply a filter in your search query and examine additional views.

Metrics

The following metrics provide insight into your mobile application’s performance.

MeasurementDescription
Slow rendersTo ensure a smooth, jank-free user experience, your application should render frames in under 60Hz.

RUM tracks the application’s display refresh rate using @view.refresh_rate_average and @view.refresh_rate_min view attributes.

With slow rendering, you can monitor which views are taking longer than 16ms or 60Hz to render.
Note: Refresh rates are normalized on a range of zero to 60fps. For example, if your application runs at 100fps on a device capable of rendering 120fps, Datadog reports 50fps in Mobile Vitals.
Frozen framesFrames that take longer than 700ms to render appear as stuck and unresponsive in your application. These are classified as frozen frames.

RUM tracks long task events with the duration for any task taking longer then 100ms to complete.

With frozen frames, you can monitor which views appear frozen (taking longer than 700ms to render) to your end users and eliminate jank in your application.
Application not respondingWhen the UI thread of an application is blocked for more than 5 seconds, an Application Not Responding (ANR) error triggers. If the application is in the foreground, the system displays a dialog modal to the user, allowing them to force quit the application.

RUM tracks ANR occurrences and captures the entire stack trace that blocks the main thread when it encounters an ANR.
Crash-free sessions by versionAn application crash is reported due to an unexpected exit in the application typically caused by an unhandled exception or signal. Crash-free user sessions in your application directly correspond to your end user’s experience and overall satisfaction.

RUM tracks complete crash reports and presents trends over time with Error Tracking.

With crash-free sessions, you can stay up to speed on industry benchmarks and ensure that your application is ranked highly on the Google Play Store.
CPU ticks per secondHigh CPU usage impacts the battery life on your users’ devices.

RUM tracks CPU ticks per second for each view and the CPU utilization over the course of a session. The recommended range is <40 for good and <60 for moderate.

You can see the top views with the most number of CPU ticks on average over a selected time period under Mobile Vitals in your application’s Overview page.
Memory utilizationHigh memory usage can lead to OutOfMemoryError, which causes the application to crash and creates a poor user experience.

RUM tracks the amount of physical memory used by your application in bytes for each view, over the course of a session. The recommended range is <200MB for good and <400MB for moderate.

You can see the top views with the most memory consumption on average over a selected time period under Mobile Vitals in your application’s Overview page.

Further Reading

Additional helpful documentation, links, and articles: