DeepFlow 技术文档:安装指南与使用说明
1. 项目概述
DeepFlow 是一个开源的云原生和AI应用深度可观测性平台,通过eBPF技术实现零代码数据采集,提供指标、分布式追踪、请求日志和函数性能分析能力。其核心特性包括:
- 全栈自动指标采集(AutoMetrics)
- 全链路分布式追踪(AutoTracing)
- 持续性能剖析(Continuous Profiling)
- 10倍于ClickHouse的存储查询性能
2. 安装指南
2.1 环境要求
- Kubernetes 集群(推荐1.20+版本)
- Linux 内核版本 ≥ 4.14(eBPF功能要求)
- 每个节点至少2核CPU和4GB内存
2.2 快速安装(社区版)
通过Helm一键部署DeepFlow社区版:
helm repo add deepflow https://deepflowio.github.io/deepflow
helm install deepflow -n deepflow deepflow/deepflow --create-namespace
2.3 组件说明
安装完成后会部署以下组件:
deepflow-agent:运行在每个节点的数据采集模块deepflow-server:集中式数据处理与查询服务deepflow-app:可选的前端控制台
3. 使用说明
3.1 基础功能
-
服务拓扑图:
- 自动生成跨语言服务的调用关系图
- 展示服务间延迟、错误率等黄金指标
-
分布式追踪:
- 自动捕获HTTP/gRPC/MySQL等协议请求链路
- 支持自定义Wasm插件解析私有协议
-
性能剖析:
- 低开销(1% CPU)采集OnCPU/OffCPU火焰图
- 自动关联追踪数据与性能剖析数据
3.2 数据查询
DeepFlow提供多种查询接口:
- PromQL:兼容Prometheus查询语法
- SQL:标准SQL语法查询所有观测数据
- OLTP API:面向应用程序的查询接口
4. API使用文档
4.1 数据写入API
POST /v1/query/
Content-Type: application/json
{
"sql": "SELECT * FROM flow_log LIMIT 10"
}
4.2 指标查询示例
获取服务错误率:
SELECT
service,
avg(error) as error_rate
FROM
application_metrics
WHERE
time > now() - 1h
GROUP BY
service
4.3 追踪数据查询
查询特定Trace的详细信息:
SELECT
span_id, parent_span_id, operation_name, duration
FROM
distributed_tracing
WHERE
trace_id = 'abc123'
5. 高级配置
5.1 自定义标签注入
在deepflow-agent配置中添加:
labels:
- key: env
value: production
- key: team
value: sre
5.2 私有协议解析
通过Wasm插件扩展协议支持:
- 使用Rust编写协议解析逻辑
- 编译为Wasm模块
- 挂载到
/etc/deepflow/wasm-plugins/目录
6. 常见问题
Q: eBPF功能无法正常加载
A: 检查内核版本并确认已开启CONFIG_DEBUG_INFO_BTF选项
Q: 数据查询延迟高
A: 增加deepflow-server的资源配置,建议至少8核CPU和32GB内存
Q: 如何集成Prometheus
A: 配置remote_write指向deepflow-server的写入端点
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



