v6.5 EE Release Notes

创建时间:2024-07-05 最近修改时间:2024-07-05

#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_idx_request_id_0/1,自动追踪 Request-Response 模式的 Kafka 调用链;支持提取协议头中 traceparent 和 sw8 的 SpanID,增强追踪能力。文档见此
    • ⭐ 支持使用 Wasm Plugin 增强 Dubbo、NATS、ZeroMQ 协议的解析,Demo 见此 (opens new window)
    • 支持解析 Dubbo 协议的 Kryo 序列化格式,文档见此
    • 将 MySQL 单向消息(CLOSEQUIT)的日志类型直接标记为会话。
    • 调用日志增加采集包长指标 captured_request_bytecaptured_response_byte文档见此 (opens new window)
    • 增强 X-Tingyun TraceID 的解析能力。
  • AutoTagging
    • ⭐ 应用指标和调用日志增加业务类型(biz_type)标签,可配合 Wasm Plugin 使用标识业务类型。
    • ⭐ Kafka 协议支持提取 topic_nameendpoint文档见此
    • ⭐ 聚合指标中不再将广域网服务端聚合为 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_ipchost_ip)和主机名(pod_node_hostnamechost_hostname)标签。
    • auto_service 标签自动将容器节点(pod_node)聚合为容器集群(pod_cluster),但 auto_instance 仍然不会做此聚合。
    • 当一个 K8s 工作负载(pod_group)关联了多个容器服务时,使用字典序最小的服务名标记容器服务(pod_service)标签。
  • 搜索能力
    • 新增语法糖字段 XX,可用于任意匹配 XX_0XX_1 两个原始字段之一,支持的字段有:x_request_idsyscall_threadsyscall_coroutinesyscall_cap_seqsyscall_trace_idtcp_seq
    • 资源分析页面增加角色(Role)分组能力,用于区分资源作为客户端、服务端时的统计数据。
    • 优化搜索框切换至容器搜索或进程搜索模式时的加载速度。
    • 聚合数据表格中的客户端、服务端两列支持复制粘贴到搜索栏。
    • 输入资源过滤条件时,候选项支持悬停提示资源信息。
  • 易用性提升
    • ⭐ 调用链追踪与流日志关联,联动查看 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_ipchost_ip)和主机名(pod_node_hostnamechost_hostname)标签。
    • auto_service 标签自动将容器节点(pod_node)聚合为容器集群(pod_cluster),但 auto_instance 仍然不会做此聚合。
    • 当一个 K8s 工作负载(pod_group)关联了多个容器服务时,使用字典序最小的服务名标记容器服务(pod_service)标签。
  • 搜索能力
    • 新增语法糖字段 XX,可用于任意匹配 XX_0XX_1 两个原始字段之一,支持的字段有:tunnel_tx_iptunnel_rx_iptunnel_tx_mactunnel_rx_mactcp_seq
    • 资源分析页面增加角色(Role)分组能力,用于区分资源作为客户端、服务端时的统计数据。
    • 优化搜索框切换至容器搜索或进程搜索模式时的加载速度。
    • 聚合数据表格中的客户端、服务端两列支持复制粘贴到搜索栏。
    • 输入资源过滤条件时,候选项支持悬停提示资源信息。
  • 易用性提升
    • ⭐ 拓扑分析页面支持使用 DeepFlow Stella 智能体分析解读,支持使用 GPT4 模型。
    • 优化搜索栏位于「点击搜索按钮触发」模式下的使用体验。
    • 优化拓扑图的放大、缩小操作体验。
    • 提升知识图谱标签复制操作的易用性。
    • 表格中的时延 0 显示为 N/A。
    • 优化数据标签中「查询区域」的显示。
    • 访问关系右滑框展示优化。

#2. 自定义

#2.1 视图

  • 子视图增强
    • ⭐ 增加文本类子视图,支持 Markdown 和 Mermaid 语法。
    • ⭐ 支持为子视图添加 Markdown 描述。
    • ⭐ 支持自定义所有子视图的右滑框 Tab 页,自动关联 Tab 页中展示的数据。
    • 多查询条件的子视图支持唤醒右滑框,自动关联所有可观测性数据。
    • 概览图的背景曲线支持隐藏坐标轴。
    • 子视图编辑页面颜色选择框优化。
    • 子视图的样式、指标设置、高级设置优化。
  • 易用性提升
    • 支持子视图的复制、克隆。
    • 子视图编辑框增加指标设置功能。
    • 详情表格支持按开始时间、结束时间列排序。
    • 列表页支持按名称、创建人、修改时间排序。
    • 优化子视图编辑框中的图标信息设置能力。
    • 子视图新建框交互优化。
    • 优化折线图、柱状图、饼图的图例展示。
    • 子视图的修改指标量按钮移入编辑右滑框中。
    • 优化子视图页面排布的样式,优化子视图编辑右滑框布局和样式。
    • 视图列表拆分为自定义视图和内置视图两个页面。
    • 支持切换子视图的图表类型。
    • 优化子视图编辑页面的搜索模块。

#2.2 全景图

  • 易用性提升
    • ⭐ 优化物理网络部分的数据展示,提升「云上云下一体化监控」的易用性。
    • 支持批量(多选客户端服务、服务端服务)定义业务中的路径。
    • 优化拓扑图的放大、缩小操作体验。
    • 优化拓扑图编辑模式的操作体验,优化拓扑图中服务、服务组排布操作的体验。
    • 优化全景图右滑框的操作体验。

#3. 集成

#3.1 指标

  • 指标模版
    • ⭐ 增加指标模板管理能力,方便追踪、网络、视图等页面快速选择指标集。

#3.2 日志

#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_logevent 数据库中的数据支持使用 _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 超时判定机制。
    • 流量分发策略支持导出导入。
  • 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 默认使用此端口)。
    • 允许采集器远程执行低权限的调试命令。
  • 部署
  • 易用性改进
    • ⭐ 在 Grafana 中为 DeepFlow Topo 、DeepFlow Tracing Panel 增加 AskGPT Copilot:Demo1 (opens new window)Demo2 (opens new window),目前支持的大模型有 GPT4、通义千问、文心一言、ChatGLM
    • 页面中的链接 URL 化,支持通过鼠标右键菜单在新页面中打开。
    • 精简页面的 URL 长度。

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
  • AutoTagging
    • 不再同步云资源中的安全组信息
  • Server
    • Prometheus Remote Write 配置方式调整,文档见此
    • OpenTelemetry Exporter 配置方式调整,文档见此
  • 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. 文档