收集和查询连接质量数据

连接质量对于良好的用户体验至关重要,因此能够监视连接以发现潜在问题并在出现问题时对其进行故障排除非常重要。 Azure 虚拟桌面与 Log Analytics 等工具集成,可帮助你监视部署的连接运行状况。 本文将介绍如何配置诊断设置,以便收集连接质量数据并查询特定参数的数据。

先决条件

若要开始收集连接质量数据,需要设置 Log Analytics 工作区以便与 Azure 虚拟桌面一起使用

注意

这会产生 Log Analytics 的常规存储费用。 了解详细信息,请参阅 Azure Monitor 日志定价详细信息

配置诊断设置

在 Azure 门户中检查和修改诊断设置:

  1. 登录到 Azure 门户,然后转到“Azure 虚拟桌面”,并选择“主机池”。

  2. 选择要为其收集网络数据的主机池。

  3. 如果你还没有配置诊断设置,请选择“诊断设置”,然后创建新设置。 如果已配置诊断设置,请选择“编辑设置”。

  4. 如果要收集所有表的数据,请选择 allLogs。 allLogs 参数会在将来自动将新表添加到你的数据表。

  5. 选择要将收集的数据发送到的位置。 Azure 虚拟桌面见解用户应选择 Log Analytics 工作区。

  6. 单击“保存”应用所做的更改。

  7. 对要度量的所有其他主机池重复此过程。

  8. 要检查网络数据,请返回主机池的资源页面,选择“日志”,然后运行 Azure Log Analytics 的示例查询中的查询之一。 为了让查询获得结果,主机池必须有之前连接过会话的活动用户。 请注意,网络数据可能需要 15 分钟才会显示在 Azure 门户中。

Azure Log Analytics 的示例查询:网络数据

在本部分中,我们将创建一个查询列表来帮助查看连接质量信息。 可以在 Log Analytics 查询编辑器中运行查询。

注意

对于每个示例,请将 userupn 替换为你要查找的用户的 UPN。

查询平均 RTT 和带宽

查找平均往返时间和带宽:

// 90th, 50th, 10th Percentile for RTT in 10 min increments
WVDConnectionNetworkData
| summarize RTTP90=percentile(EstRoundTripTimeInMs,90),RTTP50=percentile(EstRoundTripTimeInMs,50),RTTP10=percentile(EstRoundTripTimeInMs,10) by bin(TimeGenerated,10m)
| render timechart
// 90th, 50th, 10th Percentile for BW in 10 min increments
WVDConnectionNetworkData
| summarize BWP90=percentile(EstAvailableBandwidthKBps,90),BWP50=percentile(EstAvailableBandwidthKBps,50),BWP10=percentile(EstAvailableBandwidthKBps,10) by bin(TimeGenerated,10m)
| render timechart

查找每个连接的往返时间和带宽:

// RTT and BW Per Connection Summary
// Returns P90 Round Trip Time (ms) and Bandwidth (KBps) per connection with connection details.
WVDConnectionNetworkData
| summarize RTTP90=percentile(EstRoundTripTimeInMs,90),BWP90=percentile(EstAvailableBandwidthKBps,90),StartTime=min(TimeGenerated), EndTime=max(TimeGenerated) by CorrelationId
| join kind=leftouter (
WVDConnections
| extend Protocol = iff(UdpUse in ("0","<>"),"TCP","UDP")
| distinct CorrelationId, SessionHostName, Protocol, ClientOS, ClientType, ClientVersion, ConnectionType, ResourceAlias, SessionHostSxSStackVersion, UserName
) on CorrelationId
| project CorrelationId, StartTime, EndTime, UserName, SessionHostName, RTTP90, BWP90, Protocol, ClientOS, ClientType, ClientVersion, ConnectionType, ResourceAlias, SessionHostSxSStackVersion

查询特定用户的数据

查找特定用户的带宽:

let user = "alias@domain";
WVDConnectionNetworkData
| join kind=leftouter (
    WVDConnections
    | distinct CorrelationId, UserName
) on CorrelationId
| where UserName == user
| project EstAvailableBandwidthKBps, TimeGenerated
| render columnchart  

查找特定用户的往返时间:

let user = "alias@domain";
WVDConnectionNetworkData
| join kind=leftouter (
WVDConnections
| distinct CorrelationId, UserName
) on CorrelationId
| where UserName == user
| project EstRoundTripTimeInMs, TimeGenerated
| render columnchart  

查找往返时间最多的前 10 个用户:

WVDConnectionNetworkData
| join kind=leftouter (
    WVDConnections
    | distinct CorrelationId, UserName
) on CorrelationId
| summarize AvgRTT=avg(EstRoundTripTimeInMs),RTT_P95=percentile(EstRoundTripTimeInMs,95) by UserName
| top 10 by AvgRTT desc

查找带宽最低的 10 个用户:

WVDConnectionNetworkData
| join kind=leftouter (
    WVDConnections
    | distinct CorrelationId, UserName
) on CorrelationId
| summarize AvgBW=avg(EstAvailableBandwidthKBps),BW_P95=percentile(EstAvailableBandwidthKBps,95) by UserName
| top 10 by AvgBW asc