*|SELECT DATE_TRUNC('minute', __time__/1000) AStime, CAST(SUM(CASEWHEN Status =400THEN1ELSE0END) *100.00/COUNT(*) ASdouble) AS "错误占比(%)" WHERE Status !=200GROUPBYtimeORDERBYtime
CAST(SUM(CASE WHEN Status = 400 THEN 1 ELSE 0 END) * 100.00/COUNT(*) AS double)用于计算 400 错误占所有错误的比值,单位为百分比。
检索分析结果:
场景 3:分组统计错误数量
场景:按照用户分组,统计各个用户遇到的错误数,分析哪些用户受到的影响最大。
检索分析语句:
*|SELECT Account_id, COUNT(*) AS "错误数" WHERE Status !=200GROUPBY Account_id ORDERBY "错误数" DESC LIMIT 10
检索分析结果:
性能调优
通过分析系统运维日志掌握请求延时、慢请求、接口响应速度等信息,及时识别系统瓶颈,优化系统。
场景 1:分组统计平均延时和最大延时
场景:计算每小时内各个接口对应的请求平均延时和最大延时,从整体了解延时情况。
检索分析语句:
*|SELECT Action, AVG(ReqTime) AS "平均时延", MAX(ReqTime) AS "最大时延" WHERE Status =200GROUPBY Action
检索分析结果:
场景 2:筛选慢请求
场景:筛选当前 1 小时内的慢请求以及请求来源。
检索分析语句:
*|SELECT RemoteAddr, ReqID, ReqTime WHERE Status =200AND ReqTime >30000 LIMIT 10
其中:
WHERE Status = 200 AND ReqTime > 30000 用于筛选出请求时间大于 30000 微秒的成功请求。
检索分析结果:
场景 3:分析错误变化趋势
场景:分析用户查询接口的响应状态码,判断用户查询是否存在异常。
检索分析语句:
*|SELECT DATE_TRUNC('minute', __time__/1000) AStime, Status, COUNT(*) AS total WHERE Action ='SearchPlayerProfile'AND Status !=200GROUPBYtime, Status ORDERBY total