5.3 KiB
简体中文 | English
什么是 HUATUO
HUATUO(华佗)是由滴滴开源并依托 CCF 开源发展委员会孵化的云原生操作系统可观测性项目,专注于为复杂云原生环境提供操作系统内核级深度观测能力。该项目基于 eBPF 技术,通过整合 kprobe、 tracepoint、 ftrace 等内核动态追踪技术,实现了多维度的内核观测能力:1. 更精细化的内核子系统埋点指标 Metric 2. 异常事件驱动的内核运行时上下文捕获 Events 3. 针对系统突发毛刺的自动追踪 AutoTracing、AutoProfiling。该项目逐步构建了完整的 Linux 内核深度可观测体系架构。目前,HUATUO 已在滴滴生产环境中实现规模化部署,在诸多故障场景中发挥关键作用,有效保障了云原生操作系统的高可用性和性能优化。通过持续的技术演进,希望 HUATUO 能够推动 eBPF 技术在云原生可观测领域向更细粒度、更低开销、更高时效性的方向发展。更多信息访问官网 https://huatuo.tech。
核心特性
- 低损耗内核全景观测:基于 BPF 技术,保持性能损耗小于1%的基准水位,实现对内存管理、CPU 调度、网络及块 IO 子系统等核心模块的精细化、全维度、全景观测与性能剖析。通过自适应采样机制,实现系统资源损耗与观测精度的动态平衡。
- 异常事件驱动诊断:构建基于异常事件驱动的运行时上下文捕获机制,聚焦内核异常与慢速路径的精准埋点。当发生缺页异常、调度延迟、锁竞争等关键事件时,自动触发调用链追踪,生成包含寄存器状态、堆栈轨迹及资源占用的图谱诊断信息。
- 全自动化追踪 AutoTracing:AutoTracing 模块采用启发式追踪算法,解决云原生复杂场景下的典型性能毛刺故障。针对 CPU idle 掉底,CPU sys 突增,IO 突增,loadavg 突增等棘手问题,实现自动化快照留存机制和根因分析。
- 持续性能剖析 Profiling:持续对操作系统内核,应用程序进行全方位性能剖析,涉及系统 CPU、内存、I/O、 锁、以及各种解释性编程语言,力助业务持续的优化迭代更新。该功能在哨兵压测,防火演练,重要节假日护堤等场景发挥关键作用。
- 分布式链路追踪 Tracing:以网络为中心的面向服务请求的分布式链路追踪,能够清晰的划分系统调用层级关系,节点关联关系,耗时记账等,支持在大规模分布式系统中的跨节点追踪,提供微服务调用的全景视图,保障系统在复杂场景下的稳定性。
- 开源技术生态融合:无缝对接主流开源可观测技术栈,如 Prometheus、Grafana、Pyroscope、Elasticsearch等。支持独立物理机和云原生部署,自动感知 K8S 容器资源/标签/注解,自动关联操作系统内核事件指标,消除数据孤岛。通过零侵扰、内核可编程方式兼容主流硬件平台和内核版本,确保其适应性、应用性。
快速上手
-
极速体验 如果你只关心底层原理,不关心存储、前端展示等,我们提供了编译好的镜像,已包含 HUATUO 底层运行的必要组件,直接运行即可:
$ docker run --privileged --network=host -v /sys:/sys -v /run:/run huatuo/huatuo-bamai:latest
-
快速搭建 如果你想更进一步了解 HUATUO 运行机制,架构设计等,可在本地很方便地搭建 HUATUO 完整运行的所有组件,我们提供容器镜像以及简单配置,方便用户开发者快速了解 HUATUO。
HUATUO 组件运行示意图
为快速搭建运行环境,我们提供一键运行的方式,该命令会启动 elasticsearch, prometheus, grafana 以及 huatuo-bamai 组件。命令执行成功后,打开浏览器访问 http://localhost:3000 即可浏览监控大盘。
$ docker compose --project-directory ./build/docker up
软件架构
开源协议
该项目采用 Apache License 2.0 协议开源,BPF 代码采用 GPL 协议。
内核版本
理论支持 4.18 之后的所有版本,主要测试内核、和操作系统发行版如下:
HUATUO | 内核版本 | 操作系统发行版 |
---|---|---|
1.0 | 4.18.x | Centos 8.5 |
1.0 | 5.10.x | OpenEuler 22.03/Anolis OS 8.10 |
1.0 | 6.6.x | OpenEuler 24.03/Anolis OS 23.3 |
1.0 | 6.8.x | Ubuntu 24.04 |
1.0 | 6.14.x | Fedora 42 |
文档
更多信息访问官网 https://huatuo.tech