如何将“智能巡检”嵌入“业务系统”中?

1,305 阅读5分钟

简介: 智能巡检借助强大的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如下

not STATUS: 200 |SELECT   __time__ - __time__ % 60 AS time,
         method,
         status,
         Count(*) AS num
FROM     log
GROUP BY time,
         method,
         status limit 100000

我们【智能异常检测】App中完成作业的配置。入口地址 sls.console.aliyun.com/lognext/pro…

结果说明

通过上述配置,我们得到了一个【智能时序巡检】任务,我们根据下面的结果,介绍下截图中各部分的含义:

  • 【巡检实体数量】:当前任务中一共包含了多少个观测对象
  • 【巡检指标数量】:当前任务中每个观测对象的观测维度
  • 【实体信息列表】:当前任务中全部参与巡检的观测对象,且给每个对象提供一个唯一编码
  • 【异常事件列表】:当前选中的实体,在给定的时间窗口中,给定的过滤条件下的异常分数和异常类型

上述截图中的可视化信息均来自对应的Project下面的LogStore【internal-ml-log】中,关于这个logstore中存储的数据的详细说明,可以参考我们的官网文档。help.aliyun.com/document_de…

告警使用

您可以通过在【巡检任务】创建的最后一步中,配置多种消息发送逻辑

  • 钉钉-自定义
  • 事件总线(EventBridge)
  • 函数计算(FC)

通过SDK/钉钉发送消息

这里面的详细配置逻辑以及解释不在赘述,更多信息可以参考这个链接:developer.aliyun.com/article/851… 里面较为详细的介绍了在告警中您可以使用那些字段进行后续的操作和判别。当巡检任务发现一个异常时,会将具体的信息按照如下的模版推送到钉钉的webhook地址。

函数计算(FC)

关于配置函数计算去进行后续操作的部分细节可以参考 help.aliyun.com/practice_de…

这里我们简单的说在下一步的分析思路:

参考资料

原文链接:click.aliyun.com/m/100034811…

本文为阿里云原创内容,未经允许不得转载。