物联网平台的日志服务提供查看设备通信消息轨迹功能。您可根据TraceID或MessageId,追踪任意一条消息在物联网平台流转的全路径,还可根据出现的故障节点快速分析、定位问题。本文介绍查看消息轨迹的操作步骤。

操作步骤

  1. 登录物联网平台控制台
  2. 实例概览页面,找到对应的实例,单击实例进入实例详情页面。
    实例概览
  3. 在左侧导航栏,单击监控运维 > 日志服务,在云端运行日志页签,找到要查看消息轨迹的TraceIDMessageId
  4. 单击消息轨迹,在搜索框中,输入TraceIDMessageId
  5. 单击右侧搜索图标搜索,查看消息轨迹图。
    • 消息轨迹图由通信节点图标和连接线组成。图示显绿色,表示通信流成功;显红色,表示失败。
    • 鼠标指针移动到通信节点,可查看通信流时间、成功信息或失败原因等。
    例如,针对家庭温控器产品上报数据,设置了流转规则如下:

    处理数据的SQL语句:

    SELECT 
    items.temperature.value as temperature, 
    items.humidity.value as humidity,
    deviceName() as deviceName,
    timestamp() as time 
    FROM "/g***/TH_sensor/thing/event/property/post"

    转发temperaturehumiditydeviceNametime的数据:

    • 将数据插入到表格存储(Tablestore)中:主键设置为${deviceName}
    • 将数据发布到AMQP服务端订阅消费组:默认消费组
    • 将数据存储到实例内时间序列数据库中:metric数据类型选择数值型
    • 将数据插入到云数据库(RDS)中:数据库表中字段time已设置为主键自增长。
    • 将数据发布到另一个Topic中:/g***/TH_sensor/user/update

    具体操作,请参见设置数据流转规则

    如下图所示,设备上报数据后,查看消息轨迹,可发现在数据流转操作中:

    • 发布到另一个Topic(republish)、插入到表格存储(ots)和发布到AMQP服务端订阅消费组的消息处理成功。
    • 存储到实例内时间序列数据库(tsdb in vpc)因参数非法,及插入到云数据库(rds)中因云产品配置异常,都导致消息处理失败。
    消息示例

后续步骤

当您在通信轨迹中发现有处理失败节点时,需根据失败原因,进行排查和修复。排查方法,请参见云端运行日志中各错误码说明。

如上文示例轨迹图,您可前往规则引擎 > 云产品流转页面,找到ruleName对应的流转规则,针对失败的转发操作,进行修正:

  • 将数据存储到实例内时间序列数据库中:metric数据类型改为字符串
  • 将数据插入到云数据库(RDS)中:取消数据库表中字段time的主键设置。

如图所示,设备再次上报数据后,查看消息轨迹,消息处理成功。

消息轨迹