1.27. Jaeger 設定リファレンス

Service Mesh Operator は ServiceMeshControlPlane リソースをデプロイする際に、分散トレースのリソースを作成することもできます。Service Mesh は分散トレースに Jaeger を使用します。

重要
  • Jaeger は、FIPS 検証済みの暗号化モジュールを使用しません。
  • Red Hat OpenShift Service Mesh 2.5 以降、Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) が非推奨になりました。これは今後のリリースで削除される予定です。Red Hat は、現在のリリースのライフサイクル中にこの機能のバグ修正とサポートを提供しますが、この機能は今後、機能拡張を受け取らず、削除されます。Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) の代わりに、Red Hat OpenShift 分散トレーシングプラットフォーム (Tempo) を使用できます。

1.27.1. トレースの有効化および無効化

ServiceMeshControlPlane リソースでトレースタイプおよびサンプリングレートを指定して、分散トレースを有効にします。

デフォルトの all-in-one Jaeger パラメーター

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.5
  tracing:
    sampling: 100
    type: Jaeger

現在、サポートされるトレーサーの唯一のタイプは Jaeger です。

Jaeger はデフォルトで有効になっています。トレースを無効にするには、typeNone に設定します。

サンプリングレートは、Envoy プロキシーがトレースを生成する頻度を決定します。サンプリングレートオプションを使用して、トレースシステムに報告される要求の割合を制御できます。この設定は、メッシュ内のトラフィックおよび収集するトレースデータ量に基づいて設定できます。sampling は 0.01% の増分を表すスケーリングされた整数として設定します。たとえば、値を 10 サンプル (0.1% トレース)、および 500 サンプル (5% トレース)、および 10000 サンプル (100% トレース) に設定します。

注記

SMCP サンプリング設定オプションは Envoy サンプリングレートを制御します。Jaeger トレースサンプリングレートを Jaeger カスタムリソースで設定します。

1.27.2. SMCP での Jaeger 設定の指定

Jaeger は、ServiceMeshControlPlane リソースの addons セクションで設定します。ただし、SMCP で設定可能な内容にはいくつかの制限があります。

SMCP が設定情報を Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator に渡すと、allInOneproduction、または streaming の 3 つのデプロイメントストラテジーのいずれかがトリガーされます。

1.27.3. 分散トレースプラットフォームのデプロイ

分散トレースプラットフォーム (Jaeger) には、事前に定義されたデプロイメントストラテジーがあります。Jaeger カスタムリソース (CR) ファイルでデプロイメントストラテジーを指定します。分散トレースプラットフォーム (Jaeger) インスタンスの作成時に、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator はこの設定ファイルを使用してデプロイメントに必要なオブジェクトを作成します。

Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は現時点で以下のデプロイメントストラテジーをサポートします。

  • allInOne (デフォルト): このストラテジーは、開発、テスト、およびデモを目的としたものであり、実稼働での使用を目的としたものではありません。主なバックエンドコンポーネントである Agent、Collector、および Query サービスはすべて、インメモリーストレージを使用するように (デフォルトで) 設定された単一の実行可能ファイルにパッケージ化されます。このデプロイメントストラテジーは、SMCP で設定できます。

    注記

    インメモリーストレージには永続性がありません。つまり、Jaeger インスタンスがシャットダウンするか、再起動するか、置き換えられると、トレースデータが失われます。各 Pod には独自のメモリーがあるため、インメモリーストレージはスケーリングできません。永続ストレージの場合は、デフォルトのストレージとして Elasticsearch を使用する production または streaming ストラテジーを使用する必要があります。

  • production: production ストラテジーは、実稼働環境向けのストラテジーであり、トレースデータの長期の保存が重要となり、より拡張性および高可用性のあるアーキテクチャーも必要になります。そのため、バックエンドの各コンポーネントは別々にデプロイされます。エージェントは、インストルメント化されたアプリケーションのサイドカーとして挿入できます。Query および Collector サービスは、サポートされているストレージタイプ (現時点では Elasticsearch) で設定されます。これらの各コンポーネントの複数のインスタンスは、パフォーマンスと回復性を確保するために、必要に応じてプロビジョニングできます。このデプロイメントストラテジーを SMCP に設定できますが、完全にカスタマイズするには、Jaeger CR で設定を指定し、SMCP にリンクする必要があります。
  • streaming: streaming ストラテジーは、Collector と Elasticsearch バックエンドストレージ間に配置されるストリーミング機能を提供することで、production ストラテジーを増強する目的で設計されています。これにより、負荷の高い状況でバックエンドストレージに加わる圧力を軽減し、他のトレース処理後の機能がストリーミングプラットフォーム (AMQ Streams/ Kafka) から直接リアルタイムのスパンデータを利用できるようにします。このデプロイメントストラテジーを SMCP で設定することはできません。Jaeger CR を設定し、SMCP へのリンクを設定する必要があります。
注記

streaming ストラテジーには、AMQ Streams 用の追加の Red Hat サブスクリプションが必要です。

1.27.3.1. デフォルトの分散トレースプラットフォーム (Jaeger) のデプロイメント

Jaeger 設定オプションを指定しない場合、ServiceMeshControlPlane リソースはデフォルトで allInOne Jaeger デプロイメントストラテジーを使用します。デフォルトの allInOne デプロイメントストラテジーを使用する場合は、spec.addons.jaeger.install.storage.typeMemory に設定します。デフォルトを使用するか、install で追加設定オプションを許可できます。

コントロールプレーンのデフォルト Jaeger パラメーター (Memory)

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.5
  tracing:
    sampling: 10000
    type: Jaeger
  addons:
    jaeger:
      name: jaeger
      install:
        storage:
          type: Memory

1.27.3.2. 実稼働環境の分散トレーシングプラットフォーム (Jaeger) のデプロイメント (最小限)

production デプロイメントストラテジーのデフォルト設定を使用するには、spec.addons.jaeger.install.storage.typeElasticsearch に設定し、install で追加設定オプションを指定します。SMCP は Elasticsearch リソースおよびイメージ名の設定のみをサポートすることに注意してください。

