菜单
文档breadcrumb arrow Grafana Tempobreadcrumb arrow 快速入门breadcrumb arrow Tempo 快速入门
开源

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

  1. 克隆 Tempo 代码仓库

    bash
    git clone https://github.com/grafana/tempo.git
  2. 进入 examples 目录

    bash
    cd tempo/example/docker-compose/local
  3. 创建一个新目录用于存储数据

    bash
    mkdir tempo-data
  4. 启动 docker-compose 文件中定义的服务

    bash
    docker compose up -d
  5. 验证服务是否正在运行

    bash
    docker compose ps

    您应该看到类似以下内容

    console
    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 服务生成的追踪数据。

  1. 打开浏览器并访问https://:3000

  2. 登录后,导航到探索页面,选择Tempo数据源,然后选择搜索标签页。选择运行查询以列出存储在 Tempo 中的最新追踪。选择其中一个以查看追踪图。

    Use the query builder to explore tracing data in Grafana
  3. Tempo 启动几分钟后,在探索页面中选择 Tempo 数据源的服务图标签页。选择运行查询以查看由 Tempo 指标生成器生成的服务图。

    Service graph sample
  4. 停止服务

    bash
    docker compose down -v

追踪钻取插件

追踪钻取插件提供了一种非基于查询的追踪探索方法。让我们看看它的一些主要特性和面板。

  1. 打开浏览器并访问https://:3000/a/grafana-exploretraces-app
  2. 在过滤栏中,有一个下拉菜单设置为比率完整追踪。将其更改为持续时间所有 Span

更新后的面板视图如下所示

Traces Drilldown panel

视图分解

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

选择慢追踪导航栏中的标签页,以查看系统中速度最慢的追踪。

Slow traces panel

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

Trace View panel

追踪视图面板提供了追踪的详细视图。该面板分为三个部分

  • 顶部部分显示追踪 ID、持续时间以及生成追踪的服务。
  • 中间部分显示追踪时间线。每个 Span 都表示为一个水平条。条的颜色表示 Span 的状态。条的宽度表示 Span 的持续时间。
  • 底部部分显示所选 Span 的详细信息。这包括 Span 名称、持续时间和标签。

深入查看shop-backendSpan,您可以看到place-articles操作关联了一个异常事件。这很可能是慢追踪的根本原因。

Span View panel

如果您想深入了解追踪钻取插件及其面板概念,请参阅追踪钻取概念

下一步

您已成功设置 Tempo 和 Grafana,以探索由 k6-tracing 服务生成的追踪数据。

替代方案:完整的 MLTP 示例

如果您想使用一个包含多种遥测信号的演示,可以尝试Grafana 指标、日志、追踪和性能分析简介Intro-to-mltp提供了一个独立的学习环境,用于了解 Mimir、Loki、Tempo、Pyroscope 和 Grafana。该项目包含每个组件的详细解释以及单实例部署的带注释配置。来自 intro-to-mltp 的数据也可以推送到 Grafana Cloud。

延伸阅读

以下是一些帮助您了解更多 Tempo 的资源