This page explains the metrics and diagnosis checklist items used by Call Inspector.
Every audio or video call implemented by Agora SDKs happens in a channel. If an app is a building, a channel is a room in the building.
When a user joins an empty channel, a call starts; when all users leave the channel, this call ends. A call is defined as the period between the first user joining a channel and the last user leaving the channel. Once a channel is empty, it can be used again for another call.
Each user in a call has a unique user ID (either uid
or userId
).
A sender or host is a user who sends audio or video streams at any point during a call.
A receiver or audience member is a user who receives audio or video streams at any point during a call. A receiver can receive audio and video streams from multiple senders at the same time.
Audio freezing occurs if audio rendering pauses for over 200 ms. The actual length of such a pause is called the audio freezing duration.
Audio freeze rate = (Sum of audio freezing duration per unit time / Total audio duration per unit time) × 100%.
A user's audio freeze rate is different from a call's audio freeze rate:
Video freezing occurs in the following situations:
The actual length of such a pause is called video freezing duration.
Video freeze rate = (Sum of video freezing duration per unit time / Total video duration per unit time) × 100%.
A user's video freeze rate is different from a call's video freeze rate:
ACU is the total number of users who joined the call.
PCU is the maximum number of in-call users throughout the call.
A call's duration is the time from the start of a call until its end, that is, from the first user joining the channel to the last user leaving the channel.
A user's total duration is the time from when they first join a channel to when they finally leave it. If a user joins and leaves a channel multiple times during a call, the total duration does not reflect how long the user actually stays in the channel.
A user's in-call duration is the actual time the user spends in the call. If a user joins and leaves a channel multiple times during a call, the in-call duration totals the length of each time period to reflect how long the user actually stays in the channel.
Bitrate is the amount of data (bits) sent or received per second.
A higher audio/video bitrate means higher audio/video quality. A low bitrate does not necessarily cause quality issues, but a very low bitrate often means poor audio/video quality.
Sender-side metric | Receiver-side metric | Description |
---|---|---|
Audio sending bitrate | Audio receiving bitrate | N/A |
High-quality video stream sending bitrate | Because a Web client only receives one video stream from each sender, there is no need to separate high-quality and low-quality streams for the video receiving bitrate. A Web client automatically switches to receiving the low-quality video stream when network conditions are poor. | |
Low-quality video stream sending bitrate | See High-quality video stream sending bitrate |
Packet loss is the percentage of the data packets lost during data transmission.
On the sender side, packet loss measures the packets lost when sending the data; on the receiver side, packet loss measures the packets lost during data transmission from the sender to the receiver.
Slight packet loss usually does not affect user experience. High packet loss (over 5%) means the network quality is poor and might result in audio/video freezing and blurry video.
Sender-side metric | Receiver-side metric |
---|---|
Audio upstream packet loss | Audio end-to-end packet loss |
Video upstream packet loss | Video end-to-end packet loss |
Freeze time is any significant pause in audio or video reception.
Receiver-side metric | Description |
---|---|
Audio rendering freeze time (Native only) | Audio rendering freezing occurs if it pauses for over 200 ms. A longer audio rendering freeze time means more significant audio freezing for the user. |
Video rendering freeze time |
Frame rate is the rate at which consecutive images (frames) appear on a display.
A higher frame rate means smoother video but uses more bandwidth and CPU resources. A low frame rate might cause video freeze.
Sender-side metric | Receiver-side metric | Description |
---|---|---|
Video capture frame rate | N/A | N/A |
High-quality video stream sending frame rate | Because a Web client only receives one video stream from each sender, there is no need to separate high-quality and low-quality streams for the video receiving frame rate. A Web client automatically switches to receiving the low-quality video stream when network conditions are poor. | |
Low-quality video stream sending frame rate | See High-quality video stream sending frame rate |
Resolution is the number of pixels in the width and height of an image.
A higher resolution (higher number of pixels) means clearer video.
Sender-side metric | Receiver-side metric | Description |
---|---|---|
High-quality video stream sending resolution | Because a Web client only receives one video stream from each sender, there is no need to separate high-quality and low-quality streams for the video receiving resolution. A Web client automatically switches to receiving the low-quality video stream when network conditions are poor. | |
Low-quality video stream receiving resolution (Web only) | See High-quality video stream sending resolution |
Audio signal strength is an indicator of volume. If the value of audio signal strength is lower than 80, you should pay special attention.
Sender-side metric | Receiver-side metric |
---|---|
Audio capture signal strength | Audio playback signal strength |
Metric | Description |
---|---|
Wi-Fi or LAN signal quality | Wi-Fi or LAN signal quality is measured by the round-trip delay (milliseconds) from the client to the local router. If the delay is longer than 500 ms, you should pay special attention. |
App CPU usage | The CPU usage (%) of the app. If the user's device has poor performance, the app's CPU usage might be high, causing audio and video freezing. This metric is not available when using an emulator or using Rosetta on an M1 Mac. |
System CPU usage | The CPU usage (%) of the system. If the user's device has poor performance, the system's CPU usage might be high, causing audio and video freezing. This metric is not available when using an emulator or using Rosetta on an M1 Mac. |
SDK task scheduling delay | SDK task scheduling delay is the time interval (milliseconds) the SDK needs to schedule tasks for worker threads. This delay is an indirect indicator of the system's performance. If the delay is longer than 80 ms, you should pay special attention. |
Diagnosis checklist items | Description |
---|---|
Video freezing | The user might experience significant video freezing. A typical reason is that the user's device performance and network conditions are poor. You should check related metrics to locate the problem. |
Blurry video | The user might see blurry video. You should check the user's video receiving resolution, device status, and network conditions. |
No sound | The user continues to hear no sound. You should check events on the receiver side and audio sending statistics on the sender side to confirm this exception and locate the reason. |
Audio freezing | The user might experience significant audio freezing. A typical reason is that the user's device performance and network conditions are poor. You should check related metrics to locate the problem. |
Diagnosis checklist items | Description |
---|---|
Video capture frame rate is low | The video capture frame rate continues to be lower than 3 fps. This exception might cause video freezing and blur for the receiver. |
Video output frame rate is low | The frame rate of video encoding is low, possibly because the sender's CPU usage or network packet loss is high. This exception might cause video freezing and blur for the receiver. |
Audio sending stops | The sender stops sending audio for a significant time period. You should check the user's key events to validate. This exception might cause the receiver to continue to hear no sound. |
Audio capture frequency is low | This exception might cause audio freezing for the receiver. |
Audio sender's system is busy | The main thread of the audio sender's system is busy. This exception might cause audio freezing for the receiver. |
Audio sender's network is poor | Possible reasons include upstream network congestion, high packet loss, or poor Wi-Fi signal. This exception might cause audio freezing for the receiver. |