コントロールプレーンのデフォルト Jaeger パラメーター (Elasticsearch)

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.5
  tracing:
    sampling: 10000
    type: Jaeger
  addons:
    jaeger:
      name: jaeger  #name of Jaeger CR
      install:
        storage:
          type: Elasticsearch
        ingress:
          enabled: true
  runtime:
    components:
      tracing.jaeger.elasticsearch: # only supports resources and image name
        container:
          resources: {}

1.27.3.3. 実稼働の分散トレーシングプラットフォーム (Jaeger) のデプロイメント (完全にカスタマイズ)

SMCP は最小限の Elasticsearch パラメーターのみをサポートします。実稼働環境を完全にカスタマイズし、すべての Elasticsearch 設定パラメーターにアクセスするには、Jaeger カスタムリソース (CR) を使用して Jaeger を設定します。

または、Jaeger インスタンスを作成および設定し、spec.addons.jaeger.name を Jaeger インスタンスの名前 (この例では MyJaegerInstance) に設定できます。

Jaeger production CR がリンクされたコントロールプレーン

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.5
  tracing:
    sampling: 1000
    type: Jaeger
  addons:
    jaeger:
      name: MyJaegerInstance #name of Jaeger CR
      install:
        storage:
          type: Elasticsearch
        ingress:
          enabled: true

1.27.3.4. Jaeger デプロイメントのストリーミング

streaming デプロイメントストラテジーを使用するには、まず Jaeger インスタンスを作成および設定してから、spec.addons.jaeger.name を Jaeger インスタンスの名前 (この例では MyJaegerInstance) に設定します。

リンクされた Jaeger ストリーミング CR を使用したコントロールプレーン

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.5
  tracing:
    sampling: 1000
    type: Jaeger
  addons:
    jaeger:
      name: MyJaegerInstance  #name of Jaeger CR

1.27.4. Jaeger カスタムリソースでの Jaeger 設定の指定

ServiceMeshControlPlane (SMCP) リソースではなく Jaeger カスタムリソース (CR) に Jaeger を設定し、Jaeger デプロイメントを完全にカスタマイズできます。この設定は SMCP の外部に指定されているため、外部 Jaeger と呼ばれることもあります。

注記

SMCP と Jaeger CR を同じ namespace にデプロイする必要があります。たとえば、istio-system です。

スタンドアロンの Jaeger インスタンスを設定し、デプロイしてから、Jaeger リソースの name を、SMCP リソースの spec.addons.jaeger.name の値として指定できます。name の値に一致する Jaeger CR が存在する場合、Service Mesh コントロールプレーンは既存のインストールを使用します。この方法では、Jaeger 設定を完全にカスタマイズできます。

1.27.4.1. デプロイメントのベストプラクティス

  • Red Hat OpenShift 分散トレースプラットフォームインスタンスの名前は一意でなければなりません。複数の Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) インスタンスがあり、サイドカーが挿入されたエージェントを使用している場合、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) インスタンスには一意の名前が必要となり、挿入 (injection) のアノテーションはトレースデータを報告する必要のある Red Hat OpenShift 分散トレースプラットフォームインスタンスの名前を明示的に指定する必要があります。
  • マルチテナントの実装があり、テナントが namespace で分離されている場合は、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) インスタンスを各テナント namespace にデプロイします。

永続ストレージの設定は、永続ストレージについて と、選択したストレージオプションに適した設定トピックを参照してください。

1.27.4.2. Service Mesh の分散トレースセキュリティーの設定

分散トレーシングプラットフォーム (Jaeger) は、デフォルトの認証に OAuth を使用します。ただし、Red Hat OpenShift Service Mesh は htpasswd と呼ばれるシークレットを使用して、Grafana、Kiali、分散トレーシングプラットフォーム (Jaeger) などの依存サービス間の通信を容易にします。ServiceMeshControlPlane で分散トレーシングプラットフォーム (Jaeger) を設定すると、Service Mesh は htpasswd を使用するようにセキュリティー設定を自動的に設定します。

Jaeger カスタムリソースで分散トレースプラットフォーム (Jaeger) 設定を指定している場合は、htpasswd 設定を手動で設定し、htpasswd シークレットが Jaeger インスタンスにマウントされていることを確認して、Kiali が Jaeger インスタンスと通信できるようにする必要があります。

1.27.4.2.1. Web コンソールからの Service Mesh の分散トレースセキュリティーの設定

Jaeger リソースを変更して、Web コンソールの Service Mesh で使用する分散トレースプラットフォーム (Jaeger) セキュリティーを設定できます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。(Red Hat OpenShift Dedicated を使用する場合) dedicated-admin ロールがあるアカウント。
  • Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
  • クラスターにデプロイされた ServiceMeshControlPlane
  • OpenShift Container Platform Web コンソールにアクセスできる。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。
  2. OperatorsInstalled Operators に移動します。
  3. Project メニューをクリックし、リストから ServiceMeshControlPlane リソースがデプロイされているプロジェクト (例: istio-system) を選択します。
  4. Red Hat OpenShift distributed tracing platform (Jaeger) Operator をクリックします。
  5. Operator の詳細 ページで、Jaeger タブをクリックします。
  6. Jaeger インスタンスの名前をクリックします。
  7. Jaeger の詳細ページで、YAML タブをクリックして設定を変更します。
  8. 次の例に示すように、Jaeger カスタムリソースファイルを編集して、htpasswd 設定を追加します。

    • spec.ingress.openshift.htpasswdFile
    • spec.volumes
    • spec.volumeMounts

      htpasswd 設定を示す Jaeger リソースの例

      apiVersion: jaegertracing.io/v1
      kind: Jaeger
      spec:
        ingress:
          enabled: true
          openshift:
            htpasswdFile: /etc/proxy/htpasswd/auth
            sar: '{"namespace": "istio-system", "resource": "pods", "verb": "get"}'
          options: {}
          resources: {}
          security: oauth-proxy
        volumes:
          - name: secret-htpasswd
            secret:
              secretName: htpasswd
          - configMap:
              defaultMode: 420
              items:
                - key: ca-bundle.crt
                  path: tls-ca-bundle.pem
              name: trusted-ca-bundle
              optional: true
            name: trusted-ca-bundle
        volumeMounts:
          - mountPath: /etc/proxy/htpasswd
            name: secret-htpasswd
          - mountPath: /etc/pki/ca-trust/extracted/pem/
            name: trusted-ca-bundle
            readOnly: true
      # ...

  9. Save をクリックします。
