经常感叹公司的日志服务不好用吗?不实时、提个报表需求要层层审批还得等一周、可视化要自己搞、加个字段要跪求给解析…
是时候摆脱他们了,Now!
阿里云日志服务官网(https://www.aliyun.com/product/sls)
使用阿里云日志服务有什么优点?
1. 自定义打点字段
想加什么字段就加什么字段,然后在日志服务后台添加索引就可以了。当然,也不要乱加,以免自己绕晕了。
2. 支持实时查询
对于报警、定位 Bug,日志可实时查询是必须的!
3. 查询方便
可以按关键字模糊查询,也可以直接写 sql,可选任意时间范围,查询速度是嗖嗖的。常用的查询语句可以保存为“快速查询”
4. 可视化
可以创建仪表盘,支持多种 charts
5. 支持告警
可以自定义告警,支持短信、通知、钉钉等多种方式
6. API 查询
如果上述功能还不能满足需求,或者不能常驻电脑旁(目前日志服务后台只有 PC 版),可以通过 API 获取数据后自行实现
具体使用流程
1. 申请
阿里云->日志服务->Project管理 创建Project
选择所属地域,记一下,打点时需要
创建好后点Project名称进入Logstore列表 创建Logstore
因为我们是页面直接打点,这里要打开 WebTracking,其它默认即可
2. 打点
参考接入指南,这里我们选择Web Tracking
在步骤2 收集日志数据
中下载JS SDK(loghub-tracking.js),可以看一下代码,没几行,就一个意思,向某个地址发打点请求,可以根据自己的项目做下优化。1
2
3
4
5AliLogTracker(host,project,logstore) 初始化时的三个参数
host: 申请Project时选择的所属地域对应的host,我这里选择的是"华北2(北京)",对应的host为cn-beijing.log.aliyuncs.com,可以在[服务入口](https://help.aliyun.com/document_detail/29008.html)查询
project: Project 名
logstore: Logstore 名
那么就向 'http://' + project + '.' + host + '/logstores/' + logstore + '/track?APIVersion=0.6.0' 发请求就可以了
上面说了,打点时想加什么字段就加什么字段。字段示例:1
2
3
4
5
6
7type: 打点类型,取值范围(access/ajaxerrro/staticerror/jserror/...)
url: 页面地址
ua: 用户ua
request: type 为 ajaxerrro 时,request 为接口地址
ext: 扩展字段
mid: 用户标识ID
...
3. 查看原始日志
在 Logstore 列表中点“预览”
看到已经有日志进来
4. 查询分析
在 Logstore 列表中点“查询”,可以按关键字模糊查询,也可以直接写 sql 查询
先建立索引:
查询分析属性->设置 中添加“指定字段查询”
给打点字段 type/url/ua 等建立索引
具体的查询方式参考实时分析简介,这里举几个例子:1
2
3Android(打点中包含某字符串)
* and ua: Android(某字段中包含某字符串)
| SELECT type, COUNT(*) as count FROM log GROUP BY type(打点总数,按type归类)
常用的查询语句可以保存为“快速查询”
5. 可视化
举个例子,我们需要资源加载失败的实时数量,按分钟计:1
| SELECT date_format(t, '%H:%i:%s') as time, count FROM (SELECT date_trunc('minute', __time__) as t, COUNT(1) as count FROM log WHERE type='static' GROUP BY t ORDER BY t LIMIT 1000)
查询出结果后可以“添加到仪表盘”
将你关心的数据都添加到仪表盘,长这样:
还支持地图哦~
6. 告警
点chart右上角,可以新建告警
定义告警的阈值,执行间隔,通知方式等
后台告警历史
短信收到的告警
7. API查询
如果上述功能还不能满足需求,可以通过 API 获取数据后自行实现,参考API 参考
对于前端来说,token呀签名呀还是挺烦的。官方的PHP SDK为 https://github.com/aliyun/aliyun-log-php-sdk ,但并没有调通,最后自己摸索的,折腾了一天才跑通[汗]
小结
阿里的东西用着都挺舒服,现在有用到云服务器ECS、域名解析、日志服务,还有G2和antd,还有蚂蚁森林和蚂蚁庄园算不算。。