简介: 智能巡检借助强大的SLS“告警2.0”消息系统,可以很好的桥接很多内部和外部的系统(EventBridge、FC等),也可以借助SLS的SDK和自定义的函数去解决针对“告警结果”的下一步“分析任务”,从而更好的实现对于问题的排查和解决。
产品架构
智能异常分析应用围绕运维场景中的监控指标、程序日志、服务关系等核心要素展开,通过机器学习等手段产生异常事件,通过服务拓扑关联分析时序数据和事件,最终降低企业的运维复杂度,提高服务质量。产品架构图如下所示。
能力说明:
单个任务支持3K~5K个观测对象的单维度、多维度的异常检测
对于任务的检测结果而言,我们将异常分数和异常形态进行量化,便于进行后续的处理
对于超过0.75分数的异常点,我们将相关的信息(可视化的图)通过告警2.0推送到您的钉钉系统中去
对于全部的检测结果,我们将检测信息写入到当前的internal-ml-log中去,供您通过SDK去进行后续的集成
同时在我们的App的任务页面,我们支持了“标注反馈”功能,您可以对检测的结果进行相关的标注,提升模型的学习准确度
那么接下来,我们一起来看下,如何更好的将“巡检”能力嵌入到您的业务系统中去!
能力集成
智能巡检借助强大的SLS“告警2.0”消息系统,可以很好的桥接很多内部和外部的系统(EventBridge、FC等),也可以借助SLS的SDK和自定义的函数去解决针对“告警结果”的下一步“分析任务”,从而更好的实现对于问题的排查和解决。
任务创建
这里我们以一个SLS的自身的监控场景为例去看下改工具具体要怎么更好的使用。我们想明确下场景的问题:在LogStore中,通过对访问日志的拆解我们可以拿到如下结构化信息(见下图)。很多客户的实际业务场景也是类似的,在访问日志中记录着客户的访问行为,通过巡检当前业务的黄金指标,我们可以很好的知道目前服务中各个API接口的服务能力。
根据上述的结构,我们定义当前的需要巡检的黄金指标:
某集群各服务接口每分钟成功响应的次数
某集群各服务接口每分钟失败响应的次数
某集群各服务接口每分钟成功平均响应延时
某集群各服务接口每分钟失败平均响应延时
| SELECT time - time % 60 AS time,
method, Count(*) AS total, Count_if(status=200) AS n_succ, Sum( CASE WHEN status=200 THEN latency ELSE 0 END) / (1 + Count_if(status=200)) AS avg_succ_latency, Sum( CASE WHEN status!=200 THEN latency ELSE 0 END) / (1 + Count_if(status!=200)) AS avg_fail_latency
FROM log
GROUP BY time,method limit 100000
当然,我们还有另外一个形式的黄金指标,用来进行后续的监控,我们可以仅关注请求失败的接口中的数量的变化,具体的SQL如下