1.27.4.2.2. コマンドラインからの Service Mesh の分散トレースセキュリティーの設定

Jaeger リソースを変更して、OpenShift CLI (oc) を実行して、コマンドラインから Service Mesh で使用する分散トレースプラットフォーム (Jaeger) セキュリティーを設定できます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。(Red Hat OpenShift Dedicated を使用する場合) dedicated-admin ロールがあるアカウント。
  • Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
  • クラスターにデプロイされた ServiceMeshControlPlane
  • OpenShift Container Platform バージョンに一致する OpenShift CLI (oc) にアクセスできる。

手順

  1. 以下のコマンドを実行して、cluster-admin ロールが割り当てられたユーザーとして OpenShift CLI (oc) にログインします。(Red Hat OpenShift Dedicated を使用する場合) dedicated-admin ロールがあるアカウント。

    $ oc login https://<HOSTNAME>:6443
  2. 次のコマンドを入力して、コントロールプレーンをインストールしたプロジェクト (istio-system など) に変更します。

    $ oc project istio-system
  3. 次のコマンドを実行して、Jaeger カスタムリソースファイルを編集します。

    $ oc edit -n openshift-distributed-tracing -f jaeger.yaml
  4. 次の例に示すように、Jaeger カスタムリソースファイルを編集して、htpasswd 設定を追加します。

    • spec.ingress.openshift.htpasswdFile
    • spec.volumes
    • spec.volumeMounts

      htpasswd 設定を示す Jaeger リソースの例

      apiVersion: jaegertracing.io/v1
      kind: Jaeger
      spec:
        ingress:
          enabled: true
          openshift:
            htpasswdFile: /etc/proxy/htpasswd/auth
            sar: '{"namespace": "istio-system", "resource": "pods", "verb": "get"}'
          options: {}
          resources: {}
          security: oauth-proxy
        volumes:
          - name: secret-htpasswd
            secret:
              secretName: htpasswd
          - configMap:
              defaultMode: 420
              items:
                - key: ca-bundle.crt
                  path: tls-ca-bundle.pem
              name: trusted-ca-bundle
              optional: true
            name: trusted-ca-bundle
        volumeMounts:
          - mountPath: /etc/proxy/htpasswd
            name: secret-htpasswd
          - mountPath: /etc/pki/ca-trust/extracted/pem/
            name: trusted-ca-bundle
            readOnly: true

  5. Pod のデプロイメントの進行状況を監視するには、次のコマンドを実行します。

    $ oc get pods -n openshift-distributed-tracing

1.27.4.3. 分散トレースのデフォルト設定オプション

Jaeger カスタムリソース (CR) は、分散トレースプラットフォーム (Jaeger) リソースの作成時に使用されるアーキテクチャーおよび設定を定義します。これらのパラメーターを変更して、分散トレースプラットフォーム (Jaeger) の実装をビジネスニーズに合わせてカスタマイズできます。

Jaeger CR の汎用 YAML の例

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: name
spec:
  strategy: <deployment_strategy>
  allInOne:
    options: {}
    resources: {}
  agent:
    options: {}
    resources: {}
  collector:
    options: {}
    resources: {}
  sampling:
    options: {}
  storage:
    type:
    options: {}
  query:
    options: {}
    resources: {}
  ingester:
    options: {}
    resources: {}
  options: {}

表1.39 Jaeger パラメーター

パラメーター説明デフォルト値

apiVersion:

オブジェクトの作成時に使用する API バージョン。

jaegertracing.io/v1

jaegertracing.io/v1

kind:

作成する Kubernetes オブジェクトの種類を定義します。

jaeger

 

metadata:

name 文字列、UID、およびオプションの namespace などのオブジェクトを一意に特定するのに役立つデータ。

 

OpenShift Container Platform は UID を自動的に生成し、オブジェクトが作成されるプロジェクトの名前で namespace を完了します。

name:

オブジェクトの名前。

分散トレースプラットフォーム (Jaeger) インスタンスの名前。

jaeger-all-in-one-inmemory

spec:

作成するオブジェクトの仕様。

分散トレースプラットフォーム (Jaeger) インスタンスのすべての設定パラメーターが含まれます。すべての Jaeger コンポーネントの共通定義が必要な場合、これは spec ノードで定義されます。定義が個々のコンポーネントに関連する場合は、spec/<component> ノードに置かれます。

該当なし

strategy:

Jaeger デプロイメントストラテジー

allInOneproduction、または streaming

allInOne

allInOne:

allInOne イメージは Agent、Collector、Query、Ingester、および Jaeger UI を単一 Pod にデプロイするため、このデプロイメントの設定は、コンポーネント設定を allInOne パラメーターの下でネストする必要があります。

  

agent:

Agent を定義する設定オプション。

  

collector:

Jaeger Collector を定義する設定オプション。

  

sampling:

トレース用のサンプリングストラテジーを定義する設定オプション。

  

storage:

ストレージを定義する設定オプション。すべてのストレージ関連のオプションは、allInOne または他のコンポーネントオプションではなく、storage に配置される必要があります。

  

query:

Query サービスを定義する設定オプション。

  

ingester:

Ingester サービスを定義する設定オプション。

  

以下の YAML の例は、デフォルト設定を使用して Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) のデプロイメントを作成するために最低限必要なものです。

最小限必要な dist-tracing-all-in-one.yaml の例

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger-all-in-one-inmemory

1.27.4.4. Jaeger Collector 設定オプション

Jaeger Collector は、トレーサーによってキャプチャーされたスパンを受信し、production ストラテジーを使用する場合はそれらを永続 Elasticsearch ストレージに書き込み、streaming ストラテジーを使用する場合は AMQ Streams に書き込むコンポーネントです。

