AI 和可观测性到底如何整合?

快猫运营团队 2025-04-17 07:10:57

这一波 AI 浪潮跟以往都不同,各个行业都看到了新的可能性,都想把 AI 引入自己的场景,看看能迸发什么样的助力。笔者所在的监控、可观测性领域,也有各种尝试,比如:

  • 通过 AI 翻译人类语言生成 SQL 或 Promql
  • 把告警事件扔给 AI,让 AI 生成泛泛的建议
  • 把一批日志或 Trace Span 扔给 AI,让 AI 做 Summary 或异常甄别

上面的思路确实可以放到开源夜莺项目(Nightingale)里,作为一款开源软件,在一些功能上做增强,确实会变得更性感。但这些增强都是面向“点”的,有没有面向“面”的更让人眼前一亮的思路呢?

在我们的夜莺商业版(即 Flashcat)里,近期做了一个尝试,这里把思路分享给大家,欢迎跟我们一起交流:https://flashcat.cloud/contact

核心思路

监控、可观测性确实在很多方面都能起到作用,但是可观测性的最重要应用场景还是“故障定位”,这也是大部分 SRE、DEV 最为关注的场景。

那我们就让 AI 帮我们做故障定位吧!

最好的方式,是把最近几个小时的可观测性数据全部扔给 AI,让 AI 自动分析,告诉我有哪些故障、影响面几何、根因在哪里,但是这个数据量巨大无比,算力需求也很大,时间也很长,真要等做到,估计黄花菜都凉了。

那退一步,有哪些问题、故障,这个信息我不用 AI 了,因为已经有各种成熟的告警引擎了,比如普通的阈值告警、同环比告警、数据缺失告警、Hot-Winters 等统计算法告警等。我直接把已经生成的告警交给 AI 来分析。

但是,这个分析仍然需要巨量的数据,怎么简化?如果能大概挑出跟这个故障相关的数据也行,把 AI 要分析的数据减少,只给它相对少量的、关联性强的数据,这就有了生产环境落地的可能性。

于是,可以总结,核心需要的是:

跟故障有关联性且较为完备的数据!

具体应该怎么落地?我以 Flashcat 举例,把整个流程给你串一遍,希望对你的思路有所帮助。

1. 集成大模型

为了做这么一个智能可观测性平台,首先毫无疑问的是你得把大模型集成进来,让平台知道如何调用大模型的 API:

可观测性集成大模型

2. 集成数据

监控、可观测性类的数据,可能来自很多数据源,很多公司都有很多套相关的系统。比如:

  • 指标数据可能来自 Zabbix、Prometheus、云监控
  • 日志数据可能来自 Elastic、ClickHouse、Splunk
  • 链路数据可能来自 Arms、Jaeger、Skywalking

AI + 可观测性,要想效果好,各类数据源集成少不了。给大家瞅一眼我们目前集成的数据源,有个体感:

可观测性数据源

如果你的数据不完备,作为乙方我们很乐意帮你一起建设😆,数据建设是典型的脏活累活,需要采集各类指标、日志、链路、事件,还要做标签增强、数据ETL等。不过建成之后,价值是很大滴。

3. 构建数据关联、做数据筛选

上面提到,因为数据量太大,我们只能挑选少量和故障关联性强的数据给到 AI。虽说在采集和 Pipeline 过程中可以打上一些关联标签,但未必足够。

巧了,我们之前做的“灭火图”产品,恰好可以在这里起到作用。灭火图就是对数据做了各类关联,而且灭火图里的数据都是重要数据,故障之后,根据灭火图可以很容易知道故障相关的重要数据是哪些。

可观测性数据串联

大家可以参考 这篇文章 或 Google 关键字“快猫星云 灭火图”了解相关设计思路,这里不再重复赘述。

4. AI 介入分析

有了上面的工作铺垫,AI 可以上场了。比如某个核心接口故障,让 AI 帮我们一键分析一下。AI 会利用数据关联性,找到相关的指标、日志、Span、事件等,挨个分析并最终输出结论。

AI分析效果

近期文章

SRETALK 主要交流 SRE、监控、可观测性、开源等话题,欢迎小伙伴们投稿哈,直接在公众号后台留言即可。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat