DeepFlow 项目介绍
DeepFlow 是什么
DeepFlow 是一个开源项目,旨在为复杂的云原生和人工智能应用提供深度可观测性。它通过使用 eBPF 实现零代码的数据采集,包括指标、分布式追踪、请求日志和函数剖析,并进一步与智能编码结合,实现全栈关联与高效的数据获取。借助 DeepFlow,云原生和人工智能应用程序可以自动获得深度可观测性,从而免去了开发者不断进行代码插桩的繁重工作,并为 DevOps/SRE 团队提供从代码到基础设施的监控和诊断能力。
主要特性
-
通用地图:DeepFlow 利用 eBPF,为生产环境中的任何语言的应用服务、AI 服务和基础设施服务提供零代码的通用地图。除了分析常见协议外,还支持 Wasm 插件以处理私有协议。计算应用和基础设施的全栈黄金信号,从而轻松定位性能瓶颈。
-
分布式追踪:借助 eBPF,DeepFlow 提供了对任何语言应用和基础设施的零代码分布式追踪支持,包括网关、服务网格、数据库、消息队列、DNS 和网卡等,确保没有盲点。自动收集每个 Span 的全栈网络性能指标和文件 I/O 事件,迎来零插桩的分布式追踪新时代。
-
持续剖析:DeepFlow 以低于 1% 的成本收集剖析数据,实现对 OnCPU/OffCPU/GPU/内存/网络函数调用栈火焰图的绘制,定位业务函数、库和框架函数、运行时函数、共享库函数、内核函数和 CUDA 函数中的全栈性能瓶颈,并自动将它们关联到分布式追踪数据。
-
无缝集成:DeepFlow 可以作为 Prometheus、OpenTelemetry、SkyWalking 和 Pyroscope 的存储后端,还提供了SQL、PromQL 和 OLTP 等 API 用作流行可观测性堆栈中的数据源。它为所有可观测信号注入元标签,包括云资源、K8s 容器、K8s 标签、K8s 注释、CMDB 业务属性等,从而消除数据孤岛。
-
性能提升:借助智能编码,DeepFlow 在所有可观测性数据中注入标准化和预编码的元标签,与 ClickHouse 的 String 或 LowCard 方法相比,减少存储开销达 10 倍。自定义标签和可观测数据分开存储,使得标签适用于几乎无限的维度和基数,并提供了无与伦比的查询体验,如同大表体验。
版本及体验
DeepFlow 提供三个版本:
- DeepFlow 社区版:适合个人开发者
- DeepFlow 企业版:适合组织,助力团队协作
- DeepFlow 云版:SaaS 服务,目前处于测试版
DeepFlow 社区版包括企业版的核心组件。有关社区版的详细部署信息可查阅部署文档。此外,可以体验我们构建的完整DeepFlow 社区演示,登录账号/密码: deepflow/deepflow。
软件架构
DeepFlow 社区版由两个组件组成:代理(Agent)和服务器(Server)。每个 K8s 节点、旧主机和云主机上运行一个代理,负责所有应用进程的自动指标和自动追踪数据收集。服务器在 K8s 集群中运行,提供代理管理、标签注入、数据提取和查询服务。
联系我们
DeepFlow 以其强大的功能和简化的用户体验,为云原生和 AI 应用的可观测性提供了创新的解决方案,是开发者和企业实现高效监控和诊断的理想选择。