Collector はステートレスであるため、Jaeger Collector のインスタンスの多くは並行して実行できます。Elasticsearch クラスターの場所を除き、Collector では設定がほとんど必要ありません。

表1.40 Operator によって使用される Jaeger Collector パラメーターを定義するためのパラメーター

パラメーター説明
collector:
  replicas:

作成する Collector レプリカの数を指定します。

整数 (例: 5)。

表1.41 Collector に渡される設定パラメーター

パラメーター説明
spec:
 collector:
  options: {}

Jaeger Collector を定義する設定オプション。

 
options:
  collector:
    num-workers:

キューからプルするワーカーの数。

整数 (例: 50)。

options:
  collector:
    queue-size:

Collector キューのサイズ。

整数 (例: 2000)。

options:
  kafka:
    producer:
      topic: jaeger-spans

topic パラメーターは、Collector によってメッセージを生成するために使用され、Ingester によってメッセージを消費するために使用される Kafka 設定を特定します。

プロデューサーのラベル。

options:
  kafka:
    producer:
      brokers: my-cluster-kafka-brokers.kafka:9092

メッセージを生成するために Collector によって使用される Kafka 設定を特定します。ブローカーが指定されていない場合で、AMQ Streams 1.4.0+ がインストールされている場合、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は Kafka をセルフプロビジョニングします。

 
options:
  log-level:

Collector のロギングレベル。

使用できる値は、debuginfowarnerrorfatalpanic です。

options:
  otlp:
    enabled: true
    grpc:
      host-port: 4317
      max-connection-age: 0s
      max-connection-age-grace: 0s
      max-message-size: 4194304
      tls:
        enabled: false
        cert: /path/to/cert.crt
        cipher-suites: "TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256"
        client-ca: /path/to/cert.ca
        reload-interval: 0s
        min-version: 1.2
        max-version: 1.3

OTLP/gRPC を受け入れるには、otlp を明示的に有効にします。他はすべて任意のオプションです。

 
options:
  otlp:
    enabled: true
    http:
      cors:
        allowed-headers: [<header-name>[, <header-name>]*]
        allowed-origins: *
      host-port: 4318
      max-connection-age: 0s
      max-connection-age-grace: 0s
      max-message-size: 4194304
      read-timeout: 0s
      read-header-timeout: 2s
      idle-timeout: 0s
      tls:
        enabled: false
        cert: /path/to/cert.crt
        cipher-suites: "TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256"
        client-ca: /path/to/cert.ca
        reload-interval: 0s
        min-version: 1.2
        max-version: 1.3

OTLP/HTTP を受け入れるには、otlp を明示的に有効にします。他はすべて任意のオプションです。

 

1.27.4.5. 分散トレースのサンプリング設定オプション

この Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は、リモートサンプラーを使用するように設定されているトレーサーに提供されるサンプリングストラテジーを定義するために使用できます。

すべてのトレースが生成される間に、それらの一部のみがサンプリングされます。トレースをサンプリングすると、追加の処理や保存のためにトレースにマークが付けられます。

注記

これは、トレースがサンプリングの意思決定が行われる際に Envoy プロキシーによって開始されている場合に関連がありません。Jaeger サンプリングの意思決定は、トレースがクライアントを使用してアプリケーションによって開始される場合にのみ関連します。

サービスがトレースコンテキストが含まれていない要求を受信すると、クライアントは新しいトレースを開始し、これにランダムなトレース ID を割り当て、現在インストールされているサンプリングストラテジーに基づいてサンプリングの意思決定を行います。サンプリングの意思決定はトレース内の後続のすべての要求に伝播され、他のサービスが再度サンプリングの意思決定を行わないようにします。

分散トレーシングプラットフォーム (Jaeger) ライブラリーは、次のサンプラーをサポートしています。

  • Probabilistic: サンプラーは、sampling.param プロパティーの値と等しいサンプリングの確率で、ランダムなサンプリングの意思決定を行います。たとえば、sampling.param=0.1 を使用した場合は、約 10 のうち 1 トレースがサンプリングされます。
  • Rate Limiting: サンプラーは、リーキーバケット (leaky bucket) レートリミッターを使用して、トレースが一定のレートでサンプリングされるようにします。たとえば、sampling.param=2.0 を使用した場合は、1 秒あたり 2 トレースの割合で要求がサンプリングされます。

表1.42 Jaeger サンプリングのオプション

パラメーター説明デフォルト値
spec:
 sampling:
  options: {}
    default_strategy:
    service_strategy:

トレース用のサンプリングストラテジーを定義する設定オプション。

 

設定を指定しない場合、Collector はすべてのサービスの確率 0.001 (0.1%) のデフォルトの確率的なサンプリングポリシーを返します。

default_strategy:
  type:
service_strategy:
  type:

使用するサンプリングストラテジー。上記の説明を参照してください。

有効な値は probabilistic、および ratelimiting です。

probabilistic

default_strategy:
  param:
service_strategy:
  param:

選択したサンプリングストラテジーのパラメーター

10 進値および整数値 (0、.1、1、10)

1

この例では、トレースインスタンスをサンプリングする確率が 50% の確率的なデフォルトサンプリングストラテジーを定義します。

確率的なサンプリングの例

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: with-sampling
spec:
  sampling:
    options:
      default_strategy:
        type: probabilistic
        param: 0.5
      service_strategies:
        - service: alpha
          type: probabilistic
          param: 0.8
          operation_strategies:
            - operation: op1
              type: probabilistic
              param: 0.2
            - operation: op2
              type: probabilistic
              param: 0.4
        - service: beta
          type: ratelimiting
          param: 5

ユーザーによって指定される設定がない場合、分散トレースプラットフォーム (Jaeger) は以下の設定を使用します。

デフォルトのサンプリング

spec:
  sampling:
    options:
      default_strategy:
        type: probabilistic
        param: 1

1.27.4.6. 分散トレースのストレージ設定オプション

spec.storage の下で Collector、Ingester、および Query サービスのストレージを設定します。これらの各コンポーネントの複数のインスタンスは、パフォーマンスと回復性を確保するために、必要に応じてプロビジョニングできます。

