离线是一个判断而不是事实
设备没有上报,原因可能是关机、断网、休眠、卡停机或服务端连接中断。离线判定因此是一组信号加阈值的组合:连接层看保活是否超时,应用层看距最后一条有效数据的时间,网络层参考卡与链路状态。阈值必须明显大于正常上报间隔,否则处于省电模式的设备会被反复误判。
判据与误判风险
| 判据 | 含义 | 误判风险 |
|---|---|---|
| 保活超时 | 连接层未收到报文 | 设备使用省电模式时连接可能已被释放 |
| 最后上报时间 | 距最近一次有效数据的时间 | 上报周期长或采用变化上报时容易误判 |
| 连接状态 | 平台侧会话是否存在 | 服务端重启会清空连接状态 |
| 卡与链路状态 | 网络侧是否可达 | 卡停机与设备故障难以区分 |
| 应用层心跳 | 业务级周期性上报 | 最贴近业务状态,但增加流量与耗电 |
典型使用场景
- 运维告警:设备长时间无数据时生成工单
- 状态展示:界面区分在线、静默与确认离线三种状态
- 数据质量判断:离线期间的数据缺口需要标记,避免图表误导
- 成本分摊与计费:连续离线设备需要人工核实,避免继续计费
建议把判定分为「静默」与「确认离线」两级:前者是超过一定时长无数据,后者是超过更长时长或多层信号同时异常,这样告警噪声和漏报都能控制。
离线状态必须联动下游流程:如果资产状态、计费与工单系统继续使用过期状态,问题会在业务侧以更难定位的形式暴露。
状态机设计
建议把设备状态设计成有限状态机:在线、静默、确认离线、已停用,每种迁移都有明确的进入与退出条件,避免用布尔量表达多种真实情况。