统计分析功能可以从大量日志中筛选出满足条件的日志,进行统计计数或对数字类型字段求和、求平均值等,同时提供表格、折线图、饼图3种展现形式,可以帮助用户快速查看分析结果。(注意:只有结构化结构化的日志才支持统计分析操作,针对自定义业务日志需要先进行日志预处理操作。)
场景一:分析请求分布情况
以应用负载均衡7层访问日志中,将日志按照request_method分组,统计各个请求方法出现的次数。
select request_method,count(1) group by request_method
展示结果如下,在选定的时间内,POST方法有50条日志,GET方法有9条日志。
request_method | COUNT(1) |
---|---|
POST | 50 |
GET | 9 |
场景二:获取耗时较长时间的SQL执行语句句
在mysql的慢日志中,按照clienthost字段分组,统计query_time 大于1s 发生的次数。
select clienthost,count(1) where query_time > 1 group by clienthost
展示结果如下,在选定的时间内,192.168.0.29超过1秒的次数有16次,192.168.0.28超过1s的次数有4次。
clienthost | COUNT(1) |
---|---|
192.168.0.29 | 16 |
192.168.0.28 | 4 |
聚合统计的查询语法支持基本的SQL语法,说明如下:
select {selectExpr} where {whereExpr} goup by {fileds}
select count(1),max(score) group by username //正确 select city group by city //错误,未包含聚合函数
select count(1) where city= 'bj' and age = 18 //正确 select count(1) where city= 'bj' or age = 18 //错误,不支持or关键字
select count(1),max(score) where age > 5 and city = 'bj' group by username
select feild,count(1) group by pin
不支持order by 字段,也就是说统计结果不会按照某个字段排序。
支持limit, 最多只能返回100条统计结果。
不支持子查询。
需要补充说明的是,在自动生成的语句中每个字段都会用反引号`` ,这是防止查询语句中的某些字段是SQL的关键字。用户在手动数据字段时候,需注意适当加上反引号。
用户可以直接输入检索分析语法直接进行检索。同时我们提供快速分析功能, 自动填充检索分析语句,方便对SQL操作不熟悉的用户快速上手。在快速分析的字段栏,提供了过滤、统计和分组三个快捷图标,相关含义及功能如下:
类型 | 支持统计方式 |
---|---|
数字(int/ integer、double、Float) | 计数、最大值、最小值、平均值和求和 |
非数字(string、IP、time/datetime) | 计数 |
以负载均衡7层访问日志为例,分析不同请求方法出现的次数。