1.6.4. 在 OpenShift 实例上安装 Jaeger

本节提供有关在您运行的 OpenShift 实例上安装 Jaeger 的信息。

警告

Jaeger 是一个第三方组件,3scale 不提供支持,但 APIcast 的使用除外。以下说明仅作为参考示例提供,不适用于生产用途。

  1. 在当前命名空间中安装 Jaeger all-in-one:

    oc process -f https://raw.githubusercontent.com/jaegertracing/jaeger-openshift/master/all-in-one/jaeger-all-in-one-template.yml | oc create -f -
  2. 创建 Jaeger 配置文件 jaeger_config.json 并添加以下内容:

    {
        "service_name": "apicast",
        "disabled": false,
        "sampler": {
          "type": "const",
          "param": 1
        },
        "reporter": {
          "queueSize": 100,
          "bufferFlushInterval": 10,
          "logSpans": false,
          "localAgentHostPort": "jaeger-agent:6831"
        },
        "headers": {
          "jaegerDebugHeader": "debug-id",
          "jaegerBaggageHeader": "baggage",
          "TraceContextHeaderName": "uber-trace-id",
          "traceBaggageHeaderPrefix": "testctx-"
        },
        "baggage_restrictions": {
            "denyBaggageOnInitializationFailure": false,
            "hostPort": "127.0.0.1:5778",
            "refreshInterval": 60
        }
     }
    • 设置 1 的 sampler 常量以对所有请求进行抽样
    • 设置报告器的位置和队列大小
    • 设置 标头,包括用于 跟踪请求的 TraceContextHeaderName
  3. 从 Jaeger 配置文件创建 ConfigMap,并将其挂载到 APIcast:

    oc create configmap jaeger-config --from-file=jaeger_config.json
    oc set volumes dc/apicast --add -m /tmp/jaeger/ --configmap-name jaeger-config
  4. 使用我们刚添加的配置启用 OpenTracing 和 Jaeger:

    oc set env deploymentConfig/apicast OPENTRACING_TRACER=jaeger OPENTRACING_CONFIG=/tmp/jaeger/jaeger_config.json
  5. 查找 Jaeger 接口运行的 URL:

    oc get route
    (…) jaeger-query-myproject.127.0.0.1.nip.io
  6. 打开上一步中的 Jaeger 接口,它显示来自 Openshift Health 检查的数据。
  7. 最后一步是在后端 API 中添加 OpenTracing 和 Jaeger 支持,以便您可以看到完整的请求 trace。根据所用的框架和语言,每个后端都有所不同。作为参考,请参阅在 Kubernetes 中使用 OpenTracing 和 Jaeger 来收集应用程序指标

有关配置 Jaeger 的更多信息,请参阅: