腾讯云CDN+日志服务统计URL未命中top10

2020-11-25 17:39:52 浏览数 (1)

由于cdn控制台没有miss排行,看到有日志分析检索,随手撸了一个

文章参考自官方文档,但无奈官方文档写的demo未联合说明怎么改,顺便mark下来做记录

使用场景:使用日志服务统计cdn访问不同状态码或命中情况

由于目前日志服务投递只能投递境内日志,境外域名访问情况无法获知

前提条件

  1. 开通日志服务
  2. CDN开启实时日志分析(需要申请)
  3. 配置cdn日志投递,参考文档
  4. 日志服务开通日志字段统计(需要提工单申请)
  5. 配置 url(访问的uri) 字段的字段统计,其他字段参考文档
cdn开启日志投递截图cdn开启日志投递截图
开启日志服务字段统计开启日志服务字段统计

检索语句

【筛选条件】| 【SQL语句】,需要注意 | 前后需要空格

代码语言:txt复制
hit:"miss" | select url as "t-url", count(url) as "count" group by url order by count desc limit 10
检索结果检索结果

筛选条件

hit字段只有命中和不命中两个状态(hit|miss)

代码语言:txt复制
hit:[miss|hit]

SQL语句

使用GROUP BY 聚合url和count两列,参考文档

代码语言:txt复制
GROUP BY [ 列名(KEY)| 别名 | 序号 ]

使用ORDER BY 根据count列降序,参考文档

代码语言:txt复制
ORDER BY [ 列名(KEY)| 别名 | 序号 ] DESC

使用 limit 压缩展示数,参考文档

代码语言:txt复制
LIMIT count

后续只需要添加到日志服务图表中即可保留其语句用作永久查询,不过顺便吐槽下,日志服务的图表真的不够好看

另外可以将过滤条件 hit 改到仪表盘进行过滤,可以让展示更加弹性(全部排行、未命中排行、命中排行等)

仪表盘仪表盘

多个域名统计

出于某种不可描述的原因,我们将多个域名投递到单个cls,只使用url是区分不出是那个域名的。所以继续撸完整

  • 配置多域名投递到同一个cls
  • 开始日志服务host字段的字段统计
cdn实时日志管理配置多域名同时投递cdn实时日志管理配置多域名同时投递

检索语句

根据上面单域名可得,多域名需要额外配置多一个字段host

代码语言:txt复制
hit:"miss" | select host as "t-host",url as "t-url", count(url) as count  group by url,host order by count desc limit 10

通过 group by聚合urlhost两个字段,在图表中展示就会将不同host的两个url给区分开来

测试结果测试结果

0 人点赞