

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# サンプリングルールの設定
<a name="xray-console-sampling"></a>

 AWS X-Ray コンソールを使用して、 サービスのサンプリングルールを設定できます。サンプリング設定による[アクティブトレース](xray-services.md)をサポートする AWS Distro for OpenTelemetry、X-Ray SDK、および AWS のサービス は、サンプリングルールを使用して記録するリクエストを決定します。

**Topics**
+ [サンプリングルールの設定](#xray-console-config)
+ [サンプリングルールのカスタマイズ](#xray-console-custom)
+ [サンプリングルールオプション](#xray-console-sampling-options)
+ [サンプリングルールの例](#xray-console-sampling-examples)
+ [サンプリングルールを使用するようにサービスを設定する](#xray-console-sampling-service)
+ [サンプリング結果の表示](#xray-console-sampling-results)
+ [次の手順](#xray-console-sampling-nextsteps)

## サンプリングルールの設定
<a name="xray-console-config"></a>

以下のユースケースのサンプリングを設定できます。
+ **API Gateway Entrypoint** — API Gateway は、サンプリングとアクティブトレースをサポートします。API ステージでアクティブトレースを有効にする方法については、「[Amazon API GatewayのアクティブトレーシングサポートAWS X-Ray](xray-services-apigateway.md)」を参照してください。
+ **AWS AppSync** – サンプリングとアクティブトレース AWS AppSync をサポートします。リクエストで AWS AppSync アクティブなトレースを有効にするには、[AWS 「X-Ray を使用したトレース](https://docs.aws.amazon.com/appsync/latest/devguide/x-ray-tracing.html)」を参照してください。
+ **AWS Step Functions** – サンプリングとアクティブトレース AWS Step Functions をサポートします。ステートマシンで AWS Step Functions アクティブトレースを有効にするには、[「Step Functions」の「X-Ray トレース](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html)」を参照してください。
+ **コンピューティングプラットフォームでの OpenTelemetry 用 Instrument AWS Distro** – Amazon EC2、Amazon ECS、 などのコンピューティングプラットフォームを使用する場合 AWS Elastic Beanstalk、アプリケーションが最新の AWS Distro for OpenTelemetry または X-Ray SDK で計測されている場合、サンプリングがサポートされます。

## サンプリングルールのカスタマイズ
<a name="xray-console-custom"></a>

サンプリングルールをカスタマイズすることで、記録するデータの量を制御できます。また、コードを変更したり再デプロイしたりすることなく、サンプリング動作を変更することもできます。　 サンプリングルールは、一連の基準に対して記録するリクエストの数を AWS Distro for OpenTelemetry (ADOT) または X-Ray SDK に指示します。デフォルトでは、SDK は 1 秒ごとに最初のリクエストを記録し、追加のリクエストの 5% を記録します。1 秒あたり 1 つのリクエストが*リザーバ*です。これにより、サービスがリクエストを処理している限り、毎秒少なくとも 1 つのトレースが記録されます。5% は、リザーバサイズを超えて追加リクエストがサンプリングされる*レート*です。

X-Ray SDK を設定して、使用するコードに含める JSON ドキュメントからサンプリングルールを読み取ることができます。ただし、サービスで複数のインスタンスを実行するときに、各インスタンスは個別にサンプリングを実行します。これによりサンプリングされたリクエストの全体的な割合 (パーセント) が増加します。すべてのインスタンスのリザーバが実質的に結合されるからです。さらに、ローカルサンプリングルールを更新するために、コードを再デプロイする必要があります。

X-Ray コンソールでサンプリングルールを定義し、[[configuring the SDK]](#xray-console-sampling-service) (SDK を設定)して、X-Ray サービスからルールを読み取ることで、これら両方の問題を回避できます。このサービスでは、各ルールのリザーバを管理し、実行されているインスタンスの数に基づいて、リザーバを均等に分散させるため、使用するサービスの各インスタンスにクォータを割り当てます。リザーバの制限は、設定したルールに従って計算されます。サービスでルールが設定されているので、追加のデプロイを行わずにルールを管理できます。

**注記**  
サンプリングルールを設定するときは、X-Ray サンプリングが「親ベース」であることを理解することが重要です。つまり、サンプリングの決定は、通常、リクエストを処理する最初の X-Ray-enabledサービス (「ルート」サービス) によって 1 回だけ行われます。  
ダウンストリームサービスがアップストリーム親から既にサンプリング決定があるリクエストを受信した場合、独自の一致するサンプリングルールに関係なく、その決定を尊重します。  
ルールが適用される場合: カスタムサンプリングルールは、サンプリング決定がまだ行われていないサービスでのみ有効になります。これは通常、以下に適用されます。  
アプリケーションのエントリポイント (API Gateway、Load Balancer、最初の計測済みマイクロサービスなど）。
まったく新しいトレースを開始する非同期プロセスまたはワーカー。
一般的な落とし穴: 「サービス B」の厳密なサンプリングルールを作成するが、「サービス B」は常に「サービス A」によって呼び出される場合、サービス B のルールは、単にサービス A によって渡された決定に従っているため、適用されない可能性があります。このワークフローのトレースのサンプリングを変更するには、サンプリングルールをルートサービス (サービス A) に設定する必要があります。

**注記**  
X-Ray では、ベストエフォート型の方法でサンプリングルールを適用しているため、場合によっては、有効なサンプリングレートが、設定されたサンプリングルールと完全に一致しないことがあります。しかし、時間の経過とともに、サンプリングされるリクエスト数が設定したパーセンテージに近づくはずです。

Amazon CloudWatch コンソール内から X-Ray サンプリングルールを設定できるようになりました。

**CloudWatch コンソールでサンプリングルールを設定するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) で CloudWatch コンソールを開きます。

1. **セットアップ**の下の左側のナビゲーションペインで**設定**を選択します。

1. **[X-Ray トレース]** セクションの **[サンプリングルール]** の下にある **[設定を表示]** を選択します。

1. ルールを作成するには、**[サンプリングルールの作成]** を選択します。

   ルールを編集するには、ルールを選択してから **[編集]** を選択します。

   ルールを削除するには、ルールを選択してから **[削除]** を選択します。

## サンプリングルールオプション
<a name="xray-console-sampling-options"></a>

次のオプションが各ルールで利用できます。文字列値では、ワイルドカードを使用して、1 つの文字列 (`?`) またはゼロ以上の文字 (`*`) に一致させることができます。

**サンプリングルールオプション**
+ **[Rule name]** (ルール名) (文字列) - ルールの一意の名前。
+ **[Priority]** (優先度) (1～9999 の整数) - サンプリングルールの優先度。サービスでは、優先度の昇順でルールが評価され、一致する最初のルールを使用してサンプリングの決定が行われます。
+ **[Reservoir]** (リザーバ) (負ではない整数) - 固定レートを適用する前に、1 秒あたりに計測する、一致するリクエストの固定数。リザーバはサービスで直接使用されませんが、ルールを一括して使用するすべてのサービスに適用されます。
+ **[レート]** (0～100) - リザーバの上限に達した後に機器と一致するリクエストのパーセンテージ。コンソールでサンプリングルールを設定するときは、0 から 100 までのパーセンテージを選択します。JSON ドキュメントを使用してクライアント SDK でサンプリングルールを設定する場合は、0 から 1 までのパーセンテージ値を指定します。
+ **[サービス名]** (文字列) - トレースマップに表示される、計測されたサービスの名前です。
  + X-Ray SDK - レコーダーで設定したサービス名。
  + Amazon API Gateway - `api-name/stage`。
+ **[サービスタイプ]** (文字列) - トレースマップに表示される、サービスタイプ。X-Ray SDK の場合、適切なプラグインを適用することで、サービスタイプを設定します。
  + `AWS::ElasticBeanstalk::Environment` – AWS Elastic Beanstalk 環境 (プラグイン）。
  + `AWS::EC2::Instance` — Amazon EC2 インスタンス (プラグイン)。
  + `AWS::ECS::Container` — Amazon ECS コンテナ (プラグイン)。
  + `AWS::EKS::Container` – Amazon EKS コンテナ (プラグイン）。
  + `AWS::APIGateway::Stage` - Amazon API Gateway ステージ。
  + `AWS::AppSync::GraphQLAPI ` – AWS AppSync API リクエスト。
  + `AWS::StepFunctions::StateMachine` – AWS Step Functions ステートマシン。
+ **[Host ]** (ホスト) (文字列) - HTTP ホスト ヘッダーからの ホスト名。
+ **[HTTP method]** (HTTP メソッド) (文字列) - HTTP リクエストのメソッド。
+ **[URL path]** (URL パス) (文字列) - リクエストの URL パス。
  + X-Ray SDK - HTTP リクエスト URL のパス部分。
+ **リソース ARN** (文字列) — サービスを実行している AWS リソースの ARN。
  + X-Ray SDK — サポートされていません。SDK では [**リソース ARN**] に `*` が設定されているルールのみを使用できます。
  + Amazon API Gateway — ステージ ARN。
+ (オプション) **[Attributes]** (属性) (キーと値) - サンプリングデシジョンが行われたときに認識されるセグメント属性。
  + X-Ray SDK — サポートされていません。SDK は属性を指定するルールを無視します。
  + Amazon API Gateway — 元の HTTP リクエストからのヘッダー。
+ (オプション) **SamplingRateBoost** (オブジェクト) – 異常駆動型サンプリングブーストの動作を制御します。
  + MaxRate (0～100 の整数) — 最大サンプリングレート (0.0～1.0) 異常時に X-Ray が に増加する可能性があります。
  + CooldownWindowMinutes (0 より大きい整数) – 1 つのブーストのみをトリガーできる時間枠 (分)。継続的なブーストを防止します。

## サンプリングルールの例
<a name="xray-console-sampling-examples"></a>

**Example - リザーバなし、低レートのデフォルトルール**  
デフォルトルールのリザーバとレートを変更することができます。他のルールに一致しないリクエストにデフォルトのルールが適用されます。  
+ **[Reservoir]** (リザーバ): **0**
+ **レート**: **5** (**0.05** JSON ドキュメントを使用して設定した場合)

**Example - 問題のあるルートのすべてのリクエストをトレースするデバッグルール**  
デバッグ用に一時的に適用される、高優先度のルールです。  
+ **[Rule name]** (ルール名): **DEBUG – history updates**
+ **[Priority]** (優先度): **1**
+ **[Reservoir]** (リザーバ): **1**
+ **レート**: **100** (**1** JSON ドキュメントを使用して設定した場合)
+ **[Service name]** (サービス名): **Scorekeep**
+ **[Service type]** (サービスタイプ): **\$1**
+ **[Host]** (ホスト): **\$1**
+ **[HTTP method]** (HTTP メソッド): **PUT**
+ **[URL path]** (URL パス): **/history/\$1**
+ **[Resource ARN]** (リソース ARN): **\$1**

**Example - POST 用の最小レートが高い**  
+ **[Rule name]** (ルール名): **POST minimum**
+ **[Priority]** (優先度): **100**
+ **[Reservoir]** (リザーバ): **10**
+ **レート**: **10** (**.1** JSON ドキュメントを使用して設定した場合)
+ **[Service name]** (サービス名): **\$1**
+ **[Service type]** (サービスタイプ): **\$1**
+ **[Host]** (ホスト): **\$1**
+ **[HTTP method]** (HTTP メソッド): **POST**
+ **[URL path]** (URL パス): **\$1**
+ **[Resource ARN]** (リソース ARN): **\$1**

**Example 異常駆動型ブーストを有効にする**  
10 分間のクールダウンで、異常時にサンプリングブーストを最大 50% トリガーするルールを設定します。  
+ **[Rule name]** (ルール名): **MyAdaptiveRule**
+ **[Priority]** (優先度): **100**
+ **[Reservoir]** (リザーバ): **1**
+ **FixedRate**: **0.0510**
+ **[Service name]** (サービス名): **\$1**
+ **[Service type]** (サービスタイプ): **\$1**
+ **[Host]** (ホスト): **\$1**
+ **[HTTP method]** (HTTP メソッド): **POST**
+ **[URL path]** (URL パス): **\$1**
+ **maxRate**: **0.5**
+ **cooldownWindowMinutes**: **10**

## サンプリングルールを使用するようにサービスを設定する
<a name="xray-console-sampling-service"></a>

 AWS Distro for OpenTelemetry (ADOT) と X-Ray SDK では、コンソールで設定したサンプリングルールを使用するには、追加の設定が必要です。サンプリング戦略を設定する方法の詳細については、使用言語の「設定」トピックを参照してください。
+ Java: ADOT Java での [X-Ray リモートサンプリング](https://aws-otel.github.io/docs/getting-started/java-sdk/auto-instr#using-x-ray-remote-sampling)の使用
+ Go: ADOT Go を使用した[サンプリングの設定](https://aws-otel.github.io/docs/getting-started/go-sdk/manual-instr#configuring-sampling) 
+ Node.js: ADOT JavaScript での [X-Ray リモートサンプリング](https://aws-otel.github.io/docs/getting-started/js-sdk/trace-metric-auto-instr#using-x-ray-remote-sampling)の使用
+ Python: ADOT Python での [X-Ray リモートサンプリング](https://aws-otel.github.io/docs/getting-started/python-sdk/auto-instr#using-x-ray-remote-sampling)の使用
+ Ruby: [サンプリングルール](xray-sdk-ruby-configuration.md#xray-sdk-ruby-configuration-sampling)
+ .NET: ADOT .NET での [X-Ray リモートサンプリングの使用](https://aws-otel.github.io/docs/getting-started/dotnet-sdk/auto-instr#using-x-ray-remote-sampling) 

API Gatewayについては、[Amazon API GatewayのアクティブトレーシングサポートAWS X-Ray](xray-services-apigateway.md) を参照してください。

## サンプリング結果の表示
<a name="xray-console-sampling-results"></a>

X-Ray コンソールの **[Sampling]** (サンプリング) ページには、サービスでの各サンプリングルールの使用方法に関する詳細情報が表示されます。

[**Trend (トレンド)**] 列には、直近の数分でルールがどのように使用されたのかを表示します。各列に、10 秒ウィンドウの統計が表示されます。

**サンプリング統計**
+ **[Total matched rule]** (ルールに一致した総数): 対象ルールに一致するリクエストの数。この数には、対象ルールに一致する可能性があるすべてのリクエストが含まれるわけではありません。優先度の高いルールに最初に一致したリクエストのみが含まれます。
+ **[Total sampled]** (サンプリングされた総数): 記録されたリクエスト数。
+ **[Sampled with fixed rate]** (サンプリングの固定レート): ルールの固定レートを適用してサンプリングされたリクエスト数。
+ **[Sampled with reservoir limit]** (サンプリングのリザーバ制限):X-Rayによって割り当てられたクォータを使用してサンプリングされたリクエスト数。
+ **[Borrowed from reservoir]** (リザーバから借用): リザーバからの借用によって、サンプリングされたリクエスト数。サービスで初めてリクエストがルールに一致するとき、X-Rayによりクォータがまだ割り当てられていません。ただし、リザーバが少なくとも 1 である場合、X-Rayがクォータを割り当てるまで、サービスは 1 秒あたり 1 つのトレースを借用します。

サンプリングの統計およびサービスがサンプリングルールを使用する方法の詳細については、「[X-Ray API でのサンプリングルールの使用](xray-api-sampling.md)」を参照してください。

## 次の手順
<a name="xray-console-sampling-nextsteps"></a>

X-Ray API を使用して、サンプリングルールを管理できます。API では、スケジュールに従って、またはアラームや通知に応答して、プログラムでルールを作成および更新することができます。手順と追加のルールの例については、[AWS X-Ray API を使用したサンプリング、グループ、暗号化設定の構成](xray-api-configuration.md) を参照してください。

 AWS Distro for OpenTelemetry、X-Ray SDK、 AWS のサービス も X-Ray API を使用して、サンプリングルールの読み取り、サンプリング結果のレポート、サンプリングターゲットの取得を行います。X-Ray がサービスにクォータを割り当てていないルールにリクエストが一致するとき、サービスは、各ルールの適用、優先度に基づくルールの評価、およびリザーバからの借用に関する頻度を追跡する必要があります。サービスがサンプリングに API を使用する方法の詳細については、「[X-Ray API でのサンプリングルールの使用](xray-api-sampling.md)」を参照してください。

 AWS Distro for OpenTelemetry または X-Ray SDK コールサンプリング APIs の場合、プロキシとして CloudWatch エージェントを使用します。TCP ポート 2000 を既に使用している場合は、別のポートでプロキシを実行するようにエージェントを設定できます。詳細については、[CloudWatch エージェントのインストールガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)を参照してください。