你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
呼叫客户端媒体统计信息时序日志架构
“呼叫客户端媒体统计信息时序日志”提供有关参与呼叫的各个参与者之间的媒体流的客户端信息。 这些日志目前处于有限预览状态,提供参与者之间音频、视频和屏幕共享媒体流的详细时序数据,默认聚合间隔为 10 秒。 日志包含有关媒体流类型、方向、编解码器和比特率属性(例如 max、min、average)的粒度时序信息。
此日志提供比通话诊断日志更详细的信息,便于了解参与者之间的媒体流质量。 它可用于通过 Azure 通信服务资源的通话诊断可视化和调查呼叫的质量问题。 详细了解通话诊断
如何使用呼叫日志
建议在 Log Analytics 资源中收集所有可用的呼叫日志,以便监视呼叫使用情况和改进通话质量,并在我们发布新日志时从 Azure 通信服务接收这些日志。
可使用两个主要工具来监视通话并提高通话质量。
建议使用“语音和视频见解”仪表板来启动任何质量调查,并根据需要使用通话诊断,以在需要精细的详细信息时浏览单次呼叫。
数据概念
重要
若要分析日志,必须收集这些日志。 若要了解详细信息,请参阅:如何存储日志?
除非启用这些特定的诊断设置,否则 Azure 不会存储呼叫日志数据。 呼叫数据不可追溯。 创建诊断设置后,将累积数据。
数据定义
呼叫客户端媒体统计信息时序日志架构
下表介绍了每个属性。
properties | 说明 |
---|---|
OperationName |
与日志记录相关联的操作。 |
CallId |
呼叫的唯一 ID。 它可从单次呼叫期间连接的所有参与者和终结点中标识相关事件,并且可用于联接来自不同日志的数据。 它类似于通话摘要日志和通话诊断日志中的 correlationId。 |
CallClientTimeStamp |
记录媒体统计信息时的时间戳。 |
MetricName |
媒体统计信息的名称,例如 Bitrate 、JitterInMs 、PacketsPerSecond 等。 |
Count |
在给定时间戳处采样的数据点数。 |
Sum |
采样的所有数据点的指标值之和。 |
Average |
采样的数据点的平均指标值。 平均值 = 总和/计数。 |
Minimum |
采样的所有数据点的指标值的最小值。 |
Maximum |
采样的所有数据点的指标值的最大值。 |
MediaStreamDirection |
媒体流的方向。 可以是 send 或 receive 。 |
MediaStreamType |
媒体流的类型。 可以是 video 、audio 或 screen 。 |
MediaStreamCodec |
用于对媒体流进行编码/解码的编解码器,例如 H264 、OPUS 、VP8 等。 |
ParticipantId |
生成的用于表示呼叫中每个终结点的唯一 ID。 |
ClientInstanceId |
表示在呼叫 SDK 中创建的呼叫客户端对象的唯一 ID。 |
EndpointId |
表示连接到呼叫的每个终结点的唯一 ID。 对于本机客户端,可在跨多个呼叫 (callIds ) 为同一用户保留 EndpointId,但当客户端是 Web 浏览器时,该属性值对于每个呼叫都是唯一的。 此日志中当前未检测 EndpointId 。 实现后,它将匹配 CallSummary/Diagnostics 日志中的值 |
RemoteParticipantId |
表示媒体流中远程终结点的唯一 ID。 例如,用户可以在同一呼叫中为其他用户呈现多个视频流。 每个视频流都有不同的 RemoteParticipantId 。 |
RemoteEndpointId |
与 EndpointId 相同,但它表示流远程端的用户。 |
MediaStreamId |
一个唯一 ID,表示呼叫中的每个媒体流。
MediaStreamId 当前未在客户端中检测。 实现后,它将匹配 CallDiagnostics 日志中的 streamId 列。 |
AggregationIntervalSeconds |
聚合媒体统计信息的时间间隔。 目前在通话 SDK 中,媒体指标每 1 秒采样一次,在日志中报告时,我们每 10 秒聚合所有样本。 因此,此表中的每一行最多有 10 个采样点。 |
各种呼叫类型的示例数据
P2P 和群组通话的呼叫客户端媒体统计信息日志
对于呼叫客户端媒体统计信息时序日志,P2P 和群组通话方案之间没有区别。 日志数量由 SDK 操作和通话持续时间决定。 以下代码是一个显示这些日志架构的泛型示例。
呼叫客户端媒体统计信息时序日志
这里是媒体统计信息时序日志的示例。 它显示参与者的抖动指标,用于在特定时间戳处接收音频流。
"properties": {
"TenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"TimeGenerated": "2024-01-10T07:36:51.771Z",
"OperationName": "CallClientMediaStatsTimeSeries" ,
"CallId": "92d800c4-abde-40be-91e9-3814ee786b19",
"CallClientTimeStamp": "2024-01-09T15:07:56.066Z",
"MetricName": "JitterInMs",
"Count": "2",
"Sum": "34",
"Average": "17",
"Minimum": "10",
"Maximum": "25",
"MediaStreamDirection": "recv",
"MediaStreamType": "audio",
"MediaStreamCodec": "OPUS",
"ParticipantId": "2656fd6c-6d4a-451d-a1a5-ce1baefc4d5c",
"ClientInstanceId": "d08a3d05-db90-415f-88a7-87ae74edc1dd",
"AggregationIntervalSeconds": "10",
"Type": "ACSCallClientMediaStatsTimeSeries"
}
每个参与者可以有许多不同的呼叫媒体统计信息指标。 可以在 Azure 门户的 Log Analytics 中运行以下查询,以显示此日志中的所有可能指标:
ACSCallClientMediaStatsTimeSeries | distinct MetricName
常见问题解答
如何存储日志?
以下部分将对这一要求进行说明。
默认情况下,Azure 通信服务日志不会存储在 Azure 帐户中,因此你需要开始存储这些日志,以便“语音和视频见解”仪表板和通话诊断等工具正常工作。 要收集这些呼叫日志,需要启用将呼叫数据定向到 Log Analytics 工作区的诊断设置。
数据不会进行追溯性存储,因此仅在配置诊断设置后开始捕获呼叫日志。
按照在 Azure Monitor 中通过诊断设置启用日志为资源添加诊断设置。 建议最初收集所有日志。 了解 Azure Monitor 中的功能后,确定要保留哪些日志以及要保留多长时间。 添加诊断设置时,系统会提示你选择日志。 若要收集所有日志,请选择“allLogs”。
Azure Monitor 的 Log Analytics 中的数据量、保留期和使用情况通过现有的 Azure 数据计量计费。 出于成本考虑,建议根据需要监视数据使用情况和保留策略。 有关详细信息,请参阅控制成本。
如果你有多个 Azure 通信服务资源 ID,则必须为每个资源 ID 启用这些设置。
后续步骤
查看所有语音和视频日志的概述,请参阅:Azure 通信服务呼叫日志概述
了解管理呼叫质量和可靠性的最佳做法,请参阅:改善和管理呼叫质量
了解如何使用呼叫日志通过呼叫诊断来诊断呼叫质量和可靠性问题,请参阅:呼叫诊断