表1.43 分散トレースストレージを定義するために Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator によって使用される一般的なストレージパラメーター

パラメーター説明デフォルト値
spec:
  storage:
    type:

デプロイメントに使用するストレージのタイプ。

memory または elasticsearchメモリーストレージは、Pod がシャットダウンした場合にデータが永続化されないため、開発、テスト、デモ、および概念検証用の環境にのみに適しています。実稼働環境では、分散トレースプラットフォーム (Jaeger) は永続ストレージの Elasticsearch をサポートします。

memory

storage:
  secretname:

シークレットの名前 (例:tracing-secret )。

 

該当なし

storage:
  options: {}

ストレージを定義する設定オプション。

  

表1.44 Elasticsearch インデックスクリーナーのパラメーター

パラメーター説明デフォルト値
storage:
  esIndexCleaner:
    enabled:

Elasticsearch ストレージを使用する場合は、デフォルトでジョブが作成され、古いトレースをインデックスからクリーンアップします。このパラメーターは、インデックスクリーナージョブを有効または無効にします。

true/ false

true

storage:
  esIndexCleaner:
    numberOfDays:

インデックスの削除を待機する日数。

整数値

7

storage:
  esIndexCleaner:
    schedule:

Elasticsearch インデックスを消去する頻度に関するスケジュールを定義します。

cron 式

"55 23 * * *"

1.27.4.6.1. Elasticsearch インスタンスの自動プロビジョニング

Jaeger カスタムリソースをデプロイする場合に、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は、OpenShift Elasticsearch Operator を使用して、カスタムリソースファイルの ストレージ セクションで提供される設定に基づいて Elasticsearch クラスターを作成します。Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) Operator は、次の設定が指定されている場合、Elasticsearch をプロビジョニングします。

  • spec.storage:typeelasticsearch に設定されている
  • spec.storage.elasticsearch.doNotProvisionfalse に設定されている
  • spec.storage.options.es.server-urls が定義されていない。つまり、OpenShift Elasticsearch Operator によってプロビジョニングされていない Elasticsearch インスタンスへの接続がない。

Elasticsearch をプロビジョニングする場合には、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は、Elasticsearch カスタムリソース name を Jaeger カスタムリソースの spec.storage.elasticsearch.name の値に設定します。spec.storage.elasticsearch.name に値を指定しない場合、Operator は elasticsearch を使用します。

制約

  • namespace ごとにセルフプロビジョニングされた Elasticsearch インスタンスがある分散トレースプラットフォーム (Jaeger) 1 つだけを使用できます。Elasticsearch クラスターは単一の 分散トレースプラットフォーム (Jaeger) インスタンスの専用のクラスターになります。
  • namespace ごとに 1 つの Elasticsearch のみを使用できます。
注記

Elasticsearch を OpenShift ロギングの一部としてインストールしている場合、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator はインストールされた OpenShift Elasticsearch Operator を使用してストレージをプロビジョニングできます。

以下の設定パラメーターは、セルフプロビジョニングされた Elasticsearch インスタンスに対するものです。これは、OpenShift Elasticsearch Operator を使用して Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator によって作成されるインスタンスです。セルフプロビジョニングされた Elasticsearch の設定オプションは、設定ファイルの spec:storage:elasticsearch の下で指定します。

表1.45 Elasticsearch リソース設定パラメーター

パラメーター説明デフォルト値
elasticsearch:
  properties:
    doNotProvision:

Elasticsearch インスタンスを Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) Operator によってプロビジョニングするかどうかを指定するために使用します。

true/false

true

elasticsearch:
  properties:
    name:

Elasticsearch インスタンスの名前。Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は、このパラメーターで指定された Elasticsearch インスタンスを使用して Elasticsearch に接続します。

string

elasticsearch

elasticsearch:
  nodeCount:

Elasticsearch ノードの数。高可用性を確保するには、少なくとも 3 つのノードを使用します。スプリットブレインの問題が生じる可能性があるため、2 つのノードを使用しないでください。

整数値。例: 概念実証用 = 1、最小デプロイメント = 3

3

elasticsearch:
  resources:
    requests:
      cpu:

ご使用の環境設定に基づく、要求に対する中央処理単位の数。

コアまたはミリコアで指定されます (例: 200m、0.5、1)。例: 概念実証用 = 500m、最小デプロイメント = 1

1

elasticsearch:
  resources:
    requests:
      memory:

ご使用の環境設定に基づく、要求に使用できるメモリー。

バイト単位で指定します (例:200Ki、50Mi、5Gi)。例: 概念実証用 = 1Gi、最小デプロイメント = 16Gi*

16Gi

elasticsearch:
  resources:
    limits:
      cpu:

ご使用の環境設定に基づく、中央処理単位数の制限。

コアまたはミリコアで指定されます (例: 200m、0.5、1)。例: 概念実証用 = 500m、最小デプロイメント = 1

 
elasticsearch:
  resources:
    limits:
      memory:

ご使用の環境設定に基づく、利用可能なメモリー制限。

バイト単位で指定します (例:200Ki、50Mi、5Gi)。例: 概念実証用 = 1Gi、最小デプロイメント = 16Gi*

 
elasticsearch:
  redundancyPolicy:

データレプリケーションポリシーは、Elasticsearch シャードをクラスター内のデータノードにレプリケートする方法を定義します。指定されていない場合、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator はノード数に基づいて最も適切なレプリケーションを自動的に判別します。

ZeroRedundancy(レプリカシャードなし)、SingleRedundancy(レプリカシャード 1 つ)、MultipleRedundancy(各インデックスはデータノードの半分に分散される)、FullRedundancy (各インデックスはクラスター内のすべてのデータノードに完全にレプリケートされます)

 
elasticsearch:
  useCertManagement:

分散トレーシングプラットフォーム (Jaeger) が OpenShift Elasticsearch Operator の証明書管理機能を使用するかどうかを指定するために使用します。この機能は、OpenShift Container Platform 4.7 の {logging-title} 5.2 に追加されたもので、新しい Jaeger デプロイメントに推奨される設定です。

true/false

true

