X-Ray コンソールでのサンプリングルールを設定します - AWS X-Ray

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

X-Ray コンソールでのサンプリングルールを設定します

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

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

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

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

  • AWS AppSync - AWS AppSync は、サンプリングとアクティブトレースをサポートします。 AWS AppSync リクエストでアクティブトレースを有効にする方法については、[Tracing with AWS X-Ray] (X-Ray によるトレース)を参照してください。

  • [Instrument X-Ray SDK on compute platforms] (コンピューティング プラットフォームでの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 内から X-Ray のサンプリングルールを設定できるようになりました CloudWatch console. X-Ray コンソールを引き続き使用することもできます。

X-Ray console

X-Ray コンソールでのサンプリングルールを設定するには

  1. [X-Ray console] (X-Ray コンソール)を開きます。

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

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

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

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

CloudWatch console

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

  1. にサインインしますAWS Management Console(マテリアルエディタ) を開く CloudWatch コンソール)https://console.aws.amazon.com/cloudwatch/

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

  3. 選択[ビュー設定]サンプリングルール(マテリアルエディタ)X-Ray トレースセクションに追加します。

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

    ルールを編集するには、ルールを選択してから編集をクリックして編集します。

    ルールを削除するには、ルールを選択してから削除をクリックして削除します。

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

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

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

  • [Rule name] (ルール名) (文字列) - ルールの一意の名前。

  • [Priority] (優先度) (1~9999 の整数) - サンプリングルールの優先度。サービスでは、優先度の昇順でルールが評価され、一致する最初のルールを使用してサンプリングの決定が行われます。

  • [Reservoir] (リザーバ) (負ではない整数) - 固定レートを適用する前に、1 秒あたりに計測する、一致するリクエストの固定数。リザーバはサービスで直接使用されませんが、ルールを一括して使用するすべてのサービスに適用されます。

  • [Rate] (レート)(0~100) - リザーバの上限に達した後に機器と一致するリクエストのパーセンテージ。レートは整数または浮動小数点数になります。 

  • [Service name] (サービス名) (文字列) - サービスマップに表示される、計測されたサービスの名前です。

    • X-Ray SDK - レコーダーで設定したサービス名。

    • Amazon API Gateway - api-name/stage

  • [Service type] (サービスタイプ) (文字列) - サービスマップに表示される、サービスタイプ。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 のパス部分。

  • [Resource ARN] (リソース ARN) (文字列) - サービスを実行している AWS リソースの ARN。

    • X-Ray SDK — サポートされていません。SDK では [リソース ARN] に * が設定されているルールのみを使用できます。

    • Amazon API Gateway — ステージ ARN。

  • (オプション) [Attributes] (属性) (キーと値) - サンプリングデシジョンが行われたときに認識されるセグメント属性。

    • X-Ray SDK — サポートされていません。SDK は属性を指定するルールを無視します。

    • Amazon API Gateway — 元の HTTP リクエストからのヘッダー。

サンプリングルールの例

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

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

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

  • [Rate] (レート): 0.005 (0.5%)

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

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

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

  • [Priority] (優先度): 1

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

  • [Rate] (レート): 1

  • [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

  • [Rate] (レート): 0.10

  • [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 一致ルール: 対象ルールに一致するリクエストの数。この数には、対象ルールに一致する可能性があるすべてのリクエストが含まれるわけではありません。優先度の高いルールに最初に一致したリクエストのみが含まれます。

  • 合計サンプリングされた総数: 記録されたリクエスト数。

  • 固定レートでサンプリング: ルールの固定レートを適用してサンプリングされたリクエスト数。

  • リザーバー制限付きでサンプリング: X-Ray によって割り当てられたクォータを使用してサンプリングされたリクエスト数。

  • 貯水池から借りた: リザーバからの借用によって、サンプリングされたリクエスト数。サービスで初めてリクエストがルールに一致するとき、X-Rayによりクォータがまだ割り当てられていません。ただし、リザーバが少なくとも 1 である場合、X-Rayがクォータを割り当てるまで、サービスは 1 秒あたり 1 つのトレースを借用します。

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

次のステップ

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

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

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