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

巴辉特 2024-09-01 00:00:00

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

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

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

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

大家都想结束这种混乱的局面,但是,又不想完全抛弃现有的建设,毕竟,抛弃现有的建设就意味着否定前人的决策和努力、意味着巨大的迁移成本、意味着各类团队合作的破事接踵而至。

不引入新的数据孤岛,能否用一个产品整合所有这些零散工具,提供更好的数据串联、可观测性能力,加速故障定位?答案是 Yes,给大家推荐一款这样的产品: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 这种产品思路,是市面上少见的,值得一试。你可以加我微信好友,预约 Flashcat 的产品讲解和演示,或者去我们官网,了解更多产品信息。我们的官网是:https://flashcat.cloud/

巴辉特微信

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