“health” ping¶
此 ping 用于提供有关提交其他 ping 时出现的问题的数据。此 ping 最多每小时提交一次。在关闭时,会提交一个额外的 ping 以避免丢失已收集的数据。
此 ping 旨在非常小。客户端 ID 和配置文件组 ID 与此 ping 一起提交。
{
"type": "health", // type
... common ping data
"clientId": <UUID>, // client id, e.g.
// "c641eacf-c30c-4171-b403-f077724e848a"
"profileGroupId": <UUID>,
"payload": {
"os": {
"name": <string>, // OS name
"version": <string> // OS version
},
"reason": <string>, // When ping was triggered, e.g. "immediate" or "shutdown".
"pingDiscardedForSize": {
"main": <number>, // Amount of occurrences for a specific ping type.
"core": <number>
...
},
"sendFailure": {
"timeout": <number>, // Amount of occurrences for a specific failure.
"abort": <number>
...
}
}
}
发送行为¶
HealthPing.sys.mjs
跟踪几个问题
其他组装的 ping 的大小超过了 ping 限制。
发送其他 ping 时的故障。
记录数据后,将发送健康 ping
立即,原因是
immediate
,如果它是会话中的第一个 ping 或自上次提交以来已过去至少一小时。在 1 小时减去自上次提交以来经过的时间之后,原因是
delayed
,如果自上次提交以来不到一小时。在关闭时,原因是
shutdown
,使用 Ping 发送器,如果记录的数据不为空。
字段详细信息¶
reason¶
该 reason
字段包含有关提交“health” ping 的原因的信息。它目前支持三个原因
immediate:健康 ping 在记录故障后立即提交。
delayed:健康 ping 在延迟后提交。
shutdown:健康 ping 在关闭时提交。
pingDiscardedForSize¶
该 pingDiscardedForSize
字段包含有关大小超过 ping 大小限制 (1 MB) 的前十个 ping 的信息。此字段列出了每个 ping 类型丢弃的 ping 数量。
ping 类型“<unknown>”用于指示挂起的 ping 大小超过了限制。这是因为我们目前无法轻松获取挂起的 ping 类型。
此字段是可选的。
sendFailure¶
该 sendFailure
字段包含有关 ping 的信息,这些 ping 在发送时出现故障。此字段列出了每个 ping 发送失败类型失败的 ping 数量。
记录的故障类型为
“eOK” - 无错误。
“eRequest” - 在我们开始服务之前,请求中出现了一些错误。
“eUnreachable” - 远程服务器无法访问。
“eChannelOpen” - 当我们尝试打开通道时,连接失败。
“eRedirect” - 重定向时连接失败。
“abort” - XMLHttpRequest 所谓的“abort”(请参阅 MDN)
“timeout” - XMLHttpRequest 所谓的“timeout”(请参阅 MDN)
此字段是可选的。
注意
尽管 pingDiscardedForSize
和 sendFailure
字段都是可选的,但只有在其中一个字段不为空时才会提交健康 ping。