https://github.com/ccfos/huatuo
HUATUO(华佗)是由滴滴开源并依托 CCF 开源发展委员会孵化的云原生操作系统可观测性项目,专注于为复杂云原生环境提供操作系统内核级深度观测能力。
https://github.com/ccfos/huatuo
autotracing ccf containers events k8s kernel linux metrics observability profiling time-series
Last synced: 10 months ago
JSON representation
HUATUO(华佗)是由滴滴开源并依托 CCF 开源发展委员会孵化的云原生操作系统可观测性项目,专注于为复杂云原生环境提供操作系统内核级深度观测能力。
- Host: GitHub
- URL: https://github.com/ccfos/huatuo
- Owner: ccfos
- License: apache-2.0
- Created: 2025-08-04T05:02:21.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-05T09:19:46.000Z (10 months ago)
- Last Synced: 2025-08-05T11:27:37.352Z (10 months ago)
- Topics: autotracing, ccf, containers, events, k8s, kernel, linux, metrics, observability, profiling, time-series
- Language: C
- Homepage: https://huatuo.tech/
- Size: 21.5 MB
- Stars: 38
- Watchers: 1
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS
- License: LICENSE
Awesome Lists containing this project
README
简体中文 | [English](./README_EN.md)

# 什么是 HUATUO
**HUATUO(华佗)**是由**滴滴**开源并依托 **CCF 开源发展技术委员会**孵化的云原生操作系统可观测性项目,专注于为复杂云原生环境提供操作系统内核级深度观测能力。该项目基于 [eBPF](https://docs.kernel.org/userspace-api/ebpf/syscall.html) 技术,通过整合 [kprobe](https://www.kernel.org/doc/html/latest/trace/kprobes.html)、 [tracepoint](https://www.kernel.org/doc/html/latest/trace/tracepoints.html)、 [ftrace](https://www.kernel.org/doc/html/latest/trace/ftrace.html) 等内核动态追踪技术,实现了多维度的内核观测能力:**1.** 更精细化的内核子系统埋点指标 Metric **2.** 异常事件驱动的内核运行时上下文捕获 Events **3.** 针对系统突发毛刺的自动追踪 AutoTracing、AutoProfiling。该项目逐步构建了完整的 Linux 内核深度可观测体系架构。目前,HUATUO 已在滴滴生产环境中实现规模化部署,在诸多故障场景中发挥关键作用,有效保障了云原生操作系统的高可用性和性能优化。通过持续的技术演进,希望 HUATUO 能够推动 eBPF 技术在云原生可观测领域向更细粒度、更低开销、更高时效性的方向发展。更多信息访问官网 [https://huatuo.tech](https://huatuo.tech/)。
# 核心特性
- **低损耗内核全景观测**:基于 BPF 技术,保持性能损耗小于1%的基准水位,实现对内存管理、CPU 调度、网络及块 IO 子系统等核心模块的精细化、全维度、全景观测。
- **异常事件驱动诊断**:构建基于异常事件驱动的运行时上下文捕获机制,聚焦内核异常与慢速路径的精准埋点。当发生缺页异常、调度延迟、锁竞争等关键事件时,自动触发追踪,生成包含寄存器状态、堆栈轨迹及资源占用的诊断信息。
- **全自动化追踪 AutoTracing**:采用启发式追踪算法,解决云原生复杂场景下的典型性能毛刺故障。针对 CPU idle 掉底,CPU sys 突增,IO 突增,Loadavg 突增等棘手问题,实现自动化快照留存机制和根因诊断。
- **持续性能剖析 Profiling**:持续对操作系统内核,应用程序进行全方位性能剖析,涉及 CPU、内存、I/O、 锁、以及各种解释性编程语言,力助业务持续的优化迭代更新。该特性在哨兵压测,放火演练,节假日护堤等场景发挥作用。
- **分布式链路追踪 Tracing**:以网络为中心的面向服务请求的分布式链路追踪,能够清晰的划分系统调用层级关系,节点关联关系,耗时记账等,支持在大规模分布式系统中的跨节点追踪,提供微服务调用的全景视图,保障系统在复杂场景下的稳定性。
- **开源技术生态融合**:无缝对接主流开源可观测技术栈,如 Prometheus、Grafana、Pyroscope、Elasticsearch等。支持独立物理机和云原生部署,自动感知 K8S 容器资源/标签/注解,自动关联操作系统内核事件指标,消除数据孤岛。通过零侵扰、内核可编程方式兼容主流硬件平台和内核版本,确保其适应性、应用性。
# 软件架构

# 快速上手
- **极速体验**
如果你只关心底层原理,不关心存储、前端展示等,我们提供了编译好的镜像,已包含 HUATUO 底层运行的必要组件,直接运行即可:
```bash
$ docker run --privileged --cgroupns=host --network=host -v /sys:/sys -v /run:/run huatuo/huatuo-bamai:latest
```
在另外一个终端获取指标:
```bash
$ curl -s localhost:19704/metrics
```
- **快速搭建**
如果你想更进一步了解 HUATUO 运行机制,架构设计等,可在本地很方便地搭建 HUATUO 完整运行的所有组件,我们提供容器镜像以及简单配置,方便用户开发者快速了解 HUATUO。

HUATUO 组件运行示意图
为快速搭建运行环境,我们提供一键运行的方式,该命令会启动 [elasticsearch](https://www.elastic.co), [prometheus](https://prometheus.io), [grafana](https://grafana.com) 以及 huatuo-bamai 组件。命令执行成功后,打开浏览器访问 [http://localhost:3000](http://localhost:3000) 即可浏览监控大盘。
```bash
$ docker compose --project-directory ./build/docker up
```
# 内核版本
理论支持 4.18 之后的所有版本,主要测试内核、和操作系统发行版如下:
| HUATUO | 内核版本 | 操作系统发行版 |
| :--- | :---- | :--- |
| 1.0 | 4.18.x | Centos 8.x |
| 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](https://huatuo.tech/)
# 联系我们
@[hao022](https://github.com/hao022)
@[nashuiliang](https://github.com/nashuiliang)
@[fanzu8](https://github.com/fanzuba)
# 开源协议
该项目采用 Apache License 2.0 协议开源,BPF 代码采用 GPL 协议。