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

前提条件

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

背景信息

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

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

  • ConnectionOpenChannelOpen
  • QueueDeclareQueueDeleteQueueBindQueueUnbind
  • ExchangeDeclareExchangeDelete
  • ExchangeBindExchangeUnBind
  • SendMessageBasicConsumeBasicGetBasicAckBasicRejectBasicNackBasicRecover

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

操作步骤

设置查询的时间段,配置统计图表的属性,在搜索框输入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(microtime as bigint)/1000/1000) as time, COUNT(*) as count GROUP by time ORDER by time limit 90000000     
查询日志
说明
  • 其中BasicNack(multiple=false),计TPS=1,BasicNack(multiple=true),计TPS=N,因此通过SLS日志配置统计出来的TPS值会小于实际发起的请求量。
  • 查询TPS流量图时,如果客户端的流量比较大,建议将查询的时间范围限制在1小时或是更小的范围,然后在SQL语句后面加上 limit 90000000,或者 limit 取值尽可能大。