自动追踪
概述
自动追踪(AutoTracing) 是华佗内核监控系统的一项智能诊断功能。当系统出现特定性能异常或资源突变时,AutoTracing 会自动触发,实时捕获详细的现场信息(包括火焰图、进程上下文、调用栈、资源状态等),帮助运维和开发人员快速定位和分析问题,无需手动干预。该功能基于 eBPF 技术实现,具备低开销、高实时性的特点,适用于物理机和容器环境下的异常诊断场景。
支持的自动追踪类型
当前版本支持以下五种自动追踪功能:
| 追踪名称 | 核心功能 | 适用场景 |
|---|---|---|
| cpusys | 检测物理机 CPU sys(系统态)占用率突增,自动生成火焰图并提供进程上下文信息 | 解决系统负载异常导致的业务毛刺、延迟等问题 |
| cpuidle | 检测容器 CPU idle(空闲率)异常下降,自动生成火焰图并提供进程上下文信息 | 解决容器 CPU 使用率异常,帮助业务分析进程热点 |
| dload | 检测容器 loadavg(系统平均负载)突增,自动抓取容器内 D 状态进程的调用信息 | 解决 D 状态进程突增、资源不可用或锁被长期持有等问题 |
| memburst | 检测物理机内存突发分配行为,自动捕获进程内存使用状态 | 应对短时间内大量内存分配,可能引发直接回收或 OOM 的场景 |
| iotracing | 检测物理机磁盘 IO 延迟异常,自动捕获相关进程、容器、磁盘及文件信息 | 解决磁盘 IO 带宽打满、磁盘访问突增导致的应用请求延迟或系统性能抖动问题 |
功能特点
- 智能触发:根据预设阈值自动检测异常,无需人工配置触发条件。
- 丰富诊断信息:每次触发时自动采集火焰图、调用栈、进程/容器上下文、资源使用详情等关键数据。
- 低开销设计:采用 eBPF 技术,仅在异常发生时进行针对性采集,日常运行开销极低。
- 统一输出:所有追踪数据以标准化格式上报,便于查询、分析和告警整合。
使用建议
- cpusys 与 cpuidle 适合 CPU 相关性能毛刺的快速定位。
- dload 特别适用于 D 状态进程导致的“假死”或卡顿问题。
- memburst 可提前发现潜在的内存压力,避免 OOM 发生。
- iotracing 是排查磁盘 IO 瓶颈的首选工具。
通过 AutoTracing 功能,华佗能够实现从异常检测到现场保留的自动化闭环,大幅提升问题诊断效率。
页面反馈
此页面对您有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.