一句话结论
Grafana Tempo 3.1 新增基于 TraceQL 的追踪数据脱敏与 Kafka 安全连接支持,显著提升运维安全性并降低多区域部署成本。
关键要点
- Kafka 客户端新增 TLS/mTLS 支持及 SCRAM-SHA-256、SCRAM-SHA-512、OAUTHBEARER、AWS_MSK_IAM 等 SASL 认证机制。
- 新增 client_rack 选项支持 KIP-392 机架感知数据获取,避免跨可用区读取产生的额外传输费用。
- tempo-cli redact 命令支持 TraceQL 查询过滤,新增 --dry-run 选项可统计匹配项而不修改数据块。
- 默认块格式升级为 vParquet5,结合采样校正提示,简单指标查询速度接近原先两倍。
- 新增 POST /api/v2/traces/diff 端点,可生成紧凑摘要而非 Span 级别补丁,适配 LLM 调查分析。
背景与事实
Grafana Labs 于近期发布 Tempo 3.1,这是基于 3.0 架构的首次小版本更新。Tempo 3.0 于 6 月发布,确立了 Kafka 兼容架构(代号 Rhythm)作为微服务部署的默认方案。在该设计中,分发器将数据写入 Kafka 主题,块构建器订阅主题生成 Parquet 块并写入对象存储,实时存储通过订阅主题提供最新追踪数据。摄入器和压缩器已被后端调度器和工人节点取代,复制因子降至 1 后,存储空间可从追踪数据量的 3 至 3.5 倍减少至仅保留一份副本。
由于 Kafka 成为关键路径,3.0 客户端的安全限制成为问题。原版本仅支持未加密连接的 SASL PLAIN,无法满足要求 TLS 的 broker 接入需求。3.1 新增 TLS 及可选 mTLS 支持,扩展 SASL 机制,并增加 producer_compression 选项支持 none、gzip、snappy、lz4、zstd 五种压缩格式,默认为 snappy。该功能结合 TLS 使 Azure Event Hubs 可用作后端,因为 Azure Event Hubs 仅支持 gzip 格式。
3.0 版本引入的追踪数据脱敏功能需逐一列出追踪 ID,难以应对包含大量敏感值的场景。3.1 中 tempo-cli redact 命令支持 TraceQL 查询,语法限于 Span 集过滤器,对 resource.* 和 span.* 属性执行等值比较,支持 && 和 || 运算符。新增 --dry-run 选项可在不修改数据块的情况下统计匹配项。--start 和 --end 标志用于缩小时间范围,应用脱敏期间 Tempo 会暂停该租户的压缩操作,旧版工人节点会忽略时间窗口并在每个数据块中移除所有匹配项。
影响分析
对中文开发者与运维从业者而言,Tempo 3.1 的安全增强直接降低了企业级部署的合规门槛。此前 Tempo 3.0 的 Kafka 客户端无法满足生产环境对 TLS 加密和高级认证的要求,许多团队被迫在安全与功能间妥协。3.1 补齐这一短板后,基于 Kafka 的分布式追踪方案在金融、医疗等对数据安全要求严格的行业具备更完整的落地条件。机架感知选项对跨可用区部署的团队具有实际成本意义,避免不必要的跨区读取费用。
脱敏功能从"列举 ID"升级为"查询过滤",大幅降低了对大量包含敏感数据的追踪信息进行脱敏的操作复杂度。--dry-run 选项为安全审计提供了不破坏原始数据的验证路径。这些改进对需要在合规场景下保留追踪数据完整性的团队具有直接价值。
适用边界
Kafka 安全增强和机架感知功能仅适用于微服务部署模式,单体部署不使用 Kafka,因此不受益。TraceQL 脱敏查询要求所有调度和工人节点升级至 3.1 版本,混合版本环境中旧节点会忽略时间窗口限制。采样校正提示功能需要 vParquet4 或更高版本的数据块,且遵循 OpenTelemetry 概率采样规则,不适用于确定性采样场景。
孤本观察
Tempo 3.1 将默认块格式提升至 vParquet5 并配合采样校正,表明 Grafana 正在从"尽可能多保留原始数据"转向"在保留必要信息的同时降低存储与计算开销"。这一趋势对中文企业自建可观测性平台具有参考意义:追踪系统的演进方向并非单纯追求数据完整性,而是在数据保留、查询性能与合规脱敏之间寻找工程化平衡点。





常见问题
Kafka 客户端支持的压缩格式有哪些?默认使用哪种?
支持 none、gzip、snappy、lz4 和 zstd 五种压缩格式,默认为 snappy。
TraceQL 脱敏查询支持哪些运算符和属性比较?
对 resource.* 和 span.* 属性执行等值比较,支持 && 和 || 运算符。
使用 --dry-run 选项有什么作用?
在应用脱敏前,不修改数据块,仅统计符合查询条件的追踪项数量。
Tempo 3.0 与 3.1 相比,存储空间减少多少?
3.0 架构将存储需求从追踪数据量的 3 至 3.5 倍减少至仅保留一份副本。
使用 TempoS 3.1 脱敏功能需要升级哪些组件?
要求所有调度和工人节点升级至 3.1 版本,否则混合环境中旧节点会忽略时间窗口限制。
来源:InfoQ 中文 AI