菜单
开源

Grafana 数据源

您可以通过在 Grafana 中配置 Tempo 数据源,使用 Grafana 查询和可视化 TempoStack 实例的跟踪。

使用 Grafana Operator

如果您的 Grafana 实例由 Grafana Operator 管理,您可以指示 Tempo Operator 创建一个数据源(即 GrafanaDatasource 自定义资源)

yaml
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
spec:
  observability:
    grafana:
      createDatasource: true

注意

必须在 Tempo Operator 配置中启用 feature gate featureGates.grafanaOperator

手动配置数据源

您可以选择是否使用 Tempo Operator 的网关

  • 如果使用网关部署 TempoStack,您需要向 Grafana 提供认证信息,以及您希望查看跟踪的租户 URL。

  • 如果未使用网关,则需要确保 Grafana 可以访问 query-frontend 端点。

更多信息请参考 Grafana 的 Tempo 数据源文档

配合网关使用

网关是作为 Tempo Operator 一部分部署的可选组件,通过查询 OAuth/OIDC 端点获取请求主体,从而提供对 Tempo 的 Distributor(例如,用于推送 Span)和 Query-frontend(例如,用于查询跟踪)的安全访问。

OIDC 配置需要提供 clientIDclientSecret。它们应通过 TempoStack 管理员预先提供的 Kubernetes Secret 提供。

网关公开了所有 Tempo 查询端点,因此您可以将该端点用作 Grafana 的 Tempo 数据源。

如果 Grafana 配置了某些 OAuth 提供商(例如通用 OAuth),则部署带网关的 TempoStack 时应使用相同的 clientIDclientSecret

yaml
apiVersion: v1
kind: Secret
metadata:
 name: oidc-test
stringData:
 clientID: <clientID used for grafana authentication>
 clientSecret: <clientSecret used for grafana authentication>
type: Opaque

然后部署启用网关的 TempoStack

yaml
spec:
 template:
  gateway:
   enabled: true
 tenants:
  mode: static
  authentication:
    - tenantName: test-oidc
      tenantId: test-oidc
      oidc:
      issuerURL: http://dex:30556/dex
      redirectURL: http://tempo-foo-gateway:8080/oidc/test-oidc/callback
      usernameClaim: email
      secret:
       name: oidc-test

将数据源 URL 参数设置为 http://<HOST>:<PORT>/api/traces/v1/{tenant}/tempo/,其中 {tenant} 是租户的名称。

要将其用作数据源,请将“Authentication Method”设置为“Forward Oauth Identify”,并为网关和 OAuth 配置使用相同的 clientIDclientSecret。这将把 access_token 转发到网关,以便它能认证客户端。

Tempo data source configured for the gateway forwarding OAuth access token

如果您希望直接设置 Bearer Token 而不使用“Forward Oauth Identify”,可以将其添加到“Authorization”请求头中。

Tempo data source configured for the gateway using Bearer token

不使用网关

如果您不使用网关,请确保您的 Grafana 可以访问 query-frontend 端点,您可以通过在 OpenShift 中创建 Ingress 或 Route 来实现这一点。

获取端点后,您可以在创建 Tempo 数据源时将其设置为 URL