×

如果您不想安装 Red Hat OpenShift 分布式追踪的所有组件,您仍然可以在 OpenShift Container Platform 上使用 OpenShift Serverless 进行分布式追踪。

配置 Jaeger 以启用分布式追踪

要使用 Jaeger 启用分布式追踪,您必须安装并配置 Jaeger 作为独立集成。

先决条件
  • 您具有 OpenShift Container Platform 的集群管理员权限,或者您具有 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 的集群或专用管理员权限。

  • 您已安装 OpenShift Serverless 运算符、Knative Serving 和 Knative Eventing。

  • 您已安装 Red Hat OpenShift 分布式追踪平台运算符。

  • 您已安装 OpenShift CLI(oc)。

  • 您已创建项目或有权访问具有创建应用程序和其他工作负载的适当角色和权限的项目。

步骤
  1. 创建并应用包含以下内容的Jaeger自定义资源 (CR)

    Jaeger CR
    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: jaeger
      namespace: default
  2. 通过编辑KnativeServing CR 并添加追踪的 YAML 配置来启用 Knative Serving 的追踪

    Serving 的追踪 YAML 示例
    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      config:
        tracing:
          sample-rate: "0.1" (1)
          backend: zipkin (2)
          zipkin-endpoint: "http://jaeger-collector.default.svc.cluster.local:9411/api/v2/spans" (3)
          debug: "false" (4)
    1 sample-rate 定义采样概率。使用sample-rate: "0.1" 表示采样 10 个追踪中的 1 个。
    2 backend必须设置为zipkin
    3 zipkin-endpoint必须指向您的jaeger-collector服务端点。要获取此端点,请替换应用 Jaeger CR 的命名空间。
    4 调试应设置为false。通过设置debug: "true"启用调试模式允许将所有跨度发送到服务器,从而绕过采样。
  3. 通过编辑KnativeEventing CR 来启用 Knative Eventing 的追踪

    Eventing 的追踪 YAML 示例
    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeEventing
    metadata:
      name: knative-eventing
      namespace: knative-eventing
    spec:
      config:
        tracing:
          sample-rate: "0.1" (1)
          backend: zipkin (2)
          zipkin-endpoint: "http://jaeger-collector.default.svc.cluster.local:9411/api/v2/spans" (3)
          debug: "false" (4)
    1 sample-rate 定义采样概率。使用sample-rate: "0.1" 表示采样 10 个追踪中的 1 个。
    2 backend设置为zipkin
    3 zipkin-endpoint指向您的jaeger-collector服务端点。要获取此端点,请替换应用 Jaeger CR 的命名空间。
    4 调试应设置为false。通过设置debug: "true"启用调试模式允许将所有跨度发送到服务器,从而绕过采样。
验证

您可以通过使用jaeger路由访问 Jaeger Web 控制台以查看追踪数据。

  1. 输入以下命令获取jaeger路由的主机名

    $ oc get route jaeger -n default
    示例输出
    NAME     HOST/PORT                         PATH   SERVICES       PORT    TERMINATION   WILDCARD
    jaeger   jaeger-default.apps.example.com          jaeger-query   <all>   reencrypt     None
  2. 在您的浏览器中打开端点地址以查看控制台。