サンプリングルールの設定 - AWS X-Ray

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

サンプリングルールの設定

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

サンプリングルールの設定

以下のユースケースのサンプリングを設定できます。

  • API Gateway Entrypoint — API Gateway は、サンプリングとアクティブトレースをサポートします。API ステージでアクティブトレースを有効にする方法については、「の Amazon API Gateway アクティブトレースのサポート AWS X-Ray」を参照してください。

  • AWS AppSync - サンプリングとアクティブトレース AWS AppSync をサポートします。リクエストで AWS AppSync アクティブトレースを有効にするには、AWS 「X-Ray によるトレース」を参照してください。

  • コンピューティングプラットフォームで X-Ray SDK を計測する – Amazon EC2、Amazon ECS、または などのコンピューティングプラットフォームを使用する場合 AWS Elastic Beanstalk、アプリケーションが最新の X-Ray SDK で計測されると、サンプリングがサポートされます。

サンプリングルールのカスタマイズ

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

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

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

注記

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

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

CloudWatch console
CloudWatch コンソールでサンプリングルールを設定するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。

  2. 左側のナビゲーションペインの [Settings] (設定) を選択します。

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

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

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

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

X-Ray console
X-Ray コンソールでのサンプリングルールを設定するには
  1. [X-Ray console] (X-Ray コンソール)を開きます。

  2. 左側のナビゲーションペインで [サンプリング] を選択します。

  3. ルールを作成するには、[Create sampling rule] (サンプリングルールの作成) を選択します。

    ルールを編集するには、ルールの名前を選択します。

    ルールを削除するには、ルールを選択し、[Actions] (アクション) メニューを使用して削除します。

サンプリングルールオプション

次のオプションが各ルールで利用できます。文字列値では、ワイルドカードを使用して、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::APIGateway::Stage - Amazon API Gateway ステージ。

    • AWS::AppSync::GraphQLAPI – AWS AppSync API リクエスト。

  • [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 リクエストからのヘッダー。

サンプリングルールの例

例 - リザーバなし、低レートのデフォルトルール

デフォルトルールのリザーバとレートを変更することができます。他のルールに一致しないリクエストにデフォルトのルールが適用されます。

  • [Reservoir] (リザーバ): 0

  • レート: 5 (0.05 JSON ドキュメントを使用して設定した場合)

例 - 問題のあるルートのすべてのリクエストをトレースするデバッグルール

デバッグ用に一時的に適用される、高優先度のルールです。

  • [Rule name] (ルール名): DEBUG – history updates

  • [Priority] (優先度): 1

  • [Reservoir] (リザーバ): 1

  • レート: 100 (1 JSON ドキュメントを使用して設定した場合)

  • [Service name] (サービス名): Scorekeep

  • [Service type] (サービスタイプ): *

  • [Host] (ホスト): *

  • [HTTP method] (HTTP メソッド): PUT

  • [URL path] (URL パス): /history/*

  • [Resource ARN] (リソース ARN): *

例 - POST 用の最小レートが高い
  • [Rule name] (ルール名): POST minimum

  • [Priority] (優先度): 100

  • [Reservoir] (リザーバ): 10

  • レート: 10 (.1 JSON ドキュメントを使用して設定した場合)

  • [Service name] (サービス名): *

  • [Service type] (サービスタイプ): *

  • [Host] (ホスト): *

  • [HTTP method] (HTTP メソッド): POST

  • [URL path] (URL パス): *

  • [Resource ARN] (リソース ARN): *

サンプリングルールを使用するようにサービスを設定する

X-Ray SDK ではコンソールで設定したサンプリングルールを使用するため追加の設定が必要です。サンプリング戦略を設定する方法の詳細については、使用言語の「設定」トピックを参照してください。

API Gatewayについては、の Amazon API Gateway アクティブトレースのサポート AWS X-Ray を参照してください。

サンプリング結果の表示

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 でのサンプリングルールの使用」を参照してください。

次のステップ

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

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

X-Ray SDK がサンプリング API を呼び出すと、プロキシとして X-Ray デーモンを使用します。TCP ポート 2000 をすでに使用している場合、別のポートでプロキシを実行するようにデーモンを設定できます。詳細については、「AWS X-Ray デーモンの設定」を参照してください。