本文介绍基于消息队列RabbitMQ版当前日志快速查询TPS统计图表的方法。当您遇到TPS流量超限时,通过该方法可以及时查询秒级的TPS统计图表,帮助您高效识别出异常,保证业务正常运行。
背景信息
TPS统计的AMQP协议请求方法如下:
- ConnectionOpen、ChannelOpen
- QueueDeclare、QueueDelete、QueueBind、QueueUnbind
- ExchangeDeclare、ExchangeDelete
- ExchangeBind、ExchangeUnBind
- SendMessage、BasicConsume、BasicGet、BasicAck、BasicReject、BasicNack、BasicRecover
关于请求方法的详细描述,请参见请求方法。
操作步骤
设置查询的时间段,配置统计图表的属性,在搜索框输入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取值尽可能大。