各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境でのデプロイメントには推奨されません。実稼働環境で使用する場合は、デフォルトで各 Pod に割り当てる設定を 16 Gi 未満にすることはできず、Pod ごとに最大 64 Gi を割り当てる必要があります。

実稼働ストレージの例

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    elasticsearch:
      nodeCount: 3
      resources:
        requests:
          cpu: 1
          memory: 16Gi
        limits:
          memory: 16Gi

永続ストレージを含むストレージの例:

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    elasticsearch:
      nodeCount: 1
      storage: 1
        storageClassName: gp2
        size: 5Gi
      resources:
        requests:
          cpu: 200m
          memory: 4Gi
        limits:
          memory: 4Gi
      redundancyPolicy: ZeroRedundancy

1
永続ストレージの設定。この場合、AWS gp2 のサイズは 5Gi です。値の指定がない場合、distributed tracing platform (Jaeger) は emptyDir を使用します。OpenShift Elasticsearch Operator は、distributed tracing platform (Jaeger) インスタンスで削除されない PersistentVolumeClaim および PersistentVolume をプロビジョニングします。同じ名前および namespace で分散トレースプラットフォーム (Jaeger) インスタンスを作成する場合は、同じボリュームをマウントできます。
1.27.4.6.2. 既存の Elasticsearch インスタンスへの接続

分散トレースプラットフォームを使用したストレージには、既存の Elasticsearch クラスターを使用できます。外部 Elasticsearch インスタンスとも呼ばれる既存の Elasticsearch クラスターは、Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) Operator または OpenShift Elasticsearch Operator によってインストールされなかったインスタンスです。

次の設定が指定されている場合に、Jaeger カスタムリソースをデプロイすると、Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) Operator は Elasticsearch をプロビジョニングしません。

  • spec.storage.elasticsearch.doNotProvisiontrue に設定されている
  • spec.storage.options.es.server-urls に値がある
  • spec.storage.elasticsearch.name に値がある場合、または Elasticsearch インスタンス名が elasticsearch の場合。

Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は、spec.storage.elasticsearch.name で指定された Elasticsearch インスタンスを使用して Elasticsearch に接続します。

制約

  • distributed tracing platform (Jaeger)で OpenShift Container Platform ロギング Elasticsearch インスタンスを共有したり、再利用したりすることはできません。Elasticsearch クラスターは単一の 分散トレースプラットフォーム (Jaeger) インスタンスの専用のクラスターになります。

以下の設定パラメーターは、外部 Elasticsearch インスタンスとして知られる、既存の Elasticsearch インスタンス向けです。この場合は、カスタムリソースファイルの spec:storage:options:es で、Elasticsearch の設定オプションを指定します。

表1.46 汎用 ES 設定パラメーター

パラメーター説明デフォルト値
es:
  server-urls:

Elasticsearch インスタンスの URL。

Elasticsearch サーバーの完全修飾ドメイン名。

http://elasticsearch.<namespace>.svc:9200

es:
  max-doc-count:

Elasticsearch クエリーから返す最大ドキュメント数。これは集約にも適用されます。es.max-doc-countes.max-num-spans の両方を設定する場合は、Elasticsearch は 2 つの内の小さい方の値を使用します。

 

10000

es:
  max-num-spans:

[非推奨: 今後のリリースで削除されます。代わりに es.max-doc-count を使用してください。] Elasticsearch のクエリーごとに、1 度にフェッチするスパンの最大数。es.max-num-spanses.max-doc-count の両方を設定する場合、Elasticsearch は 2 つの内の小さい方の値を使用します。

 

10000

es:
  max-span-age:

Elasticsearch のスパンの最大ルックバック。

 

72h0m0s

es:
  sniffer:

Elasticsearch のスニファー設定。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。

true/ false

false

es:
  sniffer-tls-enabled:

Elasticsearch クラスターに対してスニッフィングする際に TLS を有効にするためのオプション。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。

true/ false

false

es:
  timeout:

クエリーに使用されるタイムアウト。ゼロに設定するとタイムアウトはありません。

 

0s

es:
  username:

Elasticsearch で必要なユーザー名。Basic 認証は、指定されている場合に CA も読み込みます。es.password も参照してください。

  
es:
  password:

Elasticsearch で必要なパスワード。es.username も参照してください。

  
es:
  version:

主要な Elasticsearch バージョン。指定されていない場合、値は Elasticsearch から自動検出されます。

 

0

表1.47 ES データレプリケーションパラメーター

パラメーター説明デフォルト値
es:
  num-replicas:

Elasticsearch のインデックスごとのレプリカ数。

 

1

es:
  num-shards:

Elasticsearch のインデックスごとのシャード数。

 

5

表1.48 ES インデックス設定パラメーター

パラメーター説明デフォルト値
es:
  create-index-templates:

true に設定されている場合は、アプリケーションの起動時にインデックステンプレートを自動的に作成します。テンプレートが手動でインストールされる場合は、false に設定されます。

true/ false

true

es:
  index-prefix:

分散トレースプラットフォーム (Jaeger) インデックスのオプション接頭辞。たとえば、これを production に設定すると、production-tracing-* という名前のインデックスが作成されます。

  

表1.49 ES バルクプロセッサー設定パラメーター

パラメーター説明デフォルト値
es:
  bulk:
    actions:

バルクプロセッサーがディスクへの更新のコミットを決定する前にキューに追加できる要求の数。

 

1000

es:
  bulk:
    flush-interval:

time.Duration: この後に、他のしきい値に関係なく一括要求がコミットされます。バルクプロセッサーのフラッシュ間隔を無効にするには、これをゼロに設定します。

 

200ms

es:
  bulk:
    size:

バルクプロセッサーがディスクへの更新をコミットするまでに一括要求が発生する可能性のあるバイト数。

 

5000000

es:
  bulk:
    workers:

一括要求を受信し、Elasticsearch にコミットできるワーカーの数。

 

1

表1.50 ES TLS 設定パラメーター

パラメーター説明デフォルト値
es:
  tls:
    ca:

リモートサーバーの検証に使用される TLS 認証局 (CA) ファイルへのパス。

 

デフォルトではシステムトラストストアを使用します。

