Azure SignalR 服务中的指标

SignalR 服务中的指标是 Azure Monitor 指标的一种实现。 了解 Azure Monitor 如何收集和显示指标有助于在 SignalR 服务中使用指标。 Azure SignalR 服务定义了一系列可用于设置警报的指标。

SignalR 服务指标

指标提供服务运行状态的见解。 可用的指标为:

指标 计价单位 建议的聚合类型 说明 维度
连接关闭计数 计数 Sum 由于各种原因而关闭的连接数;有关详细信息,请参阅“ConnectionCloseCategory”。 Endpoint、ConnectionCloseCategory
连接计数 计数 最大值或平均值 连接数。 终结点
连接打开计数 计数 Sum 打开的新连接计数。 终结点
连接配额利用率 百分比 最大值或平均值 与服务器建立的连接数百分比,相对于可用配额。 无维度
入站流量 字节 Sum 发往服务的入站流量大小。 无维度
消息计数 计数 Sum 消息总数。 无维度
出站流量 字节 Sum 来自服务的出站流量大小。 无维度
系统错误数 百分比 平均值 系统错误数百分比。 无维度
用户错误 百分比 平均值 用户错误数百分比。 无维度
服务器负载 百分比 最大值或平均值 服务器负载百分比。 无维度

注意

聚合类型“计数”是收到的采样数据的计数。 计数定义为常规指标聚合类型,不能从可用聚合类型列表中排除。 它通常对 SignalR 服务没有作用,但有时可用于检查采样数据是否已发送到指标。

指标维度

维度是一个名称/值对,其中包含用于描述指标值的附加数据。 有些指标没有维度;有些指标有多个维度。

以下两部分介绍 SignalR 服务指标中可用的维度。

终结点

描述连接的类型。 包括维度值:Client、Server 和 LiveTrace。

ConnectionCloseCategory

指出关闭连接的原因。 包括以下维度值。

说明
正常 连接正常关闭。
已中止 使用(消息计数/速率或连接)限制,根据“连接计数”和“消息计数”检查当前使用量和资源限制。
PingTimeout 连接 ping 超时。
NoAvailableServerConnection 无法建立客户端连接(甚至无法通过握手),因为没有可用的服务器连接。
InvokeUpstreamFailed 上游调用失败。
SlowClient 有过多未发送的消息在服务端排队。
HandshakeError 在握手阶段终止了连接,原因可能是远程方在未完成关闭握手的情况下关闭了 WebSocket 连接。 HandshakeError 是网络问题造成的。 检查浏览器设置,查看客户端是否能够创建 WebSocket 连接。
ServerConnectionNotFound 目标集线器服务器不可用。 无需采取任何改进措施,这是设计使然,在发生这种中断后应该可以恢复连接。
ServerConnectionClosed 客户端连接关闭,因为相应的服务器连接已断开。 当应用服务器使用 Azure SignalR 服务 SDK 时,它会在后台启动服务器与远程 Azure SignalR 服务的连接。 每个客户端与服务的连接与某个服务器连接相关联,以便在客户端与应用服务器之间路由流量。 服务器连接关闭后,它所服务的所有客户端连接都将关闭并出现 ServerConnectionDropped 消息。
ServiceTransientError 内部服务器错误。
BadRequest 错误的请求是由于集线器名称无效、有效负载错误或请求格式不当而造成的。
ClosedByAppServer 应用服务器要求服务关闭客户端。
ServiceReload 当连接由于内部服务组件重载而断开时触发了服务重载。 此事件并不表示故障,而是正常服务操作的一部分。
ServiceModeSwitched 切换服务模式(例如,从无服务器模式切换为默认模式)后关闭了连接。
未授权 连接未经授权。

有关详细信息,请参阅 Azure Monitor 中的多维指标

消息计数粒度

最小消息计数粒度为 2 KB 出站数据流量。 每 2 KB 是一个消息计数单位。 如果客户端在采样时段内发送一些小消息或不经常发送消息,其总数量少于一个单位,则消息计数为零 (0)。 即使发送了消息,计数也仍为零。 检查少量消息/消息大小的方法是使用指标“出站流量”,即发送的字节数。

系统错误和用户错误

“用户错误”和“系统错误”指标是失败的尝试操作(连接、发送消息等)数百分比。 系统错误是内部系统逻辑中的故障。 用户错误通常是应用程序错误,往往与网络有关。 通常,系统错误数百分比应该很低(接近于零)。

重要

在某些情况下,用户错误率非常高,尤其是在无服务器模式下。 在某些浏览器中,当用户关闭网页时,SignalR 客户端不会正常关闭。 连接可能保持打开状态但无响应,直到 SignalR 服务最终因超时而将其关闭。 超时关闭计入“用户错误”指标。

适合自动缩放的指标

注意

自动缩放只仅限高级层的功能。

“连接配额利用率”和“服务器负载”显示与当前分配的单位计数相比的利用率百分比或负载。 这些指标通常在自动缩放规则中使用。

例如,如果当前的分配为 1 个单位,而与服务建立了 750 个连接,则连接配额利用率为 750/1000 = 0.75。 服务器负载的计算方式与此类似,它使用计算容量的值。

若要详细了解自动缩放,请参阅自动缩放 Azure SignalR 服务的单位