为什么我的设备数据没有出现
设备在发送事件,却什么也没有出现。在翻阅 Pod 日志之前,先看看平台拒绝了什么。平台在拒绝一个事件或无法存储它时,会留下一条简短记录,你的租户可以读取这些记录。
已提供。在控制台的 Monitor 部分打开摄取失败(Ingest failures),或在 event-management 的 GraphQL API 上查询 failedEvents 和 failedEventSummary。两者都需要 device:write(管理设备、因而能对拒绝采取行动的成员所持有的授权),而不是每个成员都拥有的只读基线;也不向访问范围仅限于部分客户的成员提供:被拒绝的事件常常指向一个并不存在的设备,因此不属于任何客户。
你看到的是什么
每一行是一个被拒绝的事件,按时间从新到旧:
| 列 | 含义 |
|---|---|
| 记录时间 | 平台记录该拒绝的时间,使用平台的时钟,而不是设备的时钟。 |
| 原因 | 为什么被拒绝,见下表。 |
| 设备令牌 | 发送方声称的令牌。它只是发送方的说法,并不证明该设备存在:对于未知设备,它在你的注册表中不对应任何东西。 |
| 平台的说明 | 平台自己的措辞,最长 512 字节。 |
| 另并入 | 同一设备、同一原因的更多记录被并入本行计数的数量,见洪泛上限。 |
这些行是一份报告,不是队列:不会重新发送任何内容,原始事件也不会存放在你租户的数据里。修复原因后,设备的下一批事件即被接受。
原因与处理
| 原因 | 发生了什么 | 检查什么 |
|---|---|---|
未知设备(DEVICE_NOT_FOUND) | 没有设备具有发送方给出的令牌。 | 注册该设备,或更正它发送的令牌。令牌不是设备的名称,也不是它的凭据,参见三种标识符。 |
凭据被拒绝(UNAUTHENTICATED) | 设备出示的凭据缺失或错误。 | 设备的凭据:是否已轮换、过期,或从未配置到设备上? |
不是此网关的设备(NOT_GATEWAY_CHILD) | 网关为一个未分配给它、或不存在的设备发布了事件。 | 设备的网关分配。 |
设备已禁用(DEVICE_DISABLED) | 设备存在,但已被禁用。 | 如非有意禁用,请启用它。 |
无法读取的消息(INVALID) | 消息完全无法解析。 | 设备发送的载荷格式。 |
平台错误(API_CALL_FAILED) | 事件所需的某个平台服务无法访问,或存储事件失败。 | 无法从设备一侧解决。请告知你的运维人员;细节在平台日志中,不会向你显示。 |
集成别名已变更(INTEGRATION_ALIAS_MISMATCH) | 某个集成的事件指向的设备,已不再持有匹配它时所用的别名。 | 设备在集成中的别名。 |
其他原因(UNKNOWN) | 当前版本未命名的原因。 | 该行带有原因代码,绝不会显示为其他原因。 |
如果表为空而数据仍然缺失,说明平台没有拒绝任何事件:请检查设备的连接、它的实时状态,以及事件是否到达了代理。
在设备页面上
如果某设备的事件在过去 24 小时内被拒绝,其详情页会提示,并附带指向该设备拒绝原因的链接。
洪泛上限
只要整个设备群中有一个凭据错误,每秒就可能有成千上万个事件被拒绝。如果全部保存,列表和它背后的存储都会失去用处。因此:
- 每个设备、每种原因每小时最多保留 10 条记录;更多的记录被计数到其中最新的一条上(另并入列);
- 每种原因跨所有设备每小时最多逐条列出 1,000 条记录。用捏造的令牌探测同样受此限制;其余记录并入一条标明“该原因的更多记录”的行。
原因标签上的总数包含所有被并入的记录。计数衡量的是量级,而不是审计:计数大约每秒写入一次,因此在数据库故障期间它们暂存于内存中,故障排除前重启平台会丢失这些计数。
保留多久
默认七天。运维人员通过 event-management 配置中的 lifecycle.failedEventRetentionDays 修改(0 表示无限期保留);它独立于管理遥测数据的 lifecycle.retentionDays。
对于平台归档了原始事件的情况,原始事件只会在平台失败流中保留到该流的大小上限将其滚动淘汰为止。原始事件已被淘汰的记录仍会列出,并说明原始事件已不再保留(API 中为 payloadStatus: EXPIRED)。这不是错误。有些记录从未有过原始事件:平台完全无法读取某条消息时,不会保留其任何内容,控制台会显示“未保留原始事件”(payloadStatus: NOT_RETAINED)。API 不会返回原始事件本身。
删除租户
这些记录随租户的其余数据一起被擦除。已删除的租户不会留下任何记录。
面向运维人员
当同一原因的拒绝速率持续 15 分钟超过每秒一条记录时,会触发 FailedEventsSustained。其依据的序列统计每一条记录,包括被洪泛上限并入的记录。参见可观测性和指标参考。