DeepFlow 路标
创建时间:2022-07-25 最近修改时间:2024-06-24
DeepFlow 目前(2023 年 9 月)已经迭代到了 v6.3.9,已支持的主要特性包括:
- Universal Map (AutoMetrics)
- 基于 cBPF 的 TCP 网络性能指标
- 基于 cBPF 的各类应用协议解析和性能分析能力
- 基于 eBPF tracepoint/kprobe 的各类应用协议解析和性能分析能力
- 基于 eBPF 的文件读写性能指标
- 基于 eBPF uprobe 的 Golang 应用 HTTP2、gRPC 协议解析和性能分析能力
- 基于 eBPF uprobe 的 Golang/openssl 应用 HTTPS 协议解析和性能分析能力
- 使用 Wasm、so 插件增强标准协议的解析能力,并可实现私有协议的解析
- Distributed Tracing (AutoTracing)
- 支持基于 eBPF 的零侵扰分布式追踪能力,支持任意应用同线程、Golang 应用跨协程调用链
- 使用 Wasm/so 插件提取业务流水号,实现仅依赖 cBPF 的零侵扰分布式追踪能力
- 支持解析请求中的 X-Request-ID 等字段追踪 ALB 前后的调用链
- 支持解析请求中的 MySQL Comment 字段追踪 MySQL 调用链
- 支持解析请求中的 TraceID/SpanID 等字段追踪跨线程的调用链
- 支持自动追踪网络转发路径,计算逐跳性能
- Continuous Profiling (AutoProfiling)
- 支持 eBPF 零侵扰采集 C/C++/Golang/Rust/Java 应用的 Profile 数据
- 支持 eBPF 零侵扰采集 On-CPU Profile
- AutoTagging & SmartEncoding
- 自动注入云资源标签、K8s 服务标签
- 自动注入 K8s Label/Annotation/Env 自定义标签
- 支持通过 API 注入 CMDB 中的业务标签
- 支持通过 Plugin 注入业务发布系统暴露的进程业务标签
- 高性能的 SmartEncoding 标签存储查询能力
- Integration
- 支持集成 Prometheus 和 Telegraf 的指标数据
- 支持集成 OpenTelemetry 和 SkyWalking 的追踪数据,并与 eBPF 追踪数据关联,实现全栈分布式追踪
- 支持集成 Pyroscope 的持续性能剖析数据
- 支持 SQL/PromQL API,支持作为 Grafana 的 DataSource
- 支持将分布式追踪数据展示在 Grafana Tempo 中
- 支持将追踪数据输出至 OpenTelemetry Collector
- 支持将追踪数据输出至 SkyWalking
作为规划,DeepFlow 未来还有很多激动人心的特性:
- Universal Map (AutoMetrics)
- 基于 TCP 流重组的增强协议解析能力
- 内置更多应用协议的解析能力,例如 Elasticsearch 等
- 支持更多类型的协议解析插件,例如 Lua 等
- 支持 eBPF 采集调用生命周期内的更多网络、系统性能指标
- Distributed Tracing (AutoTracing)
- 基于 eBPF 的零侵扰分布式追踪能力支持更多跨线程、Golang Channel 等复杂场景
- 根据 Span 实时聚合计算 Trace 拓扑图(同时保留调用链关系),以降低追踪数据的存储开销
- Continuous Profiling (AutoProfiling)
- 支持 eBPF 零侵扰采集更多类型的 Profile 数据,例如 Off-CPU、Memory 等
- 取消 Profile 数据对应用进程符号表的依赖
- 支持零侵扰采集 Node.js/Python/PHP/Ruby 应用的 Profile 数据
- AutoTagging & SmartEncoding
- 自动注入租户在云平台中录入的业务标签
- Integration
- 支持集成 Sentry RUM 数据源
- 支持集成 Promtail/Loki 日志数据源
- 支持将日志数据展示在 Grafana Loki GUI 中
- 支持作为 Prometheus Exporter 输出 eBPF 指标数据
- 支持将追踪数据输出至 Kafka