v6.5 EE Release Notes
创建时间:2024-07-05 最近修改时间:2024-08-08
#1. 零侵扰
#1.1 追踪
- AutoTracing
- ⭐ 增强对位于 SQL 语句注释中 TraceID、SpanID 的提取能力,支持解析预编译 SQL 语句中的变量值,支持采集登录用户名、当前数据库名,文档见此。
- ⭐ 新增 bRPC 协议的解析能力,文档见此。
- ⭐ 新增 RabbitMQ AMQP、ActiveMQ OpenWire、NATS、ZeroMQ、Pulsar 协议的解析能力,文档见此。
- ⭐ Kafka 协议解析增强:增加对 Partition、Offset、GroupID 字段以及 JoinGroup、LeaveGroup、SyncGroup 消息的解析能力;支持提取 Kafka 协议头中的
correlation_id
为x_request_id_0/1
,自动追踪 Request-Response 模式的 Kafka 调用链;支持提取协议头中 traceparent 和 sw8 的 SpanID,增强追踪能力。文档见此。 - ⭐ 支持使用 Wasm Plugin 增强 Dubbo、NATS、ZeroMQ 协议的解析,Demo 见此 (opens new window)。
- 支持解析 Dubbo 协议的 Kryo 序列化格式,文档见此。
- 将 MySQL 单向消息(
CLOSE
、QUIT
)的日志类型直接标记为会话。 - 调用日志增加采集包长指标
captured_request_byte
、captured_response_byte
,文档见此 (opens new window)。 - 增强
X-Tingyun
TraceID 的解析能力。
- AutoTagging
- ⭐ 应用指标和调用日志增加业务类型(
biz_type
)标签,可配合 Wasm Plugin 使用标识业务类型。 - ⭐ Kafka 协议支持提取
topic_name
为endpoint
,文档见此。 - ⭐ 聚合指标中不再将广域网服务端聚合为
0.0.0.0
,不再将无任何资源标签的私有 IP 地址(192.168、172.16、10、169.254)标记为广域网。 - ⭐ 支持自定义采集 HTTP/HTTP2/gRPC 头部字段并存储于调用日志的
attribute.$field_name
字段中,详见文档。 - A/AAAA 类型的 DNS 请求,将
QNAME
提取为request_domain
,文档见此。 - FastCGI、MQTT、DNS 协议支持提取
endpoint
字段,文档见此。 - 所有数据增加容器节点、云服务器的主 IP(
pod_node_ip
、chost_ip
)和主机名(pod_node_hostname
、chost_hostname
)标签。 auto_service
标签自动将容器节点(pod_node
)聚合为容器集群(pod_cluster
),但auto_instance
仍然不会做此聚合。- 当一个 K8s 工作负载(
pod_group
)关联了多个容器服务时,使用字典序最小的服务名标记容器服务(pod_service
)标签。
- ⭐ 应用指标和调用日志增加业务类型(
- 搜索能力
- 新增语法糖字段 XX,可用于任意匹配
XX_0
或XX_1
两个原始字段之一,支持的字段有:x_request_id
、syscall_thread
、syscall_coroutine
、syscall_cap_seq
、syscall_trace_id
、tcp_seq
- 资源分析页面增加角色(Role)分组能力,用于区分资源作为客户端、服务端时的统计数据。
- 优化搜索框切换至容器搜索或进程搜索模式时的加载速度。
- 聚合数据表格中的客户端、服务端两列支持复制粘贴到搜索栏。
- 输入资源过滤条件时,候选项支持悬停提示资源信息。
- 新增语法糖字段 XX,可用于任意匹配
- 易用性提升
- ⭐ 调用链追踪与流日志关联,联动查看 Span 的网络性能指标。
- ⭐ 调用链追踪、拓扑分析页面支持使用 DeepFlow Stella 智能体分析解读,支持使用 GPT4 模型。
- 优化搜索栏位于「点击搜索按钮触发」模式下的使用体验。
- 支持记忆调用链追踪火焰图下方的 Tab 激活状态、稳定 Tab 布局。
- 调用链追踪火焰图中的 Span 和下方表格中的调用日志联动高亮。
- 优化调用链追踪中 Span 溯源的展现形式。
- 调用链追踪火焰图中 NET Span 的父子逻辑优化。
- 优化拓扑图的放大、缩小操作体验。
- 提升知识图谱标签复制操作的易用性。
- 表格中的时延 0 显示为 N/A。
- 优化数据标签中「查询区域」的显示。
- 支持按应用协议显示资源的图标。
#1.2 剖析
- AutoProfiling
- ⭐ 支持 Off-CPU Profiling,低开销、持续运行,可用于快速定位应用性能低但 CPU 用量不高时的瓶颈函数。
- 易用性提升
- ⭐ 性能剖析火焰图支持使用 DeepFlow Stella 智能体分析解读,支持使用 GPT4 模型。
- 火焰图中的首行名称从 root 修改为
$app_service
,即 eBPF 采集的进程名、或应用内部设置的服务名。 - 优化搜索框切换至容器搜索或进程搜索模式时的加载速度。
- eBPF 火焰图中区分显示函数名的类型:内核函数、动态链接库函数、应用函数。
- 优化 eBPF 火焰图的 Tip 展示。
#1.3 网络
- AutoMetrics
- 暴露流量分发指标,支持监控匹配特定流量分发策略的流量速率。
- 异常指标改名:建连-客户端 SYN 结束(
client_syn_repeat
)改名为建连-服务端 SYN 缺失(server_syn_miss
),并被算入服务端异常
。 - 异常指标改名:建连-服务端 SYN 结束(
server_syn_repeat
)改名为建连-客户端 ACK 缺失(client_ack_miss
),并被算入客户端异常
。 - TCP 断连异常的流日志,其状态设置为正常。
- AutoTagging
- ⭐ 网络流日志中增加
request_domain
字段,与应用指标、调用日志自动关联。 - ⭐ 聚合指标中不再将广域网服务端聚合为
0.0.0.0
,不再将无任何资源标签的私有 IP 地址(192.168、172.16、10、169.254)标记为广域网。 - 所有数据增加容器节点、云服务器的主 IP(
pod_node_ip
、chost_ip
)和主机名(pod_node_hostname
、chost_hostname
)标签。 auto_service
标签自动将容器节点(pod_node
)聚合为容器集群(pod_cluster
),但auto_instance
仍然不会做此聚合。- 当一个 K8s 工作负载(
pod_group
)关联了多个容器服务时,使用字典序最小的服务名标记容器服务(pod_service
)标签。
- ⭐ 网络流日志中增加
- 搜索能力
- 新增语法糖字段 XX,可用于任意匹配
XX_0
或XX_1
两个原始字段之一,支持的字段有:tunnel_tx_ip
、tunnel_rx_ip
、tunnel_tx_mac
、tunnel_rx_mac
、tcp_seq
- 资源分析页面增加角色(Role)分组能力,用于区分资源作为客户端、服务端时的统计数据。
- 优化搜索框切换至容器搜索或进程搜索模式时的加载速度。
- 聚合数据表格中的客户端、服务端两列支持复制粘贴到搜索栏。
- 输入资源过滤条件时,候选项支持悬停提示资源信息。
- 新增语法糖字段 XX,可用于任意匹配
- 易用性提升
- ⭐ 拓扑分析页面支持使用 DeepFlow Stella 智能体分析解读,支持使用 GPT4 模型。
- 优化搜索栏位于「点击搜索按钮触发」模式下的使用体验。
- 优化拓扑图的放大、缩小操作体验。
- 提升知识图谱标签复制操作的易用性。
- 表格中的时延 0 显示为 N/A。
- 优化数据标签中「查询区域」的显示。
- 访问关系右滑框展示优化。
#2. 自定义
#2.1 视图
- 子视图增强
- ⭐ 增加文本类子视图,支持 Markdown 和 Mermaid 语法。
- ⭐ 支持为子视图添加 Markdown 描述。
- ⭐ 支持自定义所有子视图的右滑框 Tab 页,自动关联 Tab 页中展示的数据。
- 多查询条件的子视图支持唤醒右滑框,自动关联所有可观测性数据。
- 概览图的背景曲线支持隐藏坐标轴。
- 子视图编辑页面颜色选择框优化。
- 子视图的样式、指标设置、高级设置优化。
- 易用性提升
- 支持子视图的复制、克隆。
- 子视图编辑框增加指标设置功能。
- 详情表格支持按开始时间、结束时间列排序。
- 列表页支持按名称、创建人、修改时间排序。
- 优化子视图编辑框中的图标信息设置能力。
- 子视图新建框交互优化。
- 优化折线图、柱状图、饼图的图例展示。
- 子视图的修改指标量按钮移入编辑右滑框中。
- 优化子视图页面排布的样式,优化子视图编辑右滑框布局和样式。
- 视图列表拆分为自定义视图和内置视图两个页面。
- 支持切换子视图的图表类型。
- 优化子视图编辑页面的搜索模块。
#2.2 全景图
- 易用性提升
- ⭐ 优化物理网络部分的数据展示,提升「云上云下一体化监控」的易用性。
- 支持批量(多选客户端服务、服务端服务)定义业务中的路径。
- 优化拓扑图的放大、缩小操作体验。
- 优化拓扑图编辑模式的操作体验,优化拓扑图中服务、服务组排布操作的体验。
- 优化全景图右滑框的操作体验。
#3. 集成
#3.1 指标
- 指标模版
- ⭐ 增加指标模板管理能力,方便追踪、网络、视图等页面快速选择指标集。
#3.2 日志
- ⭐ 支持集成 Datadog Vector (opens new window) 采集的应用日志。
#4. 运营
#4.1 告警
- 告警策略
- ⭐ 增强精细程度:增加监控频率、监控区间的配置能力。
- ⭐ 细化事件类型:增加恢复事件、信息事件的配置能力。
- 推送端点
- 增加 Kafka 推送端点,支持 Plain 类型的 SASL 认证。
- 系统告警
- ClickHouse 所在磁盘空间不足时 deepflow-server 会进行强制清理,此时触发内置系统告警告知用户。
- 采集器数据丢失的告警增加更丰富的指标。
- 易用性提升
- 优化告警策略列表、告警事件列表的展现。
#4.2 报表
N/A
#5. 管理
#5.1 资源
- AutoTagging
- ⭐ 大幅提升 K8s 标签注入的实时性,优化前代码路径涉及 5 个独立的 1min 定时器,优化后只涉及到 1 个 10s 定时器和 1 个 1min 定时器,最极端情况下的时延从 5min 降低到 1m20s(agent 对 K8s 资源的 list/watch 最多可能跨越两个周期,因此最坏可能产生 20s 的时延)。
- 增强与平安云的资源信息同步能力,支持获取 Serverless 集群中租户 Pod 的 CIDR。
- 企业版默认禁用 Agent 自动触发生成 Kubernetes 类型的云平台,简化 On-Prem 模式下的部署步骤。
- 支持同步阿里公有云的云服务器自定义标签,并自动向所有观测数据中注入
cloud.tag.$key
标签字段。 - 解耦云资源和容器资源的同步,使得公有云 API 的错误不影响容器资源标签的同步。
- 易用性改进
- 知识图谱中显示的资源数量剔除已删除的部分。
#5.2 系统
- SQL API
- ⭐ 优化 Delay 和 BoundedGauge 类型指标量的 Percentile 算子,将编译后的 ClickHouse SQL 层数降低到一层。
- ClickHouse 表名和字段名修改,见文末表格(废弃名依然可使用,但将会从 v7.0 开始停止支持)。
flow_log
和event
数据库中的数据支持使用_id
字段精确搜索。- 简化 map 类型字段的查询语义,便于用户理解。
- Server
- ⭐ 新增 Kafka Exporter 数据导致方式,文档见此,支持导出如下观测信号:
- 指标:
flow_metrics.application*
(应用性能指标/访问关系)、flow_metrics.network*
(网络性能指标/访问关系)。 - 日志:
flow_log.l4_flow_log
(网络流日志)、flow_log.l7_flow_log
(应用调用日志)。 - 事件:
event.perf_event
(文件读写事件)。
- 指标:
- Prometheus Remote Write 支持导出
flow_metrics.application*
和flow_metrics.network*
的指标。 - 增加 Agent 是否请求 Server NAT IP 的全局配置,适用于 Agent 全部通过公网请求 Server 的场景。
- 增加 Token 管理页面,优化 Token 超时判定机制。
- 流量分发策略支持导出导入。
- ⭐ 新增 Kafka Exporter 数据导致方式,文档见此,支持导出如下观测信号:
- Agent
- ⭐ 默认开启系统负载熔断机制,当系统负载与 CPU 核数的比例超过
system_load_circuit_breaker_threshold
时 Agent 触发熔断机制自动进入禁用状态并告警,配置方法详见 Agent 配置样例。 - ⭐ 优化 Redis 和 MySQL 协议解析性能:优化后 Agent 1CPU 300MB 内存可采集 5W TPS MySQL 或 Redis 流量。
- 增加
flow-count-limit
配置参数,避免突发流量下 agent 消耗过多内存,防止触发 OOM Killer。 - ⭐ HTTP2 哈夫曼解码性能提升,在限定 1 逻辑核的情况下,极限 TPS 采集性能提升 5 ~ 25 倍,测试数据见下表。
- ⭐ 支持配置调用日志黑名单,降低存储消耗、消除健康探测的大时延指标干扰、消除 DNS NXDOMAIN 异常干扰。
- ⭐ 支持 eBPF 数据乱序重排、分段重组,增强应用协议解析成功率。
- 支持采集 Open vSwitch Bond 子接口的流量,并正确聚合成流日志和调用日志。
- 专属采集器支持剥离镜像流量的 ERSPAN、TEB、VXLAN 隧道封装。
- eBPF 采集性能提升【测试数据待补充】。
- TLS 协议默认解析端口增加 6443(K8s apiserver 默认使用此端口)。
- 允许采集器远程执行低权限的调试命令。
- ⭐ 默认开启系统负载熔断机制,当系统负载与 CPU 核数的比例超过
- 部署
- 容器类型的采集器支持远程升级,文档见此;支持直接从页面配置 CPU、内存限制,配置参数见此 (opens new window)。
- Agent 支持通过 Docker Compose 部署,文档见此。
- 易用性改进
- ⭐ 在 Grafana 中为 DeepFlow Topo 、DeepFlow Tracing Panel 增加
AskGPT
Copilot:Demo1 (opens new window)、Demo2 (opens new window),目前支持的大模型有 GPT4、通义千问、文心一言、ChatGLM。 - 页面中的链接 URL 化,支持通过鼠标右键菜单在新页面中打开。
- 精简页面的 URL 长度。
- ⭐ 在 Grafana 中为 DeepFlow Topo 、DeepFlow Tracing Panel 增加
HTTP2 采集性能对比测试:
随机 Header 数 | 版本 | Agent CPU | Agent Memory | TPS |
---|---|---|---|---|
3 | OLD | 96% | 34 MB | 10K |
NEW | 97% | 94 MB | 50K | |
12 | OLD | 89% | 9 MB | 1.2K |
NEW | 93% | 112 MB | 30K |
#5.3 账号
- 多租户支持
- ⭐ 支持创建多个隔离的组织,满足大型企业多个分公司、事业部的隔离需求,支持与行业云联合运营 SaaS 服务。
- 支持设置租户的账号权限,包括所有者、维护者、使用者、访客四类权限角色。
- 支持按组织架构划分租户账号所属的团队,支持设置团队内资源的可见性。
- 支持 Google、GitHub 账号 SSO。
- 易用性改进
- 新增偏好设置页面,可对搜索框触发方式、搜索框展现形式、图标展示等行为进行配置。
#6. 兼容性
#6.1 不兼容修改
- eBPF AutoProfiling
- API
profile/ProfileTracing
返回的self_value
、total_value
单位修改为微秒(us),文档见此,修改历史见此 (opens new window)。
- API
- AutoTagging
- 不再同步云资源中的安全组信息
- Server
- Agent
- 静态配置项
src-interfaces
合并至动态配置项tap_interface_regex
,降低 MACVlan、华为云 CCE Turbo、VMware 等场景下的配置复杂度。
- 静态配置项
#6.2 兼容修改
注意:如下修改将会在 v7.0 开始停止兼容。
ClickHouse flow_metrics
数据库中数据表名称修改:
旧名称 | 新名称 | 数据作用 |
---|---|---|
vtap_app_port | application | 所有服务的应用性能指标 |
vtap_app_edge_port | application_map | 所有应用访问关系及其性能指标 |
vtap_flow_port | network | 所有服务的网络性能指标 |
vtap_flow_edge_port | network_map | 所有网络访问关系及其性能指标 |
vtap_acl | traffic_policy | 网络策略指标(仅企业版) |
ClickHouse 数据库中字段名的修改:
旧名称 | 新名称 | 数据作用 |
---|---|---|
vtap | agent | Agent |
vtap_id | agent_id | Agent ID |
tap_side | observation_point | 观测点 |
tap | capture_network_type | 网络位置(仅企业版) |
tap_port | capture_nic | 采集网卡标识 |
tap_port_name | capture_nic_name | 采集网卡名称 |
tap_port_type | capture_nic_type | 采集网卡类型 |
tap_port_host | capture_nic_host | 采集网卡所属宿主机(仅企业版) |
tap_port_chost | capture_nic_chost | 采集网卡所属云服务器 |
tap_port_pod_node | capture_nic_pod_node | 采集网卡所属容器节点 |
#7. 文档
- 新增 Agent 性能调优文档。
- 新增 不允许 deepflow-agent 请求 apiserver 场景下的部署方案。
- 新增 使用非 root 用户运行 deepflow-agent 的指导文档。