DeepFlow 用户指南
DeepFlow 提供了用于可视化网络和应用性能指标的 Grafana 监控面板,以及基于 eBPF 技术的应用自动追踪功能。 要访问 DeepFlow 的 Grafana 监控面板,您需要从 Marketplace 安装 DeepFlow 插件。 安装完成后,您可以通过安装过程中配置的 Ingress 访问 Grafana Web UI。 访问 Grafana Web UI 需要登录凭据。
有关使用 Grafana 监控面板的更多信息,请参阅 Grafana documentation。
登录
登录 Grafana Web UI 需要以下信息,这些信息在安装 DeepFlow 插件时配置:
- 用户名:Grafana Web 控制台的用户名。
- 密码:Grafana Web 控制台的密码。
首次登录后,强烈建议出于安全考虑更改密码。
使用监控面板
在 Grafana Web UI 中导航至 Dashboards 部分,即可访问 DeepFlow 提供的各种预配置监控面板。 监控面板分布在两个文件夹中:DeepFlow System 和 DeepFlow Template。
- DeepFlow System:该文件夹包含系统级监控面板,提供 DeepFlow 系统整体健康状况和性能的洞察。
- DeepFlow Templates:该文件夹包含应用级监控面板,可根据具体应用需求进行自定义。
DeepFlow System
该文件夹包含名为 DeepFlow Agent 的监控面板,提供部署了 DeepFlow 智能体节点的状态和性能信息。
关于网络可观测性,包含如下指标:
注意:标有 🔥 的面板表示可能存在需要关注的问题。
DeepFlow Templates
该文件夹包含多种监控面板,包括网络/L4 指标、应用/L7 指标和自动追踪监控面板。
以下是与网络可观测性相关的监控面板:
总之,DeepFlow 提供了一套全面的监控面板,用于监控和分析 Kubernetes Pod 及主机网络中的网络和应用性能。
- 以 Network 为前缀的监控面板提供 L4 级别指标,Application 前缀的则提供 L7 级别洞察。
- 名称中带有 Cloud 后缀或包含 Cloud Host 的监控面板聚焦主机网络,带有 K8s 后缀或无 Cloud 后缀的聚焦 Kubernetes Pod。
- 带有 Map 后缀的监控面板可视化网络或应用组件的拓扑结构。
- 名称中包含 Log 的监控面板展示网络流量或应用请求的详细日志。
- 名称中包含 Monitoring 的监控面板聚焦特定协议或服务,如 DNS、SQL、Redis 和 Dubbo。
- 分布式追踪监控面板提供应用请求的自动追踪功能。
分布式追踪
DeepFlow 的分布式追踪功能允许您追踪请求在应用中各服务和组件间的传播过程。 这有助于识别性能瓶颈、理解服务交互并优化应用性能。
面板
在分布式追踪监控面板中,您可以查看每个请求的详细信息,包括:
- 请求列表:所有被追踪请求的列表,包括其 ID、时间戳、持续时间和状态。
- 火焰图:请求调用栈的可视化表示,展示每个服务或组件的耗时。
您可以根据命名空间、工作负载、trace ID、span ID、请求资源和时间范围等多种条件过滤和搜索特定请求。 以下是请求列表示例:

点击某个请求可在火焰图中查看其详细追踪信息:

火焰图由多个条形块组成,每个块代表一个 span。 x 轴表示时间,y 轴表示调用栈深度。span 按调用顺序从上到下显示。
具体说明如下:
- 长度:沿 x 轴,表示 span 的执行时间,起止对应开始和结束时间。
- 服务列表:显示各服务消耗的延迟比例。点击某服务会高亮火焰图中对应的 span。
- 颜色:应用 span 和系统 span 使用每个服务独特的颜色;所有网络 span 为灰色(因不属于任何服务)。
- 显示信息:每个条形块显示图标、调用信息和执行时间。
- 图标:区分 span 类型:
- A 应用 span,通过 OpenTelemetry 协议采集,涵盖业务代码和框架代码。
- S 系统 span,通过 eBPF 零侵入采集,涵盖系统调用、应用函数(如 HTTPS)、API Gateway 和服务网格 Sidecar。
- N 网络 span,通过 BPF 从网络流量采集,涵盖容器网络组件如 iptables、ipvs、OvS 和 LinuxBridge。
- 调用信息:根据 span 类型不同:
- 应用 Span 和 系统 Span:应用协议、请求类型和请求资源。
- 网络 Span:观测点。
- 执行时间:span 从开始到结束的总耗时。
- 图标:区分 span 类型:
- 操作:支持悬停和点击。
- 悬停:在提示框中显示调用信息、实例信息和执行时间。
- 实例信息:根据 span 类型不同:
- 应用 Span:服务和资源实例。
- 系统 Span:进程和资源实例。
- 网络 Span:网络接口和资源实例。
- 执行时间:span 的总执行时间及其自执行时间比例。
- 实例信息:根据 span 类型不同:
- 点击:高亮该 span 及其父 span,并允许查看点击 span 的详细信息。
- 悬停:在提示框中显示调用信息、实例信息和执行时间。
配置
DeepFlow 支持解析应用注入的唯一请求 ID(例如几乎所有网关都会注入 X-Request-ID),并将具有相同请求 ID 的不同请求关联为同一条追踪。 要添加您的请求 ID 头进行解析,可以在安装或更新 DeepFlow 插件时修改 DeepFlow 智能体组配置。
配置项为 processors.request_log.tag_extraction.tracing_tag.x_request_id,接受一个头名称列表。
示例配置片段如下:
有关 DeepFlow 智能体配置的更多详情,请参阅 DeepFlow Agent Configuration 文档。
使用场景
- 网络性能监控:使用 Network/L4 监控面板监控集群主机和 Kubernetes Pod 的带宽、丢包和 TCP 性能,识别瓶颈并优化网络配置。
- 应用性能监控:使用 Application/L7 监控面板监控集群中运行的各类应用的请求率、错误率和延迟,识别慢端点并优化应用性能。
- 拓扑可视化:使用 Map 监控面板可视化网络和应用拓扑,帮助理解不同组件间的关系和依赖。
- 日志分析:使用 Log 监控面板分析详细的流日志和请求日志,帮助排查问题并洞察流量模式。
- 协议监控:使用 Monitoring 监控面板监控特定协议和服务,如 DNS 查询、SQL 数据库性能、Redis 命令和 Dubbo RPC 调用。
- 分布式追踪:使用 Distributed Tracing 监控面板追踪请求在各服务和组件间的传播,帮助识别性能瓶颈并优化服务交互。