可观测性的 AI-Ready 之路
AI-Ready
当前,任何方向要实现智能化,首先要实现AI-Ready,已是共识。
AI-Ready 指企业或组织在数据、技术、流程等方面具备支撑人工智能应用落地的综合能力,核心在于数据治理与业务场景深度融合。(这部分是问AI得出的,非常准确)
本文介绍一种可观测性数据达到AI-Ready的方法和实践,以及对应的产品技术支持。
什么是可观测性
可观测性 是指通过系统外部输出来理解其内部状态的能力,其三大支柱数据为:
- 指标: 反映系统性能与状态的数值度量(如QPS、错误率)。
- 日志: 记录系统运行时的记录和上下文。
- 链路: 追踪一个请求在分布式系统中流经的全部路径。
OpenTelemetry是CNCF下的标准化项目,旨在统一可观测性数据的采集与格式,是事实上的行业标准。
可观测性智能化的Level
可观测性产品引入AI,可以在很多层面上实现智能化,综合业界目前的实践,可以分为4个等级。
等级 | 范围 | 能力描述 | 举例 |
---|---|---|---|
L1 | 单点 | 智能化解读单点的文本或信息 | 针对日志原文进行AI解读 |
L2 | 多点 | 智能化分析解读多个相关的信息 | 针对一批告警进行分析,找出关键告警 |
L3 | 线性 | 智能化分析某个workflow或SOP | 针对某个分析流程,由AI自动分析 |
L4 | 立体 | 系统级智能分析、知识推理 | AI 从全局数据和信息中自主分析、定位根因 |
可观测性的 AI-Ready 即为达到L4等级智能所做的建设工作。
可观测性数据达到AI-Ready的条件
可观测性数据的AI-Ready,至少需要满足以下三大条件:
- 条件一:AI 能够理解你的系统:用观测数据构建企业IT系统的知识图谱。
- 条件二:AI 能够查询你的数据:分析过程必然需要查询数据,数据通道的权限和查询理解、能力是否为具备。
- 条件三:AI 具备业务和行业的知识基础:观测数据可能是通用的,如何结合企业业务进行分析解读,需要具备业务和行业的基础知识。
满足了以上三大条件,AI 才能在此基础上对系统的状态和异常进行全面、系统的分析,得出准确的分析结论。
条件一:AI 能够理解你的系统
可观测性数据往往是海量的,一个指标系统通常有百万、千万、上亿的指标。一个日志系统动则有百T上P级的日志文本数据。一个链路系统存储数万、十万、百万的链路数据是常态。
AI 不可能快速消化这些海量数据来识别你的系统,即使从这些海量数据中学习到系统的结构,也需要存储为一个知识图谱,以作为每次分析的基础。
这样一个知识图谱是AI能够理解企业IT系统的关键,一个IT系统的知识图谱具体应包括:
- 观测对象的描述:首先,需要将IT系统抽象描述为观测对象。如网络设备、专线、存储、MySQL/Redis等标准组件、容器服务、微服务、功能接口等。
- 观测对象的属性:如名称、标签、相关联的观测数据。如系统的下单接口是一个观测对象,相应的关联观测数据包括实时的流程、成功率、响应时间,以及对应的日志、链路数据等。
- 观测对象的状态:基于观测数据量化的资产健康状态,标识资产当前的运行状态是否正常。如下单接口的请求成功率低于99.9%或响应时间高于100ms定义为异常,否则正常。
- 观测对象的依赖:层级依赖、调用依赖等。如一般情况下,网络的异常一定影响上层的组件、微服务、功能接口。组件的异常也一定影响上层调用它的微服务、功能接口。
需要重点说明,观测对象不应是一个具体的指标,如cpu使用率、数据库慢查询数量等,而应着眼于“对象”,指标是对象的属性之一。
知识图谱的建设过程,一定程度上也是IT系统软硬件资产的盘点过程。
条件二:AI 能够查询你的数据
AI 的分析过程中一定涉及到按需查询观测对象的观测数据,比如发现一个微服务异常,可能需要查询该微服务的请求量/成功率/响应时间或输出的具体日志信息等等。
AI 是否能够获得或查询到相关的观测数据,决定了AI是否能够完成整个智能分析过程。
满足这个条件,则需要打通并管理好企业内部所有观测数据的查询通道,现实数据的按需查询和权限管理。
这里有三种常见的方法:
- 从零开始:从零开始或推倒重来,建设一套完整的观测系统。一般适合从零开始建设观测系统的企业。
- 同步转储:将不同观测系统的数据转储到一个系统,集中管理和使用。业界较为多见的思路。
- 集成打通:将不同观测系统的数据查询集成到一个系统,按需通过API调用查询数据。业界不常见但其实最为简便有效的路径。
条件三:AI 具备业务和行业的知识基础
企业的业务往往有一定的个性化和行业的特色,一个IT系统上支撑着一个怎样的系统,AI 分析的方向是否需要有补充的知识和侧重?这些信息需要有途径提供给AI,作为AI分析数据基础的一部分。
当前这个方向有相对成熟的RAG(Retrieval-augmented Generation)技术可以实现,但在具体的观测产品中,需要有相应的功能支持。
Flashcat的AI-Ready实践
Flashcat 是基于开源夜莺(Nightingale)实现的统一可观测性产品,包括完整的指标、日志、链路、事件维度的观测能力。Flashcat 面向稳定性保障场景进行了增强,帮助用户快速发现故障,定位故障,是企业保障服务稳定运行的支撑平台。
一、让AI理解你的系统 - 灭火图
灭火图就是Flashcat系统中的IT系统知识图谱。
灭火图设计实现的初衷是为了加速人工理解和分析系统,但进入AI时代,发现灭火图可以完美的成为AI理解系统的基础。
灭火图的核心是通过规则,将IT系统中的观测对象映射并生成为具体的卡片/节点,通过指标和条件触发卡片的飘红/飘绿来标识观测对象的健康状态。同时Flaschat通过模板和映射关系,将观测数据和依赖精准的关联到观测对象上。
当出现问题时,用户只需要从异常对象(卡片/节点)下钻点击即可完成所有相关路径和数据的遍历分析,而不用在各个观测系统间来回切换,也不用关心数据来自哪个观测系统。
二、让AI查询你的数据 - 数据集成
Flashcat具备从零开始建设一整套观测体系的能力,但结合当前国内的实际现状,Flashcat的用户多采用数据集成的方案。
Flashcat的数据集成功能不转储数据,而是和当前市面上常见的开源/商业/公有云观测系统进行API层面的打通(不做数据的同步和转移存储)。
观测系统在Flashcat集成后会生成一个名称(可自定义),Flashcat上层产品可通过对这个数据源名称的引用来完成诸如告警配置、仪表盘配置、数据查询、权限管理等可观测性系统常见的操作。
通过数据集成方案,Flashcat实现了对所有可观测性数据通道的打通和管理。
三、让AI获取业务/行业知识 - FlashAI知识库
Flashcat的AI产品叫做FlashAI,FlashAI对业务/行业知识的输入有3个途径:
- RAG学习:FlashAI能够通过RAG技术完成对Flashcat产品和可观测性及稳定性保障相关知识文档的学习,在企业部署Flashcat时,将这部分模型数据一并部署到环境中。
- 知识库按需输入:FlashAI提供了自定义创建知识库的能力,作为FlashAI分析时的知识输入。后续还将实现和企业内部文档系统的直接集成。
- 动态交互输入:和常见的大模型产品一样,FlashAI提供了和大模型交互的对话框,可以灵活的补充或修正AI的输出。
FlashAI 对以上信息完成预处理和规范后,将把信息提交给企业的大模型(通过API),完成最后的分析输出。
效果
通过以上三步的实现,Flashcat具备了为AI提供理解IT系统的知识图谱、提供了观测数据的查询通道、提供了补充业务信息的能力。实践中,FlashAI已具备达成L4级立体分析的能力,在内部的放火系统中,FlashAI能够重复正确的指出系统异常的根因,并在部分用户的生产环境中得到了验证。
FlashAI发布的时间不长,但相关的思路和效果得到很多企业用户的认同,已在多个用户的实际生产环境中持续验证和打磨中。
总结:数据建设是智能化的核心,大模型是智能化的催化剂
最后提一下AI应用领域目前炙手可热的公司Palantir。
Palantir通过本体论(Ontology)的思想,将现实世界映射为可计算的信息单元和知识图谱,最后加上AI的分析能力,实现了在政府决策、军事指挥、金融风控等领域的巨大实际价值输出。Palantir的本体论所强调的不是AI而是前面的数据建模过程。Flashcat的智能化思路与Palantir的核心思路有很大的相似性,通过对比,我们进一步增强了对Flashcat智能化演进方向的信心。
总结起来,在可观测性实现智能化的路上,我们首先要重视数据建设工作,寻找合适的产品和技术来支持可观测性数据建设,以达到AI-Ready状态。在此基础上加上大模型作为最后一公里的催化剂,才能实现智能化的真正飞跃。