本文介绍基于 消息队列RabbitMQ版当前日志快速查询TPS统计图表的方法。当您遇到TPS流量超限时,通过该方法可以及时查询秒级的TPS统计图表,帮助您高效识别出异常,保证业务正常运行。

前提条件

登录消息队列RabbitMQ版控制台,将 消息队列RabbitMQ版实例的消息操作日志推送到日志服务。具体操作,请参见 配置消息日志

背景信息

当前云监控提供的图表是分钟级统计数据的平均值,无法展示秒级的TPS统计数据。消息队列RabbitMQ版的TPS统计了每秒Client主动发起的AMQP协议方法请求数量。

TPS统计的AMQP协议请求方法如下:

  • ConnectionOpen
  • ChannelOpen
  • QueueDeclare
  • QueueDelete
  • ExchangeDeclare
  • QueueBind
  • QueueUnbind
  • ExchangeBind
  • ExchangeUnBind
  • SendMessage
  • BasicConsume
  • BasicGet
  • BasicAck
  • BasicReject
  • BasicNack
  • BasicRecover

关于请求方法的详细描述,请参见协议请求方法

操作步骤

  1. 登录日志服务控制台,配置日志字段索引。
    具体操作,请参见配置索引。除自动生成的普通字段之外,还需手动添加 __tag__:__receive_time__ 字段,并设置别名为timestamp,如下图所示。配置日志索引
  2. 设置查询的时间段,配置统计图表的属性,在搜索框输入SLS分析语句,查询TPS统计图表。具体操作,请参见 查询和分析日志
    (Action : ConnectionOpen or Action : ChannelOpen or Action: ExchangeDeclare or Action: QueueBind or Action : QueueDeclare or Action : QueueDelete or Action : ExchangeDelete or Action : QueueUnBind or Action : ExchangeBind or Action : ExchangeUnBind or Action : BasicConsume or Action : BasicReject or Action : BasicRecover or Action : SendMessage or Action : BasicAck or Action : BasicNack or Action : BasicGet ) | select from_unixtime (cast(timestamp AS double)) as time, COUNT(*) as count GROUP by time ORDER by time limit 90000000     
    TPS统计图表
    说明
    • 其中BasicNack(multiple=false),计TPS=1,BasicNack(multiple=true),计TPS=N,因此通过SLS日志配置统计出来的TPS值会小于实际发起的请求量。
    • 查询TPS流量图时,如果客户端的流量比较大,建议将查询的时间范围限制在1小时或是更小的范围,然后在SQL语句后面加上 limit 90000000,或者 limit 取值尽可能大。