OBI で OpenTelemetry トレースのサンプリングを設定する

OpenTelemetry トレースのサンプリング方法を設定する

OBI は、トレースのサンプリングレートを設定するために標準的な OpenTelemetry 環境変数を受け付けます。

YAML セクション: otel_traces_export.sampler

このコンポーネントは、YAML 設定の otel_traces_export.sampler セクション、または環境変数で設定できます。

otel_traces_export:
  sampler:
    name: 'traceidratio'
    arg: '0.1'
YAML

環境変数

説明デフォルト
name

OTEL_TRACES_SAMPLER

サンプラーの名前を指定します。OpenTelemetry の仕様で定義されている標準的なサンプラー名を受け付けます。詳細はサンプラー名を参照してください。stringparentbased_always_on
arg

OTEL_TRACES_SAMPLER_ARG

選択したサンプラーの引数を指定します。引数が必要なのは traceidratioparentbased_traceidratio のみです。詳細はサンプラー引数を参照してください。string(未設定)

サンプラー名

name プロパティは以下の標準的なサンプラー名を受け付けます。

  • always_on: すべてのトレースをサンプリングします。 トラフィックの多いアプリケーションでこのサンプラーを使用する場合は注意してください。 リクエストごとに新しいトレースが開始され、エクスポートされます。
  • always_off: トレースをまったくサンプリングしません。
  • traceidratio: 指定された割合(arg プロパティで指定)でトレースをサンプリングします。 割合は 0 から 1 の間の実数値でなければなりません。 たとえば "0.5" という値は 50% のトレースをサンプリングします。 1 以上の割合は常にサンプリングします。 0 未満の割合はゼロとして扱われます。 親トレースのサンプリング設定を尊重するには、parentbased_traceidratio サンプラーを使用してください。
  • parentbased_always_on (デフォルト): always_on サンプラーの親ベース版です。
  • parentbased_always_off: always_off サンプラーの親ベース版です。
  • parentbased_traceidratio: traceidratio サンプラーの親ベース版です。

親ベースのサンプラーは、トレースされるスパンの親に応じて異なる動作をする複合サンプラーです。 スパンに親がない場合、ルートサンプラーがサンプリングの判断に使用されます。 スパンに親がある場合、サンプリング設定は親スパンに依存します。

サンプラー引数

arg プロパティは、選択したサンプラーの引数を指定します。 引数が必要なのは traceidratioparentbased_traceidratio のみです。

YAML ではこの値を必ず文字列として指定してください。 値が数値であっても、YAML ファイル内では引用符で囲んでください(たとえば、arg: "0.25")。