elasticsearch 慢查询监控有哪些痛点和破解思路?

痛点

Es支持记录慢查询日志,本质上就是也就是统计查询时间,然后打日志,在使用一段时间后,我们发现:

1.查询时间不够准且不全 – 因为只是统计的服务端处理时间,且不包含聚合排序的时间,这叫不准,因为没有客户端的解析时间,网络时间,这叫不全。有同学去查一个有300字段的索引,结果他懵逼了。。。

2.如果查询语句很大,日志会被截取,没法定位查询语句。

3.Es没法直接杀死慢查询,也没法拒绝慢查询

解决思路

在客户端监控慢日志,具体做法

1.收集所有客户端操作日志,上报到Hbase做原始备份,然后根据响应时间&查询条数等条件,将疑似慢日志抽取到Mysql以供多维度查询。

2.采集维度 – 操作时间 & 总耗时 & 服务端处理时间 & 解析时间 & 接口名 & 响应条数 & 响应大小 & 客户端应用标识 & & 客户端Ip & 操作人 & 操作人Ip & 索引名 & 类型 & 输入参数 

3.根据客户单项目和调用接口等维度在客户端做降级。

posted on 2017-04-19 09:34  饭别稀  阅读(1602)  评论(0编辑  收藏  举报

导航