菜单
开源

版本 1.5 发行说明

Tempo 团队很高兴宣布 Tempo 1.5 版本发布。

在此版本中,Tempo 增加了对基于 Apache Parquet 的新链路追踪存储格式的实验性支持,用于帮助 Tempo 团队了解 Tempo 使用情况的匿名使用情况报告,以及对 metrics-generator 的增强。

我们鼓励用户升级到 Grafana 9.1,以利用 Tempo 提供的新功能,例如可视化 Span 指标(用于速率、错误率和持续时间 (RED) 的链路追踪数据)和服务图的服务图视图

注意:有关更改和增强功能的完整列表,请参阅Tempo 1.5 变更日志

特性和增强功能

版本 1.5 包含以下特性和增强功能。

支持 Apache Parquet 块格式

Tempo 现在支持基于 Apache Parquet 的柱状块格式用于链路追踪存储。我们对这种新格式感到兴奋,因为它将提高 Tempo 搜索的速度和效率。它还允许用户利用现有的 Parquet 工具和库的庞大生态系统来处理和转换他们的链路追踪数据。

我们在 Tempo 1.5 中将 Parquet 块格式作为实验性功能发布,并计划在未来版本中经过更多测试后将其转为稳定版。

新的 Parquet 块格式可以作为 Tempo 现有块格式的直接替代品使用。无需数据转换或升级过程。一旦启用 Parquet 格式,Tempo 就会开始以该格式写入数据,而现有数据保持不变。更多信息,请参阅Parquet 文档。但请注意,启用 Parquet 块格式意味着 Tempo 将需要比以前更多的 CPU 和内存资源。

要使用 Parquet,请在配置文件中将 block format 选项设置为 vParquet。请参阅Parquet 文档配置文档

yaml
# block format version. options: v2, vParquet
[version: <string> | default = v2]

有关 Parquet 实现的更多信息,请参阅Parquet 设计文档Issue 1480

Metrics-generator 增强功能

metrics-generator 现在在服务图指标中包含了跨消息系统的数据库和请求。OpenTelemetry 语义规范用于检测 Span 何时涉及这些系统之一。PR 1576

此外,metrics-generator 支持每个租户的处理器配置。PR 1434

匿名使用情况报告

默认情况下,Tempo 会向 Grafana Labs 报告关于自身的匿名使用情况数据。此数据用于了解哪些功能被普遍启用,以及哪些部署模式、副本因子和压缩级别最受欢迎等。

通过提供关于 Tempo 如何被使用的信息,使用情况报告帮助 Tempo 团队决定将开发和文档工作的重点放在何处。不收集任何私人信息,所有报告都是完全匿名的。

报告由 usage_report 配置选项控制,可以禁用。有关说明,请参阅配置文档PR 1465

升级注意事项

升级到 Tempo v1.5 时,请注意以下重大变更

  • PR 1478 为了在 Grafana 中构建高级可视化功能,我们决定更改 Span 指标名称以匹配 OpenTelemetry (OTel) 约定。无论您使用 Tempo、Grafana Agent 还是 OTel Collector 生成指标,添加到 Grafana 的任何功能都将正常工作。Tempo 1.4.x 中的旧 histogram 指标名称

    traces_spanmetrics_duration_seconds_{sum,count,bucket}

    已在 Tempo 1.5 中替换为这个新名称

    traces_spanmetrics_latency_{sum,count,bucket}

    此外,默认标签 span_status 已重命名为 status_code

  • PR 1556 Jsonnet 用户需要为 metrics generator 指定临时存储请求和限制。

     _config+:: {
       metrics_generator+: {
         ephemeral_storage_request_size: '10Gi',
         ephemeral_storage_limit_size: '11Gi',
       },
     }
  • PR 1481 由于匿名使用情况报告功能,distributors 和 metrics-generators 现在需要与 compactors 和 ingesters 相同的对象存储访问级别。禁用匿名使用情况报告的用户不受此要求的限制。

  • PR 1558 已弃用的指标 tempodb_(gcs|s3|azure)_request_duration_seconds 已被移除,取而代之的是 tempodb_backend_request_duration_seconds。这些指标自 v1.1 起已弃用。

Bug 修复

1.5.0 bug 修复

版本 1.5.0 包含以下修复

  • PR 1441 修复了按 ID 路径追踪出错时的 nil 指针 panic 问题。

  • PR 1472 更新了 Tempo 微服务 Helm values 示例,该示例遗漏了 thriftHttp 的 enabled 键。

  • PR 1468 修复了 forwarder overrides 循环中的竞态条件问题。

  • PR 1538 修复了 v2 后端对 Span 名称的检查应为子字符串的问题。

  • PR 1548 修复了 wal 对 Span 名称的检查应为子字符串的问题。

  • Issue 1258 防止 ingester 出现“无法增长缓冲区”的 panic 问题。

  • PR 1554 metrics-generator: 在单租户模式下不移除 x-scope-orgid header

  • PR 1589 修复了后端不支持 root.nameroot.service.name 的问题。

  • Issue 1603 修复了 ingester 在块重放错误后继续启动的问题。