背景
数据上报之后,日志存储是阿里云sls。为了方便更加直观的看到分析数据,有了数据之后,接下来要做的是两件事儿:
- 数据分析
- 数据可视化
前提
要做数据分析和数据可视化,前提条件是:
- 数据收集
- 添加索引
数据收集通过SDK在业务中使用,会上报到阿里云sls。添加索引是需要在阿里云的日志库里。
文档参考:如何配置索引_日志服务-阿里云帮助中心
数据分析
对收集的数据进行条件查询和聚合。 以PV\UV为例: PV: 页面访问量,即PageView,用户每次对网站的访问均被记录,用户对同一页面的多次访问,是访问量的累计,具体是指网站的是页面浏览量或者点击量。
UV:独立访问用户数,即Unique Visitor,访问网站的一台电脑客户端为一个访客。根据IP地址来区分访客数,在一段时间内重复访问,也算是一个UV;UV价值=销售额/访客数。意思是每位访客带来多少销售额;UV价值越大,产品越迎合消费者需求,只有一定的推广投入才会带来相对应的UV。
注意:必要的时候也需要先对日志进行加工处理。
查询语法
日志服务提供一套查询语法用于设置查询条件,帮助您更有效地查询日志。
SQL分析语法
文档参考: SQL分析语法与功能_日志服务-阿里云帮助中心
举个例子🌰
原始日志
PV
分析后的日志
图表呈现
语法格式
查询和分析语句之间用|隔开,左边是查询语句,右边是分析语句。具体语法见3.2, 3.3.
查询语句 | 分析语句
data.type: pageload | select split(json_extract_scalar(data, '$.title'), '-')[1] as pageTitle, count(*) as count GROUP BY pageTitle ORDER BY count DESC
👆这个的含义是,统计各个页面的访问次数,也就是所说的PV。
- 查询语句:过滤出data.type的值是pageload的数据。
- 分析语句: 从数据的data对象里面找到page_url字段作为pageurl列,统计所有日志条数作为count列,根据pageurl对数据进行分组。查询结果见3.4.2.
单页面各个按钮点击量
分析后日志
图表呈现
语法格式
data.type: click and data.page_url: "https://convoy-daily.xiaomantuo.cn/business/order" | select json_extract_scalar(data, '$.btn_name') as btnName, count(*) as count GROUP BY btnName ORDER BY count DESC
👆这个的含义是:
- 查询语句: 过滤出data.type等于click并且data.page_url是业务订单的日志。
- **分析语句:**找到data.btn_name作为一列且命名为btnName,获取总的日志条数,根据btnName聚合分组,把分组结果按照count列降序排列。
用户浏览器分布
* | select
concat(
json_extract_scalar(dim, '$.browser_name'),
json_extract_scalar(dim, '$.browser_version')
) as browser,
count(distinct use_name) as count
WHERE
tenant_id >= 700000
GROUP BY
browser
ORDER BY
count DESC
* | select
json_extract_scalar(dim, '$.browser_name') as browser,
count(distinct use_name) as count
WHERE
tenant_id >= 700000
GROUP BY
browser
ORDER BY
count DESC
数据可视化📈
对分析之后的数据,进行图形化的呈现。 目前日志服务支持的可视化方式有:
- 仪表盘: 日志服务提供的实时数据分析大盘。您可以在仪表盘查看多个基于查询与分析结果的统计图表。
- 统计图表: 统计图表是日志服务根据查询与分析语句渲染出的结果。日志服务提供表格、线图、柱状图等多种图表类型。
- 第三方可视化工具: 比如DataV、Grafana、Tableau等第三方可视化工具。
目前日志服务的可视化是通过仪表盘的方式呈现。
车队日志统计
更多的数据库查询分析语句,持续更新中,欢迎大家补充👏......