自动追踪

概述

自动追踪(AutoTracing) 是华佗内核监控系统的一项智能诊断功能。当系统出现特定性能异常或资源突变时,AutoTracing 会自动触发,实时捕获详细的现场信息(包括火焰图、进程上下文、调用栈、资源状态等),帮助运维和开发人员快速定位和分析问题,无需手动干预。该功能基于 eBPF 技术实现,具备低开销、高实时性的特点,适用于物理机和容器环境下的异常诊断场景。

支持的自动追踪类型

当前版本支持以下五种自动追踪功能:

追踪名称 核心功能 适用场景
cpusys 检测物理机 CPU sys(系统态)占用率突增,自动生成火焰图并提供进程上下文信息 解决系统负载异常导致的业务毛刺、延迟等问题
cpuidle 检测容器 CPU idle(空闲率)异常下降,自动生成火焰图并提供进程上下文信息 解决容器 CPU 使用率异常,帮助业务分析进程热点
dload 检测容器 loadavg(系统平均负载)突增,自动抓取容器内 D 状态进程的调用信息 解决 D 状态进程突增、资源不可用或锁被长期持有等问题
memburst 检测物理机内存突发分配行为,自动捕获进程内存使用状态 应对短时间内大量内存分配,可能引发直接回收或 OOM 的场景
iotracing 检测物理机磁盘 IO 延迟异常,自动捕获相关进程、容器、磁盘及文件信息 解决磁盘 IO 带宽打满、磁盘访问突增导致的应用请求延迟或系统性能抖动问题

功能特点

  • 智能触发:根据预设阈值自动检测异常,无需人工配置触发条件。
  • 丰富诊断信息:每次触发时自动采集火焰图、调用栈、进程/容器上下文、资源使用详情等关键数据。
  • 低开销设计:采用 eBPF 技术,仅在异常发生时进行针对性采集,日常运行开销极低。
  • 统一输出:所有追踪数据以标准化格式上报,便于查询、分析和告警整合。

使用建议

  • cpusyscpuidle 适合 CPU 相关性能毛刺的快速定位。
  • dload 特别适用于 D 状态进程导致的“假死”或卡顿问题。
  • memburst 可提前发现潜在的内存压力,避免 OOM 发生。
  • iotracing 是排查磁盘 IO 瓶颈的首选工具。

通过 AutoTracing 功能,华佗能够实现从异常检测到现场保留的自动化闭环,大幅提升问题诊断效率。


最后修改于 April 1, 2026: update download (518d0fe)