Flashcat 产品介绍
Flashcat 是基于开源夜莺(Nightingale)实现的统一可观测性产品,针对稳定性保障场景做了大量的增强。
Flashcat 把可观测性领域的问题归类到三个层面分别解决:数据、平台、场景。
数据
同时提供All-in-One的数据采集方案,和对现有观测数据源的集成方案。
数据采集器为开源的Categraf,集成上百种采集插件,常见的资源、组件、程序都有完善的采集插件,能够开箱即用的完成数据采集。Categraf 也能够采集日志和链路数据,上报到Flashcat进行处理、计算和展示。
为避免企业内部重复采集数据,Flashcat 提供了数据集成的方案,可以对接目前业界公有云及开源的可观测系统,如prometheus、zabbix、Elasticsearch、skywalking、公有云监控、SLS、CLS等等。Flashcat中可直接使用数据源中的观测数据,避免数据重复建设带来的成本和落地难度。
平台
Flashcat在平台层面将可观测性的常用功能、公共功能都做全做好。主要包括采集端管理、指标/日志/链路数据管理、告警管理、仪表盘、拨测管理、网络探测、程序诊断、用户管理、权限管理等。
这些功能Flashcat都提供了API,用户可灵活调用以满足个性化场景的需求。同时,Flashcat在平台架构上实现了高可用,无单点,并针对IDC间远距离传输观测数据的场景支持了中心-边缘模式,以降低可观测系统的实现成本和使用成本,提升统一观测的体验。
场景
稳定性保障是可观测性最大的使用场景,针对这个场景Flashcat设计实现了北极星、灭火图、事件墙、日志分析等子系统,将大型服务的稳定性保障经验产品化,辅助并引导用户建设整个稳定性保障体系,加速服务故障的发现及定位。
Flashcat 的功能可以按 数据、平台、场景 划分为三个层次。
数据
数据层面,Flashcat 提供了 数据采集 和 数据集成 两种可选方案。
数据采集
Flashcat 开源了All-in-One的采集器Categraf,能够用一个采集器,采集各类观测对象的Metrics。包括常见的各类设备、主机、容器、平台、组件等。
Categraf 也能够采集Logging、Tracing数据,实现了统一采集。Categraf 采集的数据遵循Opentelemetry协议,指标数据完全兼容Prometheus生态。
为提升采集点的管理效率和体验,Flashcat 针对采集做了中心化的管理,可在中心端统一观测所有采集点并下发采集配置和指令。
数据集成
Flashcat 能够集成大部分常见的开源以及公有云观测系统,如Promtheus、Zabbix、ARMS、Elasticsearch、Skywalking、阿里云SLS、腾讯云CLS、ARMS-trace等。
无论是从零开始采集还是集成已有的观测数据源,在 Flashcat 平台都会对应生成一个数据源名称。可以在上层的数据查询、告警管理、仪表盘配置、灭火图建设、北极星建设等各处引用,实现核心功能的无差别使用。
通过Categraf从零开始采集数据,或是直接集成现有的数据源,用户可以根据需要并权衡成本和数据的规范性,在 Flashcat 平台灵活选择。
平台
Flashcat 面向研发和运维建设了统一的可观测平台,将可观测平台的常用功能、通用功能都做全做好,侧重观测平台的工具属性。同时,Flashcat 在架构层面做到高可用、可伸缩。
常用功能
可观测平台的常用功能和核心功能包括基本的数据查询、告警管理、仪表盘配置等。
其中大量的功能开源夜莺已经具备,并得到了广大开源用户的使用和打磨。Flashcat 在夜莺的基础上进一步做了增强和丰富,如日志告警、智能告警、服务拨测、网络探测、程序诊断等。并着重考虑和设计了各个功能的关联,形成一个一体化完备的观测平台。
通用功能
除了常用功能,如用户管理、团队管理、权限管理、业务组管理等通用功能,Flashcat也在夜莺的基础上进行了完善,满足中大型企业的管理要求。
系统架构
Flashcat 在系统架构上实现了高可用无单点,并针对如出海等IDC分布广泛的场景实现了中心-边缘模式。
- 高可用架构
Flashcat 在架构的高可用和可伸缩性上做了全面的考虑。高可用和可伸缩的重点是存储,Flashcat 和夜莺一样,指标存储都采用了VictoriaMetrics,该存储是目前指标存储领域最可靠和可运维的选择。同时,Flashcat 自研和引入的组件,也都遵循高可用和可伸缩的架构设计原则。
- 中心-边缘模式
Flashcat 在架构上的另一个亮点是支持中心-边缘模式,解决大量观测数据需要在远程节点间传输,占用大量专线带宽、数据实时性差,并不利于统一管理的问题。
平台API
作为一个平台,Flashcat 的产品功能完全基于API实现,这些丰富的API可供用户自定义调度以灵活满足个性化场景的需求。
场景
稳定性保障是 Flashcat 针对的场景。Flashcat 总结大型互联网服务的稳定性保障实战经验,为该场景特别是故障处理过程做了细致的拆解和设计。
北极星
北极星系统,用以量化一个业务或系统的整体健康状态。典型的toC系统北极星指标如:实时在线用户数、实时订单量、实时支付量、实时流水等。
北极星指标配套有多个维度的异常检测方式,包括智能检测、同环比检测、数据中断检测、阈值条件,可以组合使用,确保指标的异常被准确及时的发现。
北极星智能学习指标趋势后,会预置相关参数,用户基本无需配置,如需调整参数也可原地操作。
北极星指标是最为核心的业务指标或系统的生死指标,因此是活动值守、日常巡检的重点。Flashcat 针对北极星做了一键生成大屏的功能,让高端大屏的配置简单到极致,方便活动值守时或日常投屏时使用。
北极星指标的数据来源可以是 Flashcat 采集或集成的绝大部分数据源,包括指标类和日志类,也可以是线上数据库中的一张表,如订单表。北极星可以从这些数据源中生产计算出所需要的时序指标。
此外北极星还有稳定性SLO管理、故障事件管理、下钻问题定位链路等功能,此处不展开。
灭火图
北极星发现 真·故障,灭火图则面向故障定位分析的过程。
灭火图首先将IT系统拆解为各类物理的或逻辑的“IT对象”,并通过全局观测IT对象的健康状态来确定系统的故障范围和故障点。
IT对象可以按类型分类,如基础设施、中间件、微服务/模块、功能/接口等。 基础设施可进一步拆分为网络设备、主机/虚机/容器、网络专线等。中间件如MySQL、Redis、Kafka等。微服务/模块即研发发布的代码,对应如Kubernetes的deployment、statefulset等。功能/接口则通常对应网关或模块的接口,如域名+地址。
以上IT对象的划分方式在灭火图中可以根据用户习惯的视角自定义,构建一个立体的线上资产及其健康度的视图。
下钻分析
灭火图是 Flashcat 串联融合各维度数据,加速故障定位的关键。
灭火图能够将相关的指标、日志、链路、事件、仪表盘等定位信息关联到相关的IT对象上,以便该对象异常时可快速下钻分析。
如通过观察灭火图的“着火点”(飘红),定位到某IT对象异常后,先看相应的Metrics,从异常点进一步点击下钻查看具体的日志,在日志中依据traceid或接口向后trace,在trace到的异常模块上跳转查看模块的Metrics或Logging信息。
灭火图的IT视图和关联信息都可以基于规则动态创建和更新,整个系统的IT对象、对象的健康状态、下钻信息都可以随着系统的迭代动态变化。灭火图是IT系统在可观测系统中动态的、立体的映射。
在故障定位环节,Flashcat 还有日志分析、特征分析、事件墙等分析工具,而在灭火图中这些信息都会按照故障定位的路径被串联融合,共同加速问题分析的效率。
场景观测
除了常见的分类视角,灭火图可以结合各行业的特点,设置符合行业场景的观测视角。
以连锁门店行业举例,可在灭火图中将一个个连锁门店作为观测对象,门店内部再将各类设备、程序等作为观测对象。通过层层汇总门店的健康信息,可以在首页纵览所有门店的健康状态,并快速下钻追查异常门店的异常对象和具体原因。
事件中心
观测系统完成建设后,下一步就是基于系统的告警和信息,将稳定性保障工作按流程驱动起来。
这个环节需要做的工作包括告警的聚合降噪、抑制屏蔽、值班排班、告警升级、信息统计等。专注在这个环节的工具是Flashduty。更多详情=>Flashduty
关于智能化
在人工智能发展日新月异的今天,如何通过人工智能来增强可观测系统的智能化是整个行业在探索的重点方向。
Flashcat 紧跟智能化发展的趋势,已在系统中引入了大模型的能力,目前具备了智能化交互、智能分析、智能巡检等能力,并把故障定位的准确性和智能化作为研究的重点。
我们深信人工智能在未来必将给可观测性方向带来颠覆性的影响。目前看人工智能要完全融入到可观测系统,需要解决两个重要问题,一是如何让人工智能理解所观测的系统或服务,一是人工智能需要无障碍的获取所观测系统的观测数据。
Flashcat 中面向观测对象(而非观测指标)的观测理念,正是人工智能理解所观测系统或服务的重要基础。而Flashcat 不断增强的集成已有观测系统的能力,也将为人工智能无障碍获取观测数据做好准备。
总结
以上是 Flashcat 在数据、平台、场景各层面的功能介绍。Flashcat 是从数据、平台到场景的一体化实现,既满足观测工具的使用要求,也有大型服务稳定性保障经验的沉淀,和面向特定行业的解决方案。这也是Flashcat区别于其它观测产品的最大不同。