Grafana Tempo 1.2发布:新功能使监控痕迹的效率提高2倍

325 阅读4分钟

Grafana Tempo 1.2已经发布了!在其他方面,我们很自豪地介绍了我们第一个支持搜索的版本,以及有史以来性能最强的Tempo版本。还有一些小的突破性变化,所以请务必查看下面的内容。

如果你想了解所有的细节,你可以随时查看v1.2版本的更新日志,但如果那太多了,这篇文章将涵盖所有的大项目。

你也可以查看我们在2021年ObservabilityCON会议上专门讨论追踪、Tempo和我们最新的产品Grafana Enterprise Traces

Grafana Tempo 1.2的新功能

近期痕迹搜索

最近的痕迹搜索允许 Grafana云 用户在Tempo中搜索仍在采集器中的痕迹。这个持续时间默认为至少15分钟,但可以通过使用摄取器配置块中的complete_block_timeout进行修改。搜索目前是围绕标签、持续时间、服务和跨度名称的基本过滤来设计的。请检查一下吧!

Tempo和Grafana的搜索仍然被认为是实验性的,需要设置功能标志。请查阅文档,了解如何在两个应用程序中启用它。这确实会带来资源上的损失,但启用搜索后的V1.2版本实际上比V1.1版本的性能更强(见下文)。

这个版本是迈向全面的后端搜索的垫脚石,这也是团队目前的首要任务。通过专注于最近的追踪,团队能够对追踪格式和其他数据结构进行实验,以使查询追踪的效率和速度提高。我们很高兴能在不久的将来完成下一步的工作。

可扩展的单一二进制

Tempo 1.2还带来了一种新的运行模式,我们称之为可扩展的单二进制。在V1.2版本之前,Tempo能够作为一个单一的二进制或一组分布式的独立组件运行。

可扩展单二进制允许一个水平可扩展的单二进制,其中包含每一个组件。这些组件继续像在一个完全分布式的设置中那样行动(即每个分配器都推送给每个摄取器),但由于它们被打包成一个单一的二进制文件,它可以减少操作负担。

这种设置不提供相同的灵活性或完全分布式部署的严格故障域。然而,它可以为试图从单一二进制到HA设置过渡的工程师提供一个很好的中间地带。

改进性能

Tempo 1.2是已发布的性能最强的版本。下图显示了收到的字节数与Tempo CPU的总使用量。这大致是衡量Tempo摄取、组织和查询痕迹的效率。

正如你所看到的,Tempo 1.2的搜索效率是V1.1的1.5倍,如果你不需要搜索功能,它的效率几乎是V1.1的2倍。事实上,这些改进是如此之好,以至于对象存储(和访问它)已经开始成为我们的主要成本驱动因素。

另外,V1.2版的搜索功能也在做额外的工作,以建立可搜索的结构,以及正常的按ID搜索的跟踪。随着我们对这些代码路径的整合,我们希望搜索性能能够继续提高。

破坏性变化

在Tempo 1.2中,有一长串细微的变化。对于普通的操作者/用户来说,这些变化几乎没有影响,但还是应该被提及的:

  • 正如Tempo v1.1所宣布的那样,放弃了对v0和v1块的支持。详情请参考v1.1版本的更新日志
  • 对查询器API做了小的调整。当滚动部署时,在所有的查询和查询前台都滚动到最新版本之前,会有一个读取中断。
  • API的改进整合了状态端点内的信息端点。
  • 公制ingester_bytes_metric_totalPR979改名为ingester_bytes_received_total
  • 公制cortex_runtime_config_last_reload_successfulPR 945中被重新命名为tempo_runtime_config_last_reload_successful
  • tempo-cli 标志--storage.trace.maintenance-cycle 通过PR 897 改名为--storage.trace.blocklist_poll

下一步是什么?

下一步是全面的后端搜索!现在,在V1.2版本中已经建立了最近的痕迹搜索的基础,我们正在积极努力提供完整的后台搜索,并希望能很快发布。我们还在考虑增加支持从Tempo中聚合和写入跟踪指标到指标后台。请继续关注更多信息!