你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通话指标日志架构
本文档解释了通过 Azure Monitor 以资源日志的形式提供给 ACSCallingMetrics 日志。
语音和视频见解仪表板中使用通话指标日志,根据各种操作的成功和失败通话 SDK API 通话的计数,可视化可靠性、质量和性能的长期图形。 使用这些日志可以更清楚地了解通信工作负载在各个维度上的每日汇总通话指标。 通话指标日志包含基于 SDK 版本、OS 名称和错误子代码等属性,按每日时间区间汇总的通话指标。
如何使用通话日志
建议在日志分析资源中收集所有可用的通话日志,以便监视通话使用情况和改进通话质量,并在我们发布新日志时从 Azure 通信服务接收这些日志。
可使用两个主要工具来监视通话并提高通话质量。
建议使用语音和视频见解仪表板来启动任何质量调查,并根据需要使用通话诊断,以在需要精细的详细信息时浏览单次通话。
数据概念
重要
若要分析日志,必须收集这些日志。 若要了解详细信息,请参阅:如何存储日志?
除非启用这些特定的诊断设置,否则 Azure 不会存储呼叫日志数据。 通话数据不可追溯。 创建诊断设置后,将累积数据。
这些指标在语音和视频见解仪表板中可视化,如果想构建自己的仪表板或自定义现有仪表板,建议查看这些视觉对象,以了解如何使用这些数据。 可以在语音和视频见解仪表板中编辑现有工作簿,以查看每个视觉对象背后的查询。
此日志模式有名为 MetricName
的属性,详细说明了在此架构中发送的各种指标。 指标分为两大类,API 指标和面向用户的诊断 (UFD) 指标。 UFD 指标进一步分为两组,说明了 UFD 发生的数量以及在通话过程中 UFD 从这些事件中恢复的情况。
由于这些指标提供了整个通话资源的概述,因此如果指标下降,可以设置自动警报。 要了解如何设置自动警报,请参阅:教程:为 Azure 资源创建日志搜索警报
指标类别
API 指标
这些指标度量通话 SDK 公共 API 的成功和失败 (dcount),例如(静音、加入等)。
- reliability/api/CreateView/Local
- reliability/api/Join
- reliability/api/StartVideo
- reliability/api/AcceptIncomingCall
- reliability/api/CreateView/Remote
- reliability/api/StopVideo
- reliability/api/CallAgentInit
- reliability/api/StartCall
面向用户的诊断 (UFD) 指标
- 要了解有关 UFD 的更多信息,请参阅:面向用户的诊断
面向用户的诊断 (UFD) 支线指标:(通话期间至少有一个不良 UFD 的参与者(直线)dcount)
提供通话中受 UFD 影响的参与者数量。
- reliability/leg/UFD/NetworkReconnect
- reliability/leg/UFD/CameraStoppedUnexpectedly
- reliability/leg/UFD/MicrophoneMuteUnexpectedly
- reliability/leg/UFD/NetworkReceiveQuality
- reliability/leg/UFD/MicrophonePermissionDenied
- reliability/leg/UFD/MicrophoneNotFunctioning
- reliability/leg/UFD/NoMicrophoneDevicesEnumerated
- reliability/leg/UFD/CameraPermissionDenied
- reliability/leg/UFD/CameraStartFailed
- reliability/leg/UFD/CapturerStoppedUnexpectedly
- reliability/leg/UFD/CapturerStartFailed
- reliability/leg/UFD/CameraStartTimedOut
- reliability/leg/UFD/NoSpeakerDevicesEnumerated
- reliability/leg/UFD/CameraFreeze
- reliability/leg/UFD/NetworkRelaysNotReachable
- reliability/leg/UFD/SpeakingWhileMicrophoneIsMuted
- reliability/leg/UFD/NoNetwork
- reliability/leg/UFD/NetworkSendQuality
- reliability/leg/UFD/ScreenshareRecordingDisabled
面向用户的诊断 (UFD) API 恢复指标:(发生问题但在通话期间恢复的事件 dcount)
提供通话 SDK 在通话期间触发但随后在通话期间恢复的 UFD 数量的计数。 例如,如果在通话中触发 NetworkReconnect
UFD 一次,但网络在通话期间成功恢复。 在本例中,良好 API 恢复 UFD 的计数 ≥ 不良 UFD 支线指标的计数。 可以计算出 UFD 的恢复率为 100%。
- reliability/api/UFD/recovery/NetworkReceiveQuality
- reliability/api/UFD/recovery/NetworkReconnect
- reliability/api/UFD/recovery/CameraStoppedUnexpectedly
- reliability/api/UFD/recovery/NetworkSendQuality
- reliability/api/UFD/recovery/MicrophoneMuteUnexpectedly
- reliability/api/UFD/recovery/MicrophoneNotFunctioning
- reliability/api/UFD/recovery/CapturerStoppedUnexpectedly
- reliability/api/UFD/recovery/CameraFreeze
- reliability/api/UFD/recovery/CameraStartFailed
- reliability/api/UFD/recovery/NoMicrophoneDevicesEnumerated
- reliability/api/UFD/recovery/MicrophonePermissionDenied
- reliability/api/UFD/recovery/CameraPermissionDenied
- reliability/api/UFD/recovery/NoSpeakerDevicesEnumerated
- reliability/api/UFD/recovery/CapturerStartFailed
- reliability/api/UFD/recovery/ScreenshareRecordingDisabled
- reliability/api/UFD/recovery/NoNetwork
- reliability/api/UFD/recovery/CameraStartTimedOut
- reliability/api/UFD/recovery/SpeakingWhileMicrophoneIsMuted
- reliability/api/UFD/recovery/NetworkRelaysNotReachable
数据定义
通话指标日志架构
下表描述了每个属性。
properties | 说明 |
---|---|
TimeGenerated |
生成日志的时间戳 (UTC)。 |
OperationName |
与日志记录相关联的操作。 |
OperationVersion |
与操作关联的 API 版本。 或者操作的版本(如果没有 API 版本)。 |
Category |
事件的日志类别。 具有相同日志类别和资源类型的日志共享相同的属性字段。 |
CorrelationId |
唯一 GUID,用于关联同一维度上的事件。 |
TimestampMax |
每个维度的 UTC 最大时间戳。 |
TimestampBin |
每个维度的每日时间戳区间。 |
MetricValueAvg |
每个维度的指标平均值。 |
Unit |
指标单位。 |
Goal |
为支线成功定义的阈值。 |
FailedLegsDcount |
每个维度的失败参与者(支线)数量。 |
SuccessLegsDcount |
每个维度的成功参与者(支线)计数。 |
CallsDcount |
每个维度的通话总数。 |
LegsDcount |
每个维度的参与者(支线)总数。 |
SubCode |
指示子代码的维度。 |
CallType |
指示通话类型的维度。 |
Platform |
平台维度(例如,iOS、Android、Windows)。 |
ResultType |
结果类型维度(例如,成功或失败类别)。 |
DeviceModel |
指示设备型号的维度。 |
DeviceBrand |
指示设备品牌的维度。 |
DeviceFamily |
指示设备系列的维度。 |
DeviceOsVersionMajor |
设备操作系统的主要版本号。 |
DeviceOsVersionMinor |
设备操作系统的次要版本号。 |
DeviceBrowserVersionMinor |
设备浏览器的次要版本号。 |
DeviceBrowserVersionMajor |
设备浏览器的主要版本号。 |
DeviceOsName |
设备操作系统的名称。 |
DeviceBrowser |
设备浏览器的名称。 |
SdkVersion |
客户端上运行的 SDK 版本。 |
MetricName |
被度量的指标的名称。 |
各种通话类型的示例数据
P2P 和组通话的通话指标日志
对于通话指标日志,P2P 和组通话应用场景之间没有区别。 以下代码是一个显示这些日志架构的泛型示例。
通话指标日志
以下是通话指标日志的两行示例:
"properties": {
"TenantId": "4e7403f8-515a-4df5-8e13-59f0e2b76e3a",
"TimeGenerated": "2025-02-03T05:17:39.1840000Z",
"OperationName": "CallingMetrics",
"OperationVersion": "1.0-dev",
"Category": "CallingMetrics",
"CorrelationId": "1f27dac9e6d64c82cafdd6da73cdb785",
"TimestampMax": "2025-02-02T14:35:55.0000000Z",
"TimestampBin": "2025-02-02T00:00:00.0000000Z",
"MetricValueAvg": 100,
"Unit": "percentage",
"Goal": ">= 100.0",
"FailedLegsDcount": 0,
"SuccessLegsDcount": 2,
"CallsDcount": 1,
"LegsDcount": 2,
"SubCode": 0,
"CallType": "1 to 1",
"Platform": "Web",
"ResultType": "Succeeded",
"DeviceModel": "",
"DeviceBrand": "",
"DeviceFamily": "Other",
"DeviceOsVersionMajor": "",
"DeviceOsVersionMinor": 10,
"DeviceBrowserVersionMinor": 0,
"DeviceBrowserVersionMajor": 132,
"DeviceOsName": "Windows",
"DeviceBrowser": "Edge",
"SdkVersion": "1.32.1.0_stable",
"MetricName": "reliability/leg/UFD/CameraStoppedUnexpectedly",
"SourceSystem": "",
"Type": "ACSCallingMetrics",
"_ResourceId": "/subscriptions/50ad1522-5c2c-4d9a-a6c8-67c11ecb75b8/resourcegroups/calling-sample-apps/providers/microsoft.communication/communicationservices/corertc-test-apps"
}
"properties": {
"TenantId": "4e7403f8-515a-4df5-8e13-59f0e2b76e3a",
"TimeGenerated": "2025-02-03T05:17:39.1840000Z",
"OperationName": "CallingMetrics",
"OperationVersion": "1.0-dev",
"Category": "CallingMetrics",
"CorrelationId": "1f27dac9e6d64c82cafdd6da73cdb785",
"TimestampMax": "2025-02-02T14:35:55.0000000Z",
"TimestampBin": "2025-02-02T00:00:00.0000000Z",
"MetricValueAvg": 100,
"Unit": "percentage",
"Goal": ">= 100.0",
"FailedLegsDcount": 0,
"SuccessLegsDcount": 2,
"CallsDcount": 1,
"LegsDcount": 2,
"SubCode": 0,
"CallType": "1 to 1",
"Platform": "Web",
"ResultType": "Succeeded",
"DeviceModel": "",
"DeviceBrand": "",
"DeviceFamily": "Other",
"DeviceOsVersionMajor": "",
"DeviceOsVersionMinor": 10,
"DeviceBrowserVersionMinor": 0,
"DeviceBrowserVersionMajor": 132,
"DeviceOsName": "Windows",
"DeviceBrowser": "Edge",
"SdkVersion": "1.32.1.0_stable",
"MetricName": "reliability/leg/UFD/CameraStoppedUnexpectedly",
"SourceSystem": "",
"Type": "ACSCallingMetrics",
"_ResourceId": "/subscriptions/50ad1522-5c2c-4d9a-a6c8-67c11ecb75b8/resourcegroups/calling-sample-apps/providers/microsoft.communication/communicationservices/corertc-test-apps"
}
常见问题解答
如何存储日志?
以下部分将对这一要求进行说明。
默认情况下,Azure 通信服务日志不会存储在 Azure 帐户中,因此需要开始存储这些日志,以便语音和视频见解仪表板和通话诊断等工具正常工作。 要收集这些呼叫日志,需要启用将呼叫数据定向到 Log Analytics 工作区的诊断设置。
数据不会进行追溯性存储,因此仅在配置诊断设置后开始捕获呼叫日志。
按照在 Azure Monitor 中通过诊断设置启用日志为资源添加诊断设置。 建议最初收集所有日志。 了解 Azure Monitor 中的功能后,确定要保留哪些日志以及要保留多长时间。 添加诊断设置时,系统会提示你选择日志。 若要收集所有日志,请选择“allLogs”。
Azure Monitor 的 Log Analytics 中的数据量、保留期和使用情况通过现有的 Azure 数据计量计费。 出于成本考虑,建议根据需要监视数据使用情况和保留策略。 有关详细信息,请参阅控制成本。
如果你有多个 Azure 通信服务资源 ID,则必须为每个资源 ID 启用这些设置。
后续步骤
查看所有语音和视频日志的概述,请参阅:Azure 通信服务通话日志概述
了解管理呼叫质量和可靠性的最佳做法,请参阅:改善和管理呼叫质量
了解如何使用呼叫日志通过呼叫诊断来诊断呼叫质量和可靠性问题,请参阅:呼叫诊断