es:
  tls:
    cert:

リモートサーバーに対するこのプロセスの特定に使用される TLS 証明書ファイルへのパス。

  
es:
  tls:
    enabled:

リモートサーバーと通信する際に、トランスポート層セキュリティー (TLS) を有効にします。デフォルトでは無効になっています。

true/ false

false

es:
  tls:
    key:

リモートサーバーに対するこのプロセスの特定に使用される TLS 秘密鍵ファイルへのパス。

  
es:
  tls:
    server-name:

リモートサーバーの証明書の予想される TLS サーバー名を上書きします。

  
es:
  token-file:

ベアラートークンが含まれるファイルへのパス。このフラグは、指定されている場合は認証局 (CA) ファイルも読み込みます。

  

表1.51 ES アーカイブ設定パラメーター

パラメーター説明デフォルト値
es-archive:
  bulk:
    actions:

バルクプロセッサーがディスクへの更新のコミットを決定する前にキューに追加できる要求の数。

 

0

es-archive:
  bulk:
    flush-interval:

time.Duration: この後に、他のしきい値に関係なく一括要求がコミットされます。バルクプロセッサーのフラッシュ間隔を無効にするには、これをゼロに設定します。

 

0s

es-archive:
  bulk:
    size:

バルクプロセッサーがディスクへの更新をコミットするまでに一括要求が発生する可能性のあるバイト数。

 

0

es-archive:
  bulk:
    workers:

一括要求を受信し、Elasticsearch にコミットできるワーカーの数。

 

0

es-archive:
  create-index-templates:

true に設定されている場合は、アプリケーションの起動時にインデックステンプレートを自動的に作成します。テンプレートが手動でインストールされる場合は、false に設定されます。

true/ false

false

es-archive:
  enabled:

追加ストレージを有効にします。

true/ false

false

es-archive:
  index-prefix:

分散トレースプラットフォーム (Jaeger) インデックスのオプション接頭辞。たとえば、これを production に設定すると、production-tracing-* という名前のインデックスが作成されます。

  
es-archive:
  max-doc-count:

Elasticsearch クエリーから返す最大ドキュメント数。これは集約にも適用されます。

 

0

es-archive:
  max-num-spans:

[非推奨: 今後のリリースで削除されます。代わりに es-archive.max-doc-count を使用してください。] Elasticsearch のクエリーごとに、1 度にフェッチするスパンの最大数。

 

0

es-archive:
  max-span-age:

Elasticsearch のスパンの最大ルックバック。

 

0s

es-archive:
  num-replicas:

Elasticsearch のインデックスごとのレプリカ数。

 

0

es-archive:
  num-shards:

Elasticsearch のインデックスごとのシャード数。

 

0

es-archive:
  password:

Elasticsearch で必要なパスワード。es.username も参照してください。

  
es-archive:
  server-urls:

Elasticsearch サーバーのコンマ区切りの一覧。完全修飾 URL(例: http://localhost:9200) として指定される必要があります。

  
es-archive:
  sniffer:

Elasticsearch のスニファー設定。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。

true/ false

false

es-archive:
  sniffer-tls-enabled:

Elasticsearch クラスターに対してスニッフィングする際に TLS を有効にするためのオプション。クライアントはスニッフィングプロセスを使用してすべてのノードを自動的に検索します。デフォルトでは無効になっています。

true/ false

false

es-archive:
  timeout:

クエリーに使用されるタイムアウト。ゼロに設定するとタイムアウトはありません。

 

0s

es-archive:
  tls:
    ca:

リモートサーバーの検証に使用される TLS 認証局 (CA) ファイルへのパス。

 

デフォルトではシステムトラストストアを使用します。

es-archive:
  tls:
    cert:

リモートサーバーに対するこのプロセスの特定に使用される TLS 証明書ファイルへのパス。

  
es-archive:
  tls:
    enabled:

リモートサーバーと通信する際に、トランスポート層セキュリティー (TLS) を有効にします。デフォルトでは無効になっています。

true/ false

false

es-archive:
  tls:
    key:

リモートサーバーに対するこのプロセスの特定に使用される TLS 秘密鍵ファイルへのパス。

  
es-archive:
  tls:
    server-name:

リモートサーバーの証明書の予想される TLS サーバー名を上書きします。

  
es-archive:
  token-file:

ベアラートークンが含まれるファイルへのパス。このフラグは、指定されている場合は認証局 (CA) ファイルも読み込みます。

  
es-archive:
  username:

Elasticsearch で必要なユーザー名。Basic 認証は、指定されている場合に CA も読み込みます。es-archive.password も参照してください。

  
es-archive:
  version:

主要な Elasticsearch バージョン。指定されていない場合、値は Elasticsearch から自動検出されます。

 

0

ボリュームマウントを含むストレージの例

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: https://quickstart-es-http.default.svc:9200
        index-prefix: my-prefix
        tls:
          ca: /es/certificates/ca.crt
    secretName: tracing-secret
  volumeMounts:
    - name: certificates
      mountPath: /es/certificates/
      readOnly: true
  volumes:
    - name: certificates
      secret:
        secretName: quickstart-es-http-certs-public

以下の例は、ボリュームからマウントされる TLS CA 証明書およびシークレットに保存されるユーザー/パスワードを使用して外部 Elasticsearch クラスターを使用する Jaeger CR を示しています。

外部 Elasticsearch の例:

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: https://quickstart-es-http.default.svc:9200 1
        index-prefix: my-prefix
        tls: 2
          ca: /es/certificates/ca.crt
    secretName: tracing-secret 3
  volumeMounts: 4
    - name: certificates
      mountPath: /es/certificates/
      readOnly: true
  volumes:
    - name: certificates
      secret:
        secretName: quickstart-es-http-certs-public

1
デフォルト namespace で実行されている Elasticsearch サービスへの URL。
2
TLS 設定。この場合は、CA 証明書のみを使用できますが、相互 TLS を使用する場合に es.tls.key および es.tls.cert を含めることもできます。
3
環境変数 ES_PASSWORD および ES_USERNAME を定義するシークレット。kubectl create secret generic tracing-secret --from-literal=ES_PASSWORD=changeme --from-literal=ES_USERNAME=elastic により作成されます
4
すべてのストレージコンポーネントにマウントされるボリュームのマウントとボリューム。

1.27.4.7. Elasticsearch を使用した証明書の管理

OpenShift Elasticsearch Operator を使用して、証明書を作成および管理できます。OpenShift Elasticsearch Operator を使用して証明書を管理すると、複数の Jaeger Collector で単一の Elasticsearch クラスターを使用することもできます。

重要

Elasticsearch を使用した証明書の管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

バージョン 2.4 以降、Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) Operator は、Elasticsearch カスタムリソースで次のアノテーションを使用して、証明書の作成を OpenShift Elasticsearch Operator に委譲します。

  • logging.openshift.io/elasticsearch-cert-management: "true"
  • logging.openshift.io/elasticsearch-cert.jaeger-<shared-es-node-name>: "user.jaeger"
  • logging.openshift.io/elasticsearch-cert.curator- <shared-es-node-name>: "system.logging.curator"

