Logo
中文版
详情联系: neusar-support@reachauto.com
Monitor

1.Monitor简介

Monitor的功能主要是监控使用消息总线通信的所有节点信息,通过拓扑图及数据列表的形式将信息可视化展示,并支持对全部或指定的Topic进行消息的监控和记录。

2.使用流程及功能介绍

操作流程

​ 注:首次开启工具,建议按照图中数字的顺序进行监控和记录消息。

2.1 设置

  • 图中1处按钮功能
    • 表明当前处于监控页面
    • 点击可从其他页面跳转至监控页面
  • 监控配置将会被保存,无须每次都重新配置

​ 注:再次进入该页面或已经在Topology处进行了拓扑配置,若无修改,可跳过图中2步骤

2.1.1 配置节点信息

  • 白名单功能的下拉菜单中topic名称是在拓扑配置中(图中2处)设置的
  • 监控消息时,topic的报警阈值是在拓扑配置中(图中2处)设置的
  • 点击图中2处的按钮可以导入或手动配置拓扑节点信息(参见Topology.md)

2.1.2 配置监控选项

  • 点击图中3处按钮,弹出监控配置框体

    监控配置

    • 白名单:可以多选,列表为空时监控所有的topic,非空时只监控白名单中的topic
    • 是否录制:监控的同时将消息信息录制下来
      • 是否录制payload:录制消息信息时将payload的内容录制下来
      • 录制方式:
        • 远程录制:将消息信息录制到服务器部署的机器中
        • 本地录制:将消息信息录制到车载板端中
      • 包名称:录制的包的名称
      • 录制路径:录制的包文件夹位置,当选择本地录制时须手动填写路径

2.2 监控功能

2.2.1 监控页面入口

  • 功能:点击上图左侧边栏1处按钮进入监控页面

2.2.2 开始监控

  • 功能:点击上图4处开启监控按钮或者4处按钮开始监控
  • 逻辑:当页面处于正在监控时按钮不可点击

2.2.3 停止监控

  • 功能:开始监控后,点击上图4处按钮停止监控
  • 逻辑:当页面处于正在监控时按钮可点击

2.2.4 监控数据的拓扑图显示区

监控拓扑图

  • 功能:监控开启后显示所有节点相关的process,node,topic状态

​ 注:白名单:有白名单时只显示白名单内的节点

  • 逻辑:如果node和topic之间通信良好则连线为蓝色,否则为红色

​ 注:通信良好:消息的发送或接收频率大于等于1hz则认为是通信良好状态

2.2.5 监控数据的数据分析显示区

监控拓扑图

  • 状态统计:左侧显示当前每个process的名称,它的cpu占用率和内存使用情况,右侧显示选中的process内每个topic的状态信息
