本文介绍如何使用微消息队列 MQTT 版的轨迹查询功能排查设备在线问题和消息收发问题。当设备的状态出现异常时,您可以使用设备轨迹查询功能,查询设备的连接历史;当消息的收发不符合预期时,您可以使用消息轨迹查询功能,查询消息的收发轨迹。

查询设备轨迹

  1. 登录微消息队列 MQTT 版控制台,在顶部菜单栏选择地域(Region),例如华东 1(杭州)
  2. 在左侧导航栏,单击轨迹查询
  3. 轨迹查询页面,单击目标实例,单击设备轨迹页签。
  4. 单击 Client ID 文本框。选择或直接输入您的 Client ID(Client ID 的拼接格式为 <groupid>@@@<deviceid>),在日期选择器设置时间范围,单击搜索
    说明 时间范围的最大跨度为 1 天。
    client_track
    字段 说明
    时间 动作发生的日期时间。
    连接 ID 连接标识。
    动作
    • connect:客户端请求与服务端连接。
    • close:TCP 连接断开。
    • disconnect:客户端请求断开与服务端的连接。
    说明
    • accepted:服务端接收客户端发起的连接请求。
    • not authorized:客户端访问的实例权限校验失败导致 TCP 连接断开。
    • clientId conflict:客户端标识冲突导致 TCP 连接断开。
    • topic auth failed:客户端访问的 Topic 资源权限校验失败导致 TCP 连接断开。
    • no heart:无心跳导致 TCP 连接断开。
    • closed by client:客户端异常导致 TCP 连接断开。
      说明 客户端没有发送 disconnect 报文。
    • disconnected by client:客户端请求断开连接。

查询消息轨迹

  1. 登录微消息队列 MQTT 版控制台,在顶部菜单栏选择地域,例如华东 1(杭州)
  2. 在左侧导航栏,单击轨迹查询
  3. 轨迹查询页面,单击目标实例,单击消息轨迹页签。
  4. 查询消息轨迹支持以下三种方式:
    • 组合查询

      根据 Client ID、Message ID 和时间范围,查询某条消息的发送轨迹和投递轨迹。

      单击组合查询,单击 Client ID 文本框,选择或输入您的 Client ID(Client ID 的拼接格式为 <groupid>@@@<deviceid>),单击 Message ID 文本框,选择或输入要查询的 Message ID,在时间选择器设置时间范围,单击搜索
      说明 时间范围的最大跨度为 1 天。
      msgtrack
    • 按 Client ID 查询

      根据 Client ID 和时间范围,查询某个客户端的消息列表。

      单击按 Client ID 查询,单击 Client ID 文本框,选择或输入您的 Client ID(Client ID 的拼接格式为 <groupid>@@@<deviceid>),在时间选择器设置时间范围,单击搜索
      说明 时间范围的最大跨度为 1 天。
      result
    • 按 Message ID 查询

      根据 Message ID 和时间范围,查询 Message ID 相同的消息的发送轨迹和投递轨迹。

      单击按 Message ID 查询,单击 Message ID 文本框,选择或输入要查询的 Message ID,在时间选择器设置时间范围,单击搜索
      说明 时间范围的最大跨度为 1 天。
      msgid_result
      字段 说明
      时间 消息发送或投递的日期时间。
      Client IDs 消息发送或投递的客户端的 ID。
      说明
      • MQTT 客户端发送:MQTT 客户端发送消息。
      • 推送至 MQTT 客户端:消息投递至 MQTT 客户端。
      • MQ 客户端发送消息队列 RocketMQ 版客户端发送消息。
      • 推送离线消息至 MQTT 客户端:离线消息投递至 MQTT 客户端。