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 服务的单位