08.2Grafana Tempo简介

分类: Grafana Tempo分布式追踪

Grafana Tempo 简介

欢迎回到第 8 章的学习。在上一节,我们学习了分布式追踪的基础概念。现在我们要学习 Grafana Tempo,这是 Grafana Stack 中的分布式追踪后端。

本节将学习:Tempo 是什么?它的存储架构是什么?它的查询机制是什么?

Grafana Tempo 是什么

Grafana Tempo 是什么? Grafana Tempo 是一个高性能、可扩展的分布式追踪后端。

它有什么特点呢?

  • 开源免费。 Tempo 是完全开源的,Apache 2.0 许可证。你可以自由使用、修改和分发。
  • 高性能存储。 Tempo 使用对象存储(S3、GCS、Azure),压缩存储,性能很高。
  • 低成本。 Tempo 的存储成本远低于传统方案。使用对象存储,成本非常低。
  • 与 Grafana 深度集成。 Tempo 与 Grafana 深度集成,可以在 Grafana 中查询和可视化 Trace。
  • 支持多种追踪协议。 Tempo 支持 OTLP、Jaeger、Zipkin、OpenCensus 等多种协议。

Tempo 定位: Tempo 在 Grafana Stack 中的位置。Prometheus → 指标(Metrics),Loki → 日志(Logs),Tempo → 追踪(Traces)。三者可以关联查询。

Tempo 优势: 低成本存储、高性能查询、易于部署、多协议支持。这些都是 Tempo 的优势。

这就是 Tempo。一个高性能、低成本的分布式追踪后端。

存储架构

Tempo 的存储架构是什么?

第一个是接收层(Ingester)。 接收 Trace 数据,临时存储(内存),批量写入后端存储。Ingester 负责接收和临时存储。

第二个是存储层(Backend Storage)。 对象存储(S3、GCS、Azure),本地文件系统,压缩存储。后端存储负责持久化数据。

第三个是查询层(Querier)。 查询 Trace 数据,从后端存储读取,返回查询结果。Querier 负责查询数据。

存储架构图: 应用 → Ingester(接收 Trace)→ Backend Storage(批量写入),Grafana → Querier(查询 Trace)→ Backend Storage(读取 Trace)。

存储特点: 使用对象存储,成本低,压缩存储,节省空间,水平可扩展,高可用架构。

这就是 Tempo 的存储架构。分离关注点,各组件职责明确。

查询机制

Tempo 有哪些查询方式呢?

第一种方式:Trace ID 查询。 通过 Trace ID 直接查询,快速定位特定 Trace,支持精确查询。这是最常用的查询方式。

第二种方式:TraceQL 查询。 Tempo 的查询语言,支持属性查询,支持时间范围查询,支持聚合查询。TraceQL 非常强大。

第三种方式:关联查询。 通过 Trace ID 关联 Metrics,通过 Trace ID 关联 Logs,在 Grafana 中统一查询。这是 Grafana Stack 的优势。

查询流程: Grafana → Querier(查询 Trace)→ Backend Storage(读取 Trace)→ 返回结果 → Grafana。还可以关联查询 Metrics 和 Logs。

查询特点: 快速查询,支持复杂查询,关联查询支持,与 Grafana 深度集成。

这就是 Tempo 的查询机制。支持多种查询方式,非常灵活。

本节小结

在本节中,我们学习了 Grafana Tempo 简介:

第一个是 Tempo 的定义。 Tempo 是一个高性能、低成本的分布式追踪后端。

第二个是存储架构。 接收层(Ingester)、存储层(Backend Storage)、查询层(Querier)。各组件职责明确。

第三个是查询机制。 Trace ID 查询、TraceQL 查询、关联查询。支持多种查询方式。

第四个是与 Grafana Stack 深度集成。 可以在 Grafana 中统一查询 Traces、Metrics、Logs。

Tempo 总结: Tempo 包括存储架构、查询机制、Grafana 集成。这些功能组合在一起,构成了一个完整的分布式追踪解决方案。

这就是 Grafana Tempo 简介。理解了 Tempo 的架构和机制,我们就可以开始使用 Tempo 了。

在下一节,我们将学习安装 Grafana Tempo。学习如何安装和部署 Tempo。