无需推翻既有的建设,这个可观测性产品思路清奇

市面上已经有很多开源、商业的可观测性类产品,比如 Zabbix、Prometheus、Nightingale、SigNoz、SkyWalking、ELK 等等,而且各类云厂商也会提供自己的可观测性套件,有些规划混乱的云厂商甚至会提供功能重叠的多套产品,这加剧了企业数据孤岛的现状。怎么解?

作者 巴辉特

企业可观测性建设最常见的问题,不是没有工具,而是工具太多、数据分散、排障路径断裂。真正务实的产品思路,不一定是推翻现有建设,而是在既有监控、日志、链路和事件系统之上做集成、关联和场景化排障。

核心要点

  • 企业通常已经有多套监控和可观测性工具,强行推倒重建会带来高迁移成本。
  • 数据孤岛的核心问题不是数据不存在,而是事故现场无法快速串联。
  • Flashcat 的思路是复用既有数据源,在其上构建统一驾驶舱、对象关系和故障定位路径。
  • 面向故障定位的可观测平台,应该帮助用户从业务异常下钻到服务、接口、日志、链路和依赖。
  • 产品价值不在“又多一个观测入口”,而在减少跨系统查找、复制字段和依赖个人经验的成本。

市面上已经有很多开源、商业的可观测性类产品,比如 Zabbix、Prometheus、Nightingale、SigNoz、SkyWalking、ELK 等等。各类云厂商也会提供自己的可观测性套件,有些云厂商甚至会提供功能重叠的多套产品,这进一步加剧了企业数据孤岛的现状。

来看两组数据:

两组数据感受真实的企业环境

据不完全统计,一个中型企业平均会使用 5 种以上的监控工具,一个大型企业平均会使用 10 种以上的监控工具。

云上的、云下的,开源的、自建的、商业的,网络的、服务器的、数据库的、中间件的、应用的、业务的,指标的、日志的、链路的、事件的。

大家都想结束这种混乱局面,但又不想完全抛弃现有建设。原因很现实:抛弃现有建设意味着否定前人的决策和投入,也意味着迁移成本、团队协作成本和短期风险都会上升。

所以问题应该换一种问法:

能不能不引入新的数据孤岛,而是用一个产品整合这些零散工具,提供更好的数据串联和故障定位能力?

Flashcat 的产品思路,就是围绕这个问题展开。

Flashcat产品架构图

Flashcat 是快猫星云以开源夜莺为内核打造的一体化观测平台,主要特点包括:

  • 可以直接接入各类监控系统作为数据源,无需推翻既有的建设,快速见效;
  • 如果某个方面的数据缺失,Flashcat 也可以提供补充。例如企业已有 Prometheus 指标体系,但缺少日志体系,Flashcat 可以提供日志采集、日志 ETL、日志存储、日志查询、日志告警等能力;
  • Flashcat 是“面向故障定位”设计的,沉淀了一些故障定位的方法论和场景,让用户用好各类观测数据,更快地定位故障;

前面两点较容易理解。第三点,来详细说明一下。

为什么只平铺数据不够?

很多观测平台会把功能菜单直接拆成指标、日志、链路追踪,甚至在指标里继续细分基础设施、应用、业务等。这种设计适合展示数据,但对故障定位不一定友好。

原因是:

  • 用户缺少总览驾驶舱的视角,没法从全局看到系统的健康度;
  • 数据之间缺少联动,需要用户脑子里有一个全局模型,才能把各类数据串联起来;
  • 查看某个服务健康状态时,用户可能要去指标系统查指标、去日志系统查索引、去链路系统查调用链;
  • 不同数据有不同检索方式和关键字,增加了认知负担;
  • 最终只有资深运维人员能熟练使用工具,新手和普通研发很难用好。

如果一个平台只是把已有工具入口搬到同一个页面,它没有真正解决事故现场的问题。事故现场需要的是路径:从业务异常开始,逐步下钻到具体服务、接口、日志、链路和依赖。

