Tempo 快速入门
Tempo 代码仓库提供了多个示例帮助您快速开始使用 Tempo 和分布式追踪数据。
每个示例都包含一个docker-compose.yaml
清单文件,其中包含在 Grafana 中探索追踪数据所需的所有选项,包括资源配置和追踪数据生成。
使用 Docker 和 docker-compose 运行的 Tempo 示例包含一个 Tempo 版本和一个适用于测试或开发的存储配置。
开始之前
要遵循本指南,您需要
- Git
- Docker
- Docker Compose 插件(包含在 Docker Desktop 中)
提示
或者,您可以在我们的交互式学习环境中试用此示例:Tempo 快速入门。
这是一个已安装所有依赖项的完整配置环境。
在Grafana Killercoda 代码仓库中提供反馈、报告错误并提出问题。
克隆 Tempo 代码仓库并启动 Docker
本快速入门指南使用local
示例,将 Tempo 作为单个二进制文件(单体式)运行。所有数据都存储在本地的tempo-data
文件夹中。要了解更多信息,请阅读本地存储示例 README。
克隆 Tempo 代码仓库
git clone https://github.com/grafana/tempo.git
进入 examples 目录
cd tempo/example/docker-compose/local
创建一个新目录用于存储数据
mkdir tempo-data
启动 docker-compose 文件中定义的服务
docker compose up -d
验证服务是否正在运行
docker compose ps
您应该看到类似以下内容
docker compose ps NAME COMMAND SERVICE STATUS PORTS local-grafana-1 "/run.sh" grafana running 0.0.0.0:3000->3000/tcp local-k6-tracing-1 "/k6-tracing run /ex…" k6-tracing running local-prometheus-1 "/bin/prometheus --c…" prometheus running 0.0.0.0:9090->9090/tcp local-tempo-1 "/tempo -config.file…" tempo running 0.0.0.0:3200->3200/tcp, 0.0.0.0:4317-4318->4317-4318/tcp, 0.0.0.0:9411->9411/tcp, 0.0.0.0:14268->14268/tcp
在 Grafana 中探索追踪
作为 Docker Compose 清单文件的一部分,Grafana 现在可通过端口 3000 访问。您可以使用 Grafana 探索由 k6-tracing 服务生成的追踪数据。
打开浏览器并访问https://:3000。
登录后,导航到探索页面,选择Tempo数据源,然后选择搜索标签页。选择运行查询以列出存储在 Tempo 中的最新追踪。选择其中一个以查看追踪图。
Tempo 启动几分钟后,在探索页面中选择 Tempo 数据源的服务图标签页。选择运行查询以查看由 Tempo 指标生成器生成的服务图。
停止服务
docker compose down -v
追踪钻取插件
该追踪钻取插件提供了一种非基于查询的追踪探索方法。让我们看看它的一些主要特性和面板。
- 打开浏览器并访问https://:3000/a/grafana-exploretraces-app。
- 在过滤栏中,有一个下拉菜单设置为比率的完整追踪。将其更改为持续时间和所有 Span。
更新后的面板视图如下所示

视图分解
- 顶部的直方图显示了 Span 持续时间的分布。颜色越浅,该持续时间桶中的 Span 越多。在此示例中,大多数 Span 都在
537ms
毫秒内,这被认为是系统的平均持续时间。 - 直方图中的高峰表示持续时间长于平均值的 Span(最高可达
2.15s
)。这些很可能是导致性能问题的 Span。您可以进一步调查以确定根本原因。
选择慢追踪
导航栏中的标签页,以查看系统中速度最慢的追踪。

shop-backend
似乎是导致慢追踪的主要原因。当用户发起article-to-cart
操作时会发生这种情况。在此,您可以选择追踪名称以打开追踪视图面板。

该追踪视图面板提供了追踪的详细视图。该面板分为三个部分
- 顶部部分显示追踪 ID、持续时间以及生成追踪的服务。
- 中间部分显示追踪时间线。每个 Span 都表示为一个水平条。条的颜色表示 Span 的状态。条的宽度表示 Span 的持续时间。
- 底部部分显示所选 Span 的详细信息。这包括 Span 名称、持续时间和标签。
深入查看shop-backend
Span,您可以看到place-articles
操作关联了一个异常事件。这很可能是慢追踪的根本原因。

如果您想深入了解追踪钻取插件及其面板概念,请参阅追踪钻取概念。
下一步
您已成功设置 Tempo 和 Grafana,以探索由 k6-tracing 服务生成的追踪数据。
替代方案:完整的 MLTP 示例
如果您想使用一个包含多种遥测信号的演示,可以尝试Grafana 指标、日志、追踪和性能分析简介。Intro-to-mltp
提供了一个独立的学习环境,用于了解 Mimir、Loki、Tempo、Pyroscope 和 Grafana。该项目包含每个组件的详细解释以及单实例部署的带注释配置。来自 intro-to-mltp 的数据也可以推送到 Grafana Cloud。
延伸阅读
以下是一些帮助您了解更多 Tempo 的资源