08.2、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。