车场心跳数据缺失
1. 问题背景
车场心跳数据的原理:
未来保障车场稳定运行, 在车场定时(每30秒一次)上报心跳功能
saas 端订阅到实时心跳数据,可以简单判断车场业务正常;反之判断为车场业务出现异常
车场心跳数据在项目里面有2种方案:
边缘车行应用每30秒写边缘数据模型库, 实时同步到云端
边缘车行应用每30秒写云端的输数据模型库
1.1 方案一:边缘写数据实时同步到云端
1.2 方案二: 边缘应用直接写云端
1.3 简单判断方案的方法
上面2种方案在项目中都有使用, 因为边缘端数据模型(Heartbeat) 是通过官方云边协同组件实时上传到云端的数据模型(Heartbeat) , 所以方案一必须依赖云边协同组件;
简单判断是方案一还是方案二的方法:
如果安装部署了云边协同组件, 那就是方案一
如果未安装部署云边协同组件, 那就是方案二
2. 问题现象
车行saas 订阅不到每30秒一次的心跳数据,车行saas 会报警
3. 排查方案
3.1 方案一 车场心跳缺失
3.1.1 查看iot中台数据模型是否有心跳数据
SSH 物联网应用服务平台, 在数据集成里面找到车场心跳(Heartbeat)的模型表,点击管理查看最新的数据:
判断是否有最新的数据在每30秒成功上报一次
如果车场心跳每30秒上报心跳数据成功, 那局势AMQP 订阅不成功或者车行saas 端问题
这时需要先排查车行saas 日志, 查看AMQP 订阅是否异常
3.1.2 iot 中台没有实时更新
如果物联网应用服务平台数据集成里面的心跳数据没有实时更新, 那最大可能是边缘端数据没有更新
1). 登录物联网应用平台, 应用管理里面找到云边协同组件,找到enablemysql 节点,点击节点运维 :
2). 登录enablemysql 节点 SSH 客户端, 并连接mysql:
use iotx_dop_meta
select * from model_store_rel where model_id='Heartbeat';
车场心跳数据模型对应的 store_id: H7mjMa3k6TC233G72rl6N0sS
3). 找到edgedopdatamysql 节点,点击节点运维:
4). 进入SSH 客户端,登录mysql 数据库,查看车场心跳数据:
use iotx_data_runtime;
select * from H7mjMa3k6TC233G72rl6N0sS where is_deleted = 0 order by gmt_create desc limit 10;
5). 如果边缘端数据模型表里面也没有实时写入心跳数据, 此时就要查询边缘车行应用的日志,确认边缘车行应用调用API 写入边缘数据模型表的日志,是否有异常
3.2 方案二 车场心跳缺失
如果是边缘车行应用直接调用API 写云端的数据模型表, 先要判断iot中台是否有心跳数据
3.2.1 查看iot中台数据模型是否有心跳数据
SSH 物联网应用服务平台, 在数据集成里面找到车场心跳(Heartbeat)的模型表,点击管理查看最新的数据:
判断是否有最新的数据在每30秒成功上报一次
如果车场心跳每30秒上报心跳数据成功, 那局势AMQP 订阅不成功或者车行saas 端问题
这时需要先排查车行saas 日志, 查看AMQP 订阅是否异常
3.2.2 查看边缘端车行应用的日志
因为方案二是边缘车行应用直接写云端数据模型表, 如果云端的车场心跳没有实时写入成功;
直接查看边缘车行应用调用API 写数据的日志, 先找到异常日志