Menu Close

2.8.4. 使用 3scale 操作器配置 OpenTracing

在使用嵌入式 APIcast 的 3scale 安装中,您可以使用 3scale 操作器来配置 OpenTracing。您可以在暂存或生产环境中配置 OpenTracing。通过启用 OpenTracing,您可以在 APIcast 实例上获得更深入的观察功能。

先决条件

流程

  1. 定义在 stringData.config 中包含您的 OpenTracing 配置详情的机密。这是包含 OpenTracing 配置详细信息的 属性的唯一有效值。任何其他规格都可防止 APIcast 接收您的 OpenTracing 配置详细信息。folowing 示例显示了一个有效的 secret 定义:

    apiVersion: v1
    kind: Secret
    metadata:
      name: myjaeger
    stringData:
      config: |-
          {
          "service_name": "apicast",
          "disabled": false,
          "sampler": {
            "type": "const",
            "param": 1
          },
          "reporter": {
            "queueSize": 100,
            "bufferFlushInterval": 10,
            "logSpans": false,
            "localAgentHostPort": "jaeger-all-in-one-inmemory-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
          }
          }
    type: Opaque
  2. 创建 secret.例如,如果您在 myjaeger.yaml 文件中保存了之前的 secret 定义,您应该运行以下命令:

    oc create secret generic myjaeger --from-file myjaeger.yaml
  3. 定义指定 OpenTracing 属性的 APIManager 自定义资源。在 CR 定义中,将 openTracing.tracingConfigSecretRef.name 属性设置为包含 OpenTracing 配置详情的 secret 的名称。下例仅显示与配置 OpenTracing 相关的内容。

    apiVersion: apps.3scale.net/v1alpha1
    kind: APIManager
    metadata:
      name: apimanager1
    spec:
      apicast:
        stagingSpec:
          ...
          openTracing:
            enabled: true
            tracingLibrary: jaeger
            tracingConfigSecretRef:
              name: myjaeger
        productionSpec:
          ...
            openTracing:
              enabled: true
              tracingLibrary: jaeger
              tracingConfigSecretRef:
                name: myjaeger
  4. 创建用于配置 OpenTracing 的 APIManager 自定义资源。例如,如果您在 apimanager1.yaml 文件中保存了 APIManager 自定义资源,您将运行以下命令:

    oc apply -f apimanager1.yaml

后续步骤

根据 OpenTracing 的安装方式,您应该在 Jaeger 服务用户界面中看到 trace。