Status: development
The OpenTelemetry slow rendering instrumentation for Android will detect when the application user interface is slow or frozen. See the Android documentation for a discussion of UI "jank".
The instrumentation operates by periodically polling for frame metrics, by default every 1 second.
This instrumentation produces the following telemetry, with an instrumentation
scope of app.jank.
Generated when rendering takes more than 16ms within a polling period.
- Type: Event
- Event Name:
app.jank - Description: This event is emitted when frame metrics contain at least one render duration longer than 16ms (the slow rendering threshold).
- Attributes:
app.jank.frame_count- the number of frames that exceeded the thresholdapp.jank.period- the polling period duration in seconds during which the frames were detectedapp.jank.threshold- the threshold in seconds above which a frame is considered slow (e.g.0.016)
Generated when rendering takes more than 700ms within a polling period.
- Type: Event
- Event Name:
app.jank - Description: This event is emitted when frame metrics contain at least one render duration longer than 700ms (the frozen rendering threshold).
- Attributes:
app.jank.frame_count- the number of frames that exceeded the thresholdapp.jank.period- the polling period duration in seconds during which the frames were detectedapp.jank.threshold- the threshold in seconds above which a frame is considered frozen (e.g.0.7)
This instrumentation comes with the android agent out of the box, so if you depend on it, you don't need to do anything else to install this instrumentation. However, if you don't use the agent but instead depend on core directly, you can manually install this instrumentation by following the steps below.
implementation("io.opentelemetry.android.instrumentation:slowrendering:1.4.0-alpha")