名称 解释
rx_subscriber 订阅总次数,目前仅libnet_channel使用
详细:
通信为tcp 或 udp时有效的数据
每个Reader调用Enable成功后(无论tcp、udp),rx_subscriber会加1,调用Disable后rx_unsubscriber次数会加1。记录的是同一个topic下所有Reader,Enable成功或Disable成功的次数,不会减少只会增加。
rx_unsubscriber 取消订阅总次数,目前仅libnet_channel使用<br/详细:
同上
rx_packets 收到的总消息数量
详细:
(无论tcp、udp、shm和intra)rx_packets是所有Reader接收到的包的总数量,rx_bytes 是所有Reader接收到的数据总大小。tx_packets是Writer发送包的总数量,tx_bytes是所有Writer发送数据的总大小。
例如,一个Writer对应两个Reader,Writer对每个Reader发送一个1k的包(rx_bytes与tx_byte代表实际发送的数据大小,包括后拼接的数据头信息,会比用户要发送的数据大一些,如发送1k时,用户实际发送的数据是小于1k的)。此时tx_packets与rx_packets为2,rx_bytes与tx_bytes为2k。(此计数中发送失败情况不会计数如tx_no_endpoint和tx_no_subscriber,但rx_no_buffer与rx_no_reader、tx_no_subscriber都属于接收包后判断异常,也会增加rx_packets和rx_bytes计数)
rx_bytes 收到的总字节数
详细:
同上
rx_multicast
rx_length_errors 接收消息长度错误的次数,目前仅libnet_channel使用
详细:
接收到的所有长度无效的包总数(payload数据小于sizeof(long) + sizeof(uint64_t) + sizeof(uint64_t),此payload包含后添加的数据头,无法调用接口实现,仅能通过伪造原始数据包发送构造、或者中间人攻击形式篡改构造。)
rx_no_buffer 接收过程中,Reader缓存不足时丢弃的消息数量
详细:
因消息频率过快,导致Reader接收队列中缓存的消息数(未处理完的消息数)大于队列设置的最大长度,使得最旧的未处理消息被移除时rx_no_buffer+1。
rx_no_reader 接收过程中,通道没有注册读者时丢弃的消息数量,目前仅libnet_channel、shm_channel使用
详细:
当reader消息接收到的同时(即writer消息发出后),reader调用了Disable。(需要刚好在这个时间差内,概率极低。)
tx_subscriber
tx_unsubscriber
tx_packets 发送的消息数量
详细:
见rx_packets
tx_bytes 发送的字节数
详细:
见rx_bytes
tx_multicast
tx_no_transmit
tx_length_errors
tx_no_channel
tx_no_subscriber 发送时,因为没有任何订阅者导致失败的消息数量
详细:
(无论tcp、udp、shm和intra)如果发送时因无Reader对象或Reader断开连接(网络原因等)导致发送失败的消息的数量(Writer调用send后无reader接收的消息数量)
tx_no_endpoint 发送过程中,已经连接的对端发送失败的消息数量,目前仅libnet_channel、shm_channel使用
详细:
tx_no_endpoint只是因网络异常等原因导致发送失败的计数。(概率极低,只有tcp会出现,刚好走到发送时,由于对端连接断开或网络异常等会计数。如提前监控到对端断开不会计数。)tx_no_subscriber为writer端发送消息后,没有reader端接收成功的计数(包含所有消息都发送失败场景包括因网络问题向reader端发送失败的情况)
如有两个reader,因网络原因断开,tx_no_endpoint计数为2(writer端只调用了一次send,但给两个reader发送消息失败。),但tx_no_subscriber计数为1
如因为无reader端enable。发送消息,tx_no_subscriber会增加1,tx_no_endpoint不会增加
tx_no_buffer 发送时过程中,申请内存失败,目前仅 shm_channel 使用
- -
  • 实时统计:

    topic统计

    • topic模式:以topic为主键,左侧显示每个topic的publisher、subscriber的数量,右侧则显示与当前topic相关的每个publisher、subscriber的信息,频率单位是hz
    • 如果有进程或者节点存在异常则名称变红进行提示

    process统计

    • process模式:以domain为主键,左侧显示每个domain的publisher、subscriber的数量,右侧显示当前domain下每个process的信息,以及每个process下,所有的handle的状态,频率单位是hz
    • 如果有进程或者节点存在异常则改变状态进行提示

事件查看

  • 事件查看:倒序显示自监控开始至今,所有的进程和节点的上线、下线,消息的断频、低频和复频事件,仅缓存最近的200条数据
    • 上线:新的process,node加入监控,或者下线的process,node又重新加入监控
    • 下线:在监控中的process,node结束运行或者失去连接
    • 断频:node和topic之间连接正常,但是1秒内没有任何的消息通信
    • 低频:node和topic之间连接正常,有消息的发送或接收,但是频率低于用户设置的预期阈值
    • 复频:node和topic之间连接正常,发生断频或低频后,消息收发频率重新恢复正常 ​注:对于用户没有拓扑配置的节点,只有断频和复频事件,没有低频事件

2.3 记录功能

  • 当监控配置勾选了录制功能,将在用户设置的文件夹中同步存储监控到的所有消息的信息