本节介绍如何使用 Grafana Tempo for WizTelemetry(简称为 Tempo) 将 WizTelemetry 链路追踪的分布式追踪数据以可视化的方式呈现在 Grafana 控制台,即,将用户请求在分布式系统中的完整流转过程进行可视化。

前提条件

已通过 Grafana for WizTelemetry 扩展组件部署一个 Grafana 控制台。

操作步骤

  1. 安装 Grafana Tempo for WizTelemetry 扩展组件到集群。

  2. 进入已安装 Tempo 的集群,在应用负载 > 服务页面,查找服务 tempo-distributor,点击名称进入详情页面。点击操作 > 编辑外部访问,开启 NodePort。然后在此页面获取服务端口 4317 对应的 NodePort。

    tempo distributor nodeport

    说明

    取决于您的网络环境,您可能需要配置流量转发规则并在防火墙中放行该 NodePort 端口。

  3. 安装 WizTelemetry 链路追踪扩展组件,并修改扩展组件配置,以便将追踪数据发送到 Tempo。

    collector:
      collector:
        config: |
          exporters:
            otlp:
              # tempo-distributor.wiz-telemetry-tracing:4317
              endpoint: < tempo distributor grpc endpoint >
              headers:
                x-scope-orgid: wiztelemetry-tracing-ks
              tls:
                insecure: true
          service:
            pipelines:
              traces:
                exporters:
                  - otlp
                  - otlphttp

    注意将 < tempo distributor grpc endpoint > 替换为 <cluster-node-ip>:<grpc nodeport>。例如,根据上一步获取的 NodePort,应修改为 <cluster-node-ip>:31459

  4. 在 Grafana 控制台中配置 Tempo 数据源。

    若 Tempo 和 Grafana for WizTelemetry 扩展组件部署在同一集群,Tempo 安装完成后,会自动在 Grafana 控制台添加 Tempo 数据源。

    tempo data source

    若 Tempo 和 Grafana for WizTelemetry 扩展组件部署在不同集群,您需要通过 NodePort 或 LoadBalancer 暴露服务 tempo-query-frontend 以获取 Tempo 数据源的服务器地址,然后在 Grafana 控制台手动添加 Tempo 数据源。详细步骤如下:

    • 暴露 tempo-query-frontend 服务

      下文以 NodePort 方式暴露 tempo-query-frontend 服务。

      1. 进入已安装 Tempo 的集群,在应用负载 > 服务页面,查找服务 tempo-query-frontend,点击名称进入详情页面。

      2. 点击操作 > 编辑外部访问,开启 NodePort。然后在此页面获取服务端口 3100 对应的 NodePort。

      tempo query frontend nodeport

    • 手动添加 Tempo 数据源

      1. 登录 Grafana 控制台后,点击左侧导航栏的 Connections

      2. 搜索数据源,如 Tempo

      3. 点击数据源名称,进入数据源概览页面。

      4. 点击右上角的 Add new data source,进入数据源配置页面。

      5. 输入 Tempo 数据源的服务器地址:<cluster-node-ip>:<tempo-query-frontend-nodeport>。例如,根据上一步获取的 NodePort,应输入 <cluster-node-ip>:30835

        url

      6. 添加 header。x-scope-orgid: wiztelemetry-tracing-ks

        http header

      7. 为 Service graph 设置 Prometheus 数据源。

        prometheus

      8. 点击最下方的 Save & test,完成数据源的添加。

  5. 在 Grafana 控制台的左侧导航栏点击 Explore 进入页面,选择 Tempo 数据源。

  6. 点击 TraceQL 页签,然后点击右上角的refresh-light运行查询,以列出最新追踪数据。点击其中一个查看链路图。

    trace tab

  7. 点击 Service Graph 页签,然后点击右上角的refresh-light运行查询,以查看由 Tempo 生成的服务拓扑图。

    graph

    说明

    有关 Tempo 的更多信息,请参阅 Grafana Tempo 官方文档