ここで、<shared-es-node-name> は Elasticsearch ノードの名前です。たとえば、custom-es という名前の Elasticsearch ノードを作成する場合に、カスタムリソースは次の例のようになります。

アノテーションを表示する Elasticsearch CR の例

apiVersion: logging.openshift.io/v1
kind: Elasticsearch
metadata:
  annotations:
    logging.openshift.io/elasticsearch-cert-management: "true"
    logging.openshift.io/elasticsearch-cert.jaeger-custom-es: "user.jaeger"
    logging.openshift.io/elasticsearch-cert.curator-custom-es: "system.logging.curator"
  name: custom-es
spec:
  managementState: Managed
  nodeSpec:
    resources:
      limits:
        memory: 16Gi
      requests:
        cpu: 1
        memory: 16Gi
  nodes:
    - nodeCount: 3
      proxyResources: {}
      resources: {}
      roles:
        - master
        - client
        - data
      storage: {}
  redundancyPolicy: ZeroRedundancy

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされている。
  • {logging-title} がデフォルト設定でクラスターにインストールされている。
  • Elasticsearch ノードと Jaeger インスタンスが同じ namespace にデプロイされている。(例: traceing-system)。

Jaeger カスタムリソースで spec.storage.elasticsearch.useCertManagementtrue に設定して、証明書管理を有効にします。

useCertManagement を示す例

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: jaeger-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    elasticsearch:
      name: custom-es
      doNotProvision: true
      useCertManagement: true

Elasticsearch をプロビジョニングする場合には、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は、Elasticsearch カスタムリソース name を Jaeger カスタムリソースの spec.storage.elasticsearch.name の値に設定します。

証明書は OpenShift Elasticsearch Operator によってプロビジョニングされ、Red Hat OpenShift 分散トレーシングプラットフォーム (Jaeger) Operator が証明書を挿入します。

Elasticsearch を OpenShift Container Platform で設定する方法の詳細は、Elasticsearch ログストアの設定 または 分散トレースの設定およびデプロイ を参照してください。

1.27.4.8. クエリー設定オプション

Query とは、ストレージからトレースを取得し、ユーザーインターフェイスをホストしてそれらを表示するサービスです。

表1.52 Query を定義するために Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator によって使用されるパラメーター

パラメーター説明デフォルト値
spec:
  query:
    replicas:

作成する Query レプリカの数を指定します。

整数 (例: 2)

 

表1.53 Query に渡される設定パラメーター

パラメーター説明デフォルト値
spec:
  query:
    options: {}

Query サービスを定義する設定オプション。

  
options:
  log-level:

Query のロギングレベル。

使用できる値は、debuginfowarnerrorfatalpanic です。

 
options:
  query:
    base-path:

すべての jaeger-query HTTP ルートのベースパスは、root 以外の値に設定できます。たとえば、/jaeger ではすべての UI URL が /jaeger で開始するようになります。これは、リバースプロキシーの背後で jaeger-query を実行する場合に役立ちます。

/<path>

 

Query 設定の例

apiVersion: jaegertracing.io/v1
kind: "Jaeger"
metadata:
  name: "my-jaeger"
spec:
  strategy: allInOne
  allInOne:
    options:
      log-level: debug
      query:
        base-path: /jaeger

1.27.4.9. Ingester 設定オプション

Ingester は、Kafka トピックから読み取り、Elasticsearch ストレージバックエンドに書き込むサービスです。allInOne または production デプロイメントストラテジーを使用している場合は、Ingester サービスを設定する必要はありません。

表1.54 Ingester に渡される Jaeger パラメーター

パラメーター説明
spec:
  ingester:
    options: {}

Ingester サービスを定義する設定オプション。

 
options:
  deadlockInterval:

Ingester が終了するまでメッセージを待機する間隔 (秒単位または分単位) を指定します。システムの初期化中にメッセージが到達されない場合に Ingester が終了しないように、デッドロックの間隔はデフォルトで無効に (0に設定) されます。

分と秒 (例: 1m0s)デフォルト値は 0 です。

options:
  kafka:
    consumer:
      topic:

topic パラメーターは、コレクターによってメッセージを生成するために使用され、Ingester によってメッセージを消費するために使用される Kafka 設定を特定します。

コンシューマーのラベル例: jaeger-spans

options:
  kafka:
    consumer:
      brokers:

メッセージを消費するために Ingester によって使用される Kafka 設定を特定します。

ブローカーのラベル (例: my-cluster-kafka-brokers.kafka:9092)

options:
  log-level:

Ingester のロギングレベル。

使用できる値は、debuginfowarnerrorfataldpanicpanic です。

ストリーミング Collector および Ingester の例

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-streaming
spec:
  strategy: streaming
  collector:
    options:
      kafka:
        producer:
          topic: jaeger-spans
          brokers: my-cluster-kafka-brokers.kafka:9092
  ingester:
    options:
      kafka:
        consumer:
          topic: jaeger-spans
          brokers: my-cluster-kafka-brokers.kafka:9092
      ingester:
        deadlockInterval: 5
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: http://elasticsearch:9200