Flashcat 的做法,主打一个知识沉淀复用,平时用户定位故障时,先看什么数据,再看什么数据,都可以在 Flashcat 里沉淀下来。把各类数据有机整合呈现,比如:

  • 首先提供全局驾驶舱视角,让用户一目了然的看到各个业务的健康状态
  • 某个核心业务指标出问题了,比如订单量暴跌,用户可以在 Flashcat 里方便看到那些影响订单量的服务的健康状态
  • 某个服务的 5xx 错误率升高了,用户可以在 Flashcat 里方便看到该服务的哪个维度的请求 5xx 了,快速发现数据特征

一个业务故障的下钻示例

北极星-业务指标全局健康状态图

上图是 Flashcat 的北极星页面,可以清晰看到公司全局六大业务的健康状态,其中电商业务飘红了,有异常,点击详情进去,看看具体是哪个核心业务指标异常了。

Flashcat北极星业务详情

详情中可以看到,商品实时下单量这个关键业务指标暴跌,在某些时刻直接跌到0了,这是一个明显的故障,用户可以在暴跌的位置点击鼠标,就可以看到那些相关的服务是否健康,不健康的直接红色标注,用户就可以快速定位到故障服务,比如这里明显看到 电商->订单子系统 功能异常,用户可以直接点击进去,继续下钻排查:

Flashcat订单子系统的灭火图

上图是展示的订单子系统的各个功能,大部分功能都是绿色健康的(这里的颜色有很好的引导作用),只有一个“订单提交”的功能红色异常了,继续点击详情,可以看到这个功能的 Performance 数据的历史趋势图:

订单提交功能的历史趋势图

三张图,分别是关键的 RED 指标:请求量(Request)、成功率/错误率(Error)、Duration(延迟),这里很明显,故障原因就是这个接口的成功率时有掉底。继续点击掉底的位置,可以下钻查看掉底时的日志、链路数据等等,甚至可以对异常区间和正常区间进行自动比对:

特征分析

系统会分析两个时段各个维度的数据,把差异比较大的维度标注出来。当然,更常见的用法是根据异常指标查看相关日志,并且根据日志里的 traceId 查看链路数据:

指标串联日志和链路

上例中异常日志中带有链路 traceId,用户可以直接点击 trace 按钮从日志串联到链路数据:

链路数据

通过查看链路数据,最终我们发现,这个故障的根因是调用 10.201.0.210:6379 这个 Redis 失败了,抓紧去止损即可。

整个过程看起来要点击好几次,实际上每个地方都有颜色和图形引导,用户操作起来并不复杂,即便是新手,对整个系统不太熟悉,根据观测平台的颜色引导,也能快速定位故障。这,才是一个观测平台应该有的样子!

这种产品思路适合什么团队?

Flashcat 这种整合思路,尤其适合几类团队:

  1. 已经有 Prometheus、Zabbix、ELK、SkyWalking 等系统,但事故现场仍然要到处查数据。
  2. 想保留已有监控建设,不希望推倒重建。
  3. 业务复杂,故障影响需要从业务指标下钻到技术对象。
  4. 值班人员经验差异大,希望把资深人员的排障路径沉淀进平台。
  5. 希望未来做 AI 分析,但缺少统一上下文和对象关系。

FAQ

Q1:整合多数据源是不是等于替代现有工具?

A:不是。更务实的方式是复用现有工具和数据源,在其上建立统一入口、对象关系和排障路径。

Q2:为什么故障定位需要北极星和灭火图?

A:北极星提供业务健康入口,灭火图组织服务、接口、依赖和观测数据。二者结合,可以把“业务出问题”下钻到“哪个对象异常”。

Q3:为什么只做指标、日志、链路菜单不够?

A:菜单能展示数据,但不能自动提供排障路径。事故现场更需要跨数据类型的跳转、关联和上下文。

总结

企业可观测性建设的现实,不是从零开始,而是在多套已有系统上继续演进。Flashcat 的思路不是制造新的数据孤岛,而是把既有数据源组织成面向故障定位的统一平台。

当平台能从业务指标下钻到技术对象,再串联指标、日志、链路和依赖,普通研发和值班新人也能沿着清晰路径排查问题。这样的可观测性平台,才更接近企业真正需要的事故处理工具。

联系我们交流

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云