翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用する AWS Management Console
最小限のコーディングでグラフィカルユーザーインターフェイス (GUI) AWS Management Console が必要な場合は、 を使用します。X-Ray を初めて使用するユーザーは、事前に構築された視覚化を使用して、基本的なタスクを実行することで、すぐに開始できます。コンソールから直接以下を実行できます。
-
X-Ray を有効にします。
-
アプリケーションのパフォーマンスの概要を表示します。
-
アプリケーションのヘルスステータスを確認します。
-
高レベルのエラーを特定します。
-
基本的なトレースの概要を表示します。
https://console.aws.amazon.com/cloudwatch/
Amazon CloudWatch コンソールを使用する
CloudWatch コンソールには、使いやすくするために X-Ray コンソールから再設計された新しい X-Ray 機能が含まれています。 CloudWatch コンソールを使用する場合は、X-Ray トレースデータとともに CloudWatch ログとメトリクスを表示できます。 CloudWatch コンソールを使用して、次のようなデータを表示および分析します。
-
X-Ray トレース – アプリケーションがリクエストを処理する際に、アプリケーションに関連付けられたトレースを表示、分析、フィルタリングします。これらのトレースを使用して、高いレイテンシーを検出し、エラーをデバッグし、アプリケーションワークフローを最適化します。トレースマップとサービスマップを表示して、アプリケーションワークフローを視覚的に表示します。
-
ログ – アプリケーションが生成するログを表示、分析、フィルタリングします。ログを使用してエラーをトラブルシューティングし、特定のログ値に基づいてモニタリングを設定します。
-
メトリクス – リソースが出力するメトリクスを使用してアプリケーションのパフォーマンスを測定およびモニタリングするか、独自のメトリクスを作成します。これらのメトリクスをグラフとグラフで表示します。
-
ネットワークとインフラストラクチャのモニタリング — コンテナ化されたアプリケーション、その他の AWS サービス、クライアントなど、インフラストラクチャの停止やヘルスとパフォーマンスについて、主要なネットワークをモニタリングします。
-
次の X-Ray コンソールを使用するセクションにリストされている X-Ray コンソールのすべての機能。
CloudWatch コンソールの詳細については、「Amazon の開始方法 CloudWatch」を参照してください。
https://console.aws.amazon.com/cloudwatch/
X-Ray コンソールを使用する
X-Ray コンソールには、アプリケーションリクエストの分散トレースが用意されています。コンソールエクスペリエンスをシンプルにしたい場合や、アプリケーションコードを更新しない場合は、X-Ray コンソールを使用します。 AWS は X-Ray コンソールを開発しなくなりました。X-Ray コンソールには、インストルメント化されたアプリケーションの以下の機能が含まれています。
-
Insights – アプリケーションのパフォーマンスの異常を自動的に検出し、根本的な原因を見つけます。Insights は、Insights の下の CloudWatch コンソールに含まれています。詳細については、「 で X-Ray Insights を使用する」を参照してくださいX-Ray コンソールの詳細。
-
サービスマップ — アプリケーションとそのクライアント、リソース、サービス、依存関係との接続をグラフィカルに表示します。
-
トレース — アプリケーションがリクエストを処理するときに生成されるトレースの概要を表示します。トレースデータを使用して、HTTPレスポンスやレスポンスタイムなどの基本的なメトリクスに対するアプリケーションの動作を理解します。
-
分析 — 応答時間分布のグラフを使用して、トレースデータを解釈、調査、分析します。
-
設定 — カスタマイズしたトレースを作成して、以下のデフォルト設定を変更します。
-
サンプリング — トレース情報用にアプリケーションをサンプリングする頻度を定義するルールを作成します。詳細については、「 でサンプリングルールを設定するX-Ray コンソールの詳細」を参照してください。
-
暗号化 – を使用して監査または無効化できるキーを使用して、保管中のデータを暗号化します AWS Key Management Service。
-
グループ – フィルター式を使用して、URL の名前や応答時間などの一般的な特徴を持つトレースのグループを定義します。詳細については、「グループの設定」を参照してください。
-
https://console.aws.amazon.com/xray/home
X-Ray コンソールの詳細
X-Ray コンソールを使用して、アプリケーションが処理するリクエストのサービスおよび関連するトレースのマップを表示し、トレースを X-Ray に送信する方法に影響するグループとサンプリングルールを設定します。
注記
X-Ray Service マップと CloudWatch ServiceLens マップは、Amazon CloudWatch コンソール内の X-Ray トレースマップにまとめられています。CloudWatch コンソール
CloudWatch に Application Signals が含まれるようになりました。これにより、アプリケーションサービス、クライアント、Synthetics Canary、およびサービスの依存関係を検出してモニタリングできます。Application Signals を使用すると、サービスのリストやビジュアルマップを確認したり、サービスレベル目標 (SLO) に基づくヘルスメトリクスを表示したり、ドリルダウンして相関関係のある X-Ray トレースを確認したりして、より詳細なトラブルシューティングを行うことができます。
プライマリ X-Ray コンソールページはトレースマップです。トレースマップは、アプリケーションによって生成されたトレースデータから X-Ray が生成する JSON サービスグラフを視覚的に表現したものです。マップは、リクエストを処理するアカウント内の各アプリケーションのサービスノード、リクエストの送信元を示すアップストリームクライアントノード、リクエストの処理中にアプリケーションが使用するウェブサービスとリソースを示すダウンストリームサービスノードで構成されます。他にも、トレースとトレースの詳細を表示したり、グループやサンプリングルールを設定したりするためのページがあります。
X-Ray のコンソールエクスペリエンスを表示し、以下のセクションで CloudWatch コンソールと比較します。
X-Ray と CloudWatch コンソールの詳細
X-Ray トレースマップを表示して、エラーが発生しているサービス、レイテンシーの高い接続、または失敗したリクエストのトレースを識別します。
注記
CloudWatch に Application Signals が含まれるようになりました。これにより、アプリケーションサービス、クライアント、Synthetics Canary、およびサービスの依存関係を検出してモニタリングできます。Application Signals を使用すると、サービスのリストやビジュアルマップを確認したり、サービスレベル目標 (SLO) に基づくヘルスメトリクスを表示したり、ドリルダウンして相関関係のある X-Ray トレースを確認したりして、より詳細なトラブルシューティングを行うことができます。
X-Ray サービスマップと CloudWatch ServiceLens マップは、Amazon CloudWatch コンソール内の X-Ray トレースマップに結合されます。CloudWatch コンソール
トレースマップの表示
トレースマップは、アプリケーションによって生成されたトレースデータを視覚的に表現したものです。リクエストを処理するサービスノード、リクエストの送信元を示すアップストリームクライアントノード、リクエストの処理中にアプリケーションが使用するウェブサービスとリソースを示すダウンストリームサービスノードがマップに表示されます。
トレースマップには、Amazon SQS と Lambda を使用するイベント駆動型アプリケーション全体のトレースの接続されたビューが表示されます。詳細については、次のトレースイベント駆動型アプリケーションセクションを参照してください。トレースマップは、クロスアカウントトレース もサポートし、複数のアカウントのノードを 1 つのマップに表示します。
注記
X-Ray トレースマップには、最大 10,000 個のノードを表示できます。まれに、サービスノードの総数がこの制限を超えると、エラーが表示され、コンソールに完全なトレースマップを表示できないことがあります。
グループによるトレースマップのフィルタリング
フィルター式を使用すると、グループに含めるトレースの基準を定義できます。フィルター式の詳細については、「フィルター式の使用」を参照してください。次に、次のステップを使用して、トレースマップにその特定のグループを表示します。
これで、サービスマップがフィルタリングされ、選択したグループのフィルター式と一致するトレースが表示されます。
トレースマップの凡例とオプション
トレースマップには、凡例とマップ表示をカスタマイズするためのいくつかのオプションが含まれています。
X-Ray コンソールの [トレース] ページを使用して、URL、レスポンスコード、トレース概要のその他のデータでトレースを検索します。トレースリストからトレースを選択すると、トレースの詳細ページに、選択したトレースに関連付けられているサービスノードのマップとトレースセグメントのタイムラインが表示されます。
トレースの表示
トレースのタイムラインの探索
タイムラインセクションには、タスクの完了に使用された時間に対応する水平バーの横にあるセグメントとサブセグメントの階層が表示されます。リスト内の最初のエントリは、1 回のリクエストに対してサービスによって記録されたすべてのデータを表すセグメントです。サブセグメントはインデントされ、セグメントの後に一覧表示されます。列には、各セグメントに関する情報が含まれます。
計測された AWS SDK、、HTTPまたはクライアントを使用して外部リソースを呼びSQL出すと、X-Ray SDK はサブセグメントを自動的に記録します。X-Ray SDK を使用して、任意の関数またはコードブロックのカスタムサブセグメントを記録することもできます。カスタムサブセグメントが開いている間に記録される追加のサブセグメントは、カスタムサブセグメントの子になります。
セグメントの詳細を表示する
トレースタイムライン からセグメントの名前を選択して、その詳細を表示します。
セグメントの詳細パネルには、概要 、リソース 、注釈 、メタデータ 、例外 、および SQL タブが表示されます。 以下が適用されます。
-
[概要] タブには、リクエストと応答に関する情報が表示されます。情報には、名前、開始時刻、終了時刻、期間、リクエスト URL、リクエストオペレーション、リクエストレスポンスコード、エラーと障害が含まれます。
-
セグメントのリソースタブには、X-Ray SDK からの情報と、アプリケーションを実行している AWS リソースに関する情報が表示されます。X-Ray SDK の Amazon EC2 AWS Elastic Beanstalk、または Amazon ECS プラグインを使用して、サービス固有のリソース情報を記録します。プラグインの詳細については、「」の「サービスプラグイン」セクションを参照してくださいX-Ray SDK for Java の設定。
-
残りのタブには、セグメントに記録された注釈 、メタデータ 、および例外が表示されます。例外は、計測されたリクエストから生成されると自動的にキャプチャされます。注釈とメタデータには、X-Ray SDK が提供するオペレーションを使用して記録する追加情報が含まれています。セグメントに注釈またはメタデータを追加するには、X-Ray SDK を使用します。詳細については、「」の AWS X-Ray SDKs」に記載されている言語固有のリンクを参照してくださいのアプリケーションを計測する AWS X-Ray。
サブセグメントの詳細を表示する
トレースタイムラインから、詳細を表示するサブセグメントの名前を選択します。
-
概要タブには、リクエストとレスポンスに関する情報が含まれています。これには、名前、開始時刻、終了時刻、期間、リクエスト URL、リクエストオペレーション、リクエストレスポンスコード、エラーと障害が含まれます。計測されたクライアントを使用して生成されたサブセグメントについては、[概要] タブにアプリケーションの視点からのリクエストと応答に関する情報が含まれています。
-
サブセグメントのリソースタブには、 AWS サブセグメントの実行に使用されたリソースの詳細が表示されます。例えば、リソースタブには、 AWS Lambda 関数 ARN、DynamoDB テーブルに関する情報、呼び出されるオペレーション、およびリクエスト ID が含まれる場合があります。
-
残りのタブには、サブセグメントに記録された注釈 、メタデータ 、および例外が表示されます。例外は、計測されたリクエストから生成されると自動的にキャプチャされます。注釈とメタデータには、X-Ray SDK が提供するオペレーションを使用して記録する追加情報が含まれています。X-Ray SDK を使用して、セグメントに注釈またはメタデータを追加します。詳細については、「」の「 SDK を使用した AWS X-Ray アプリケーションの計測 SDKs」に記載されている言語固有のリンクを参照してくださいのアプリケーションを計測する AWS X-Ray。
カスタムサブセグメントの場合、[概要] タブには記録するコードまたは関数の領域を指定するために設定できるサブセグメントの名前が表示されます。詳細については、「」の AWS X-Ray SDKs」に記載されている言語固有のリンクを参照してくださいX-Ray SDK for Java を使用したカスタムサブセグメントの生成。
次の図は、カスタムサブセグメントの概要タブを示しています。概要には、サブセグメント ID、親 ID、名前、開始時刻と終了時刻、期間、ステータス、エラーまたは障害が含まれます。
カスタムサブセグメントのメタデータタブには、そのサブセグメントで使用されるリソースに関する情報が JSON 形式で含まれます。
フィルター式を使用して、特定のリクエスト、サービス、2 つのサービス間の接続 (エッジ)、または条件を満たすリクエストのトレースマップまたはトレースを表示します。X-Ray にはフィルタ式言語があり、リクエストヘッダー、レスポンスステータス、元セグメントのインデックス付きフィールドのデータに基づいて、リクエスト、サービス、エッジをフィルタリングできます。
X-Ray コンソールで表示するトレースの期間を選択すると、コンソールが表示できる以上の結果が得られることがあります。右上隅には、スキャンしたトレースの数と使用可能なトレースが他にもあるかどうかがコンソールに表示されます。フィルター式を使用して、検索するトレースだけに結果を絞り込むことができます。
トレースマップでノードを選択すると、コンソールはノードのサービス名と選択内容に基づいて存在するエラーのタイプに基づいてフィルター式を作成します。パフォーマンスの問題を示すトレースや特定のリクエストに関連するトレースを見つけるには、コンソールが提供する式を調整するか、独自の式を作成します。X-Ray SDK で注釈を追加する場合は、注釈キーまたはキーの値に基づいてフィルターを適用することもできます。
注記
トレースマップで相対時間範囲を選択し、ノードを選択すると、コンソールは時間範囲を絶対開始時刻と終了時刻に変換します。ノードのトレースが検索結果に確実に表示され、ノードがアクティブでないときのスキャン時間を避けるために、時間範囲にはノードがトレースを送信した時間だけが含まれます。現在の時刻を基準にして検索するには、トレースページで相対的な時間範囲に戻って再度スキャンすることができます。
コンソールが表示できるものより多くの結果がまだある場合、コンソールには一致したトレースの数とスキャンされたトレースの数が表示されます。表示される割合は、スキャンされた選択済みの時間枠の割合です。結果に表示されているすべての一致するトレースを確認するには、フィルタ式をさらに絞り込むか、より短い時間枠を選択します。
一番新しい結果を得るために、コンソールは時間範囲の終わりにスキャンを開始し、逆方向に動作します。多数のトレースがあるが結果が少ない場合、コンソールは時間範囲をチャンクに分割し、それらを並行してスキャンします。進行状況バーには、スキャンされた時間範囲の一部が表示されます。
グループは、フィルタ式で定義されるトレースのコレクションです。グループを使用して、追加のサービスグラフを生成し、Amazon CloudWatch メトリクスを指定できます。
グループは名前または Amazon リソースネーム (ARN) で識別され、フィルタ式を含みます。サービスは着信トレースを式と比較し、それに応じてそれらを保管します。
フィルタ式検索バーの左側にあるドロップダウンメニューを使用して、グループを作成および変更できます。
注記
グループの認定中に、サービスでエラーが検出された場合、そのグループは着信トレースの処理に含まれなくなり、エラーメトリクスが記録されます。
グループの詳細については、グループを設定するを参照してください。
フィルタ式にキーワード、単項またはバイナリの演算子、値を追加して比較することができます。
keyword
operator
value
演算子が異なる場合は、異なるタイプのキーワードを使用できます。たとえば、responsetime
は、数値型キーワードを指し、数値に関する演算子と比較することができます。
例 - 応答時間が 5 秒を超えたリクエスト
responsetime > 5
AND
演算子および OR
演算子を使用して、複合式内で複数の式を結合できます。
例 - 総所要時間が 5〜8 秒のリクエスト
duration >= 5 AND
duration <= 8
キーワードおよび演算子をシンプルにすると、トレースレベルでのみ問題を見つけることができます。エラーによってダウンロードが発生したが、アプリケーションによって処理され、ユーザーに返らない場合、error
の検索では見つけることができません。
ダウンストリームの問題があるトレースを見つけるには、複雑なキーワード service()
と を使用できますedge()
。これらのキーワードを使用して、すべてのダウンストリームノード、単一のダウンストリームノード、または 2 つのノード間のエッジにフィルタ式を適用することができます。これらのキーワードの詳細については、次の「複雑なキーワード」セクションを参照してください。さらに詳細にする場合は、「id() 関数」を使用して、タイプごとにサービスおよびエッジをフィルタリングすることができます。詳細については、次の ID 関数セクションを参照してください。
ブール値のキーワード値は true または false です。これらのキーワードを使用して、エラーの原因となったトレースを見つけます。
ブール型キーワード
-
ok
- レスポンスステータスコードは 2XX Success でした。 -
error
- レスポンスステータスコードは 4XX Client Error でした。 -
throttle
- レスポンスステータスコードは 429 Too Many Requests でした。 -
fault
- レスポンスステータスコードは 5XX Server Error でした。 -
partial
- リクエスト内に不完全なセグメントがあります。 -
inferred
- リクエスト内に推定セグメントがあります。 -
first
- 要素は列挙リストの最初です。 -
last
- 要素は列挙リストの最後です。 -
remote
- 根本原因のエンティティがリモートです。 -
root
- サービスはエントリポイント、またはトレースのルートセグメントです。
ブール演算子は、指定されたキーが true
または false
のセグメントを見つけます。
ブール演算子
-
none - キーワードが true の場合、式は true と評価されます。
-
!
- キーワードが false の場合、式は true と評価されます。 -
=
,!=
- キーワードの値を文字列true
またはfalse
と比較します。これらの演算子は、他の演算子と同じように動作しますが、より明示的です。
例 - レスポンスステータスが 2XX OK である
ok
例 - レスポンスステータスが 2XX OK ではない
!ok
例 - レスポンスステータスが 2XX OK ではない
ok = false
例 - 最後の列挙障害トレースにエラー名「逆シリアル化」がある
rootcause.fault.entity { last and name = "deserialize" }
例 - カバレッジが 0.7 より大きく、サービス名が「トレース」であるリモートセグメントを持つリクエスト
rootcause.responsetime.entity { remote and coverage > 0.7 and name = "traces" }
例 - サービスタイプが「AWS:DynamoDB」の推定セグメントがあるリクエスト
rootcause.fault.service { inferred and name = traces and type = "AWS::DynamoDB" }
例 - ルートとして「data-plane」という名前のセグメントのあるリクエスト
service("data-plane") {root = true and fault = true}
数値型キーワードを使用して、特定の応答時間、期間、応答ステータスを含むリクエストを検索します。
数値型キーワード
-
responsetime
- サーバーでレスポンスの送信に要した時間。 -
duration
- すべてのダウンストリーム呼び出しを含むリクエスト総所要時間。 -
http.status
- レスポンスステータスコード。 -
index
- 列挙リスト内の要素の位置。 -
coverage
- ルートセグメントの応答時間に対するエンティティの応答時間の 10 進数の割合。応答時間の根本原因のエンティティにのみ適用されます。
数値型演算子
数値型キーワードでは、標準の品質と比較演算子を使用しています。
-
=
,!=
- キーワードが数値と同等か、等しくない。 -
<
,<=
,>
,>=
- キーワードが数値より小さい、または大きい。
例 - レスポンスステータスが 200 OK ではない
http.status != 200
例 - 総所要時間が 5〜8 秒のリクエスト
duration >= 5 AND duration <= 8
例 - すべてのダウンストリーム呼び出しを含めて 3 秒未満で正常に完了したリクエスト
ok !partial duration <3
例 - 5 より大きいインデックスを持つ列挙型リストエンティティ
rootcause.fault.service { index > 5 }
例 - 最後のエンティティが 0.8 より大きいカバレッジを持つリクエスト
rootcause.responsetime.entity { last and coverage > 0.8 }
文字列型キーワードを使用すると、リクエストヘッダーに特定のテキストを含むトレースや特定のユーザー ID のトレースを見つけることができます。
文字列型キーワード
-
http.url
- リクエストの URL。 -
http.method
- リクエストメソッド。 -
http.useragent
- リクエストのユーザーエージェント文字列。 -
http.clientip
- リクエスタの IP アドレス。 -
user
- Trace の任意の セグメント におけるユーザーフィールドの値。 -
name
- サービスの名前、または例外。 -
type
- サービスタイプ。 -
message
- 例外メッセージ。 -
availabilityzone
- トレース内の任意のセグメントのアベイラビリティーゾーンフィールドの値。 -
instance.id
- トレース内の任意のセグメントのインスタンス ID フィールドの値。 -
resource.arn
- トレース内の任意のセグメントのリソース ARN フィールドの値。
文字列演算子は、特定のテキストと一致する値、または特定のテキストを含む値を見つけます。値は、必ず引用符で囲います。
文字列演算子
-
=
,!=
- キーワードが数値と同等か、等しくない。 -
CONTAINS
- キーワードに特定の文字列が含まれている。 -
BEGINSWITH
,ENDSWITH
- キーワードが特定の文字列で始まる、または終わる。
例 - Http.url フィルター
http.url CONTAINS "/api/game/"
フィールドがトレースに存在するかどうかをテストするには、その値に関係なく、空の文字列が含まれているかどうかを確認します。
例 - ユーザー フィルター
ユーザー ID を持つすべてのトレースを見つけます。
user CONTAINS ""
例 - 「Auth」という名前のサービスを含む、障害の根本原因を含むトレースの選択
rootcause.fault.service { name = "Auth" }
例 - 最後のサービスに DynamoDB タイプがある応答時間の根本原因を含むトレースの選択
rootcause.responsetime.service { last and type = "AWS::DynamoDB" }
例 - 最後の例外に「account_id:1234567890 のアクセスが拒否されました」というメッセージのある障害の根本原因を含むトレースの選択
rootcause.fault.exception { last and message = "Access Denied for account_id: 1234567890"
複雑なキーワードを使用し、サービス名、エッジ名、または注釈値に基づいてリクエストを見つけます。サービスとエッジについては、サービスまたはエッジに適用される追加のフィルタ式を指定できます。注釈では、ブール値、数値、または文字列演算子を使用して、特定のキーで注釈の値をフィルタリングできます。
複合型キーワード
-
annotation.
- フィールドkey
[key]
(キー)の注釈の値。注釈の値は、ブール値、数値、文字列のいずれかであるため、このタイプの比較演算子のいずれも使用することができます。このキーワードはservice
またはedge
キーワードと組み合わせて使用することができます。 -
edge(
-source
,destination
) {filter
}[source]
(ソース)サービスと[destination]
(宛先) サービス間の接続。オプションの中括弧には、この接続のセグメントに適用されるフィルタ式を含めることができます。 -
group.
— グループ名またはグループ ARN で参照されるグループのフィルター式の値。name
/ group.arn
-
json
- JSON 根本原因オブジェクト。JSON エンティティをプログラムで作成する手順については、AWS 「X-Ray からデータを取得する」を参照してください。 -
service(
- 名前がname
) {filter
}[name]
のサービス。オプションの中括弧には、サービスで作成されたセグメントに適用されるフィルタ式を含めることができます。
サービスキーワードを使用して、トレースマップ上の特定のノードにヒットしたリクエストのトレースを検索します。
複合型キーワード演算子は、指定されたキーが設定されている、または設定されていないセグメントを見つけます。
複合型キーワード演算子
-
none - キーワードが 設定されている場合、式は true と評価されます。キーワードがブール型の場合は、ブール値として評価されます。
-
!
- キーワードが setでない場合、式は true と評価されます。キーワードがブール型の場合は、ブール値として評価されます。 -
=
,!=
— キーワードの値を比較します。 -
edge(
-source
,destination
) {filter
}[source]
(ソース) サービスと[destination]
(宛先) サービス間の接続。オプションの中括弧には、この接続のセグメントに適用されるフィルタ式を含めることができます。 -
annotation.
- フィールドkey
[key]
(キー)の注釈の値。注釈の値は、ブール値、数値、文字列のいずれかであるため、このタイプの比較演算子のいずれも使用することができます。このキーワードはservice
またはedge
キーワードと組み合わせて使用することができます。 -
json
- JSON 根本原因オブジェクト。JSON エンティティをプログラムで作成する手順については、AWS 「X-Ray からデータを取得する」を参照してください。
サービスキーワードを使用して、トレースマップ上の特定のノードにヒットしたリクエストのトレースを検索します。
例 - サービスフィルター
障害 (500 シリーズのエラー) が発生した api.example.com
の呼び出しを含んだリクエスト。
service("api.example.com") { fault }
サービス名を除外して、フィルタ式をサービスマップのすべてのノードに適用することができます。
例 - サービスフィルター
トレースマップ上の任意の場所で障害が発生したリクエスト。
service() { fault }
エッジキーワードは、フィルタ式を 2 つのノード間の接続に適用します。
例 - エッジ フィルター
サービス api.example.com
から backend.example.com
への呼び出しが失敗してエラーが発生したリクエスト。
edge("api.example.com", "backend.example.com") { error }
また、サービスまたはエッジのキーワードを含む !
演算子を使用して、サービスまたはエッジを他のフィルタ式の結果から除外することもできます。
例 - サービスおよびリクエスト フィルター
URL が http://api.example.com/
で始まって /v2/
を含むが、api.example.com
という名前のサービスに達しないリクエスト。
http.url BEGINSWITH "http://api.example.com/" AND http.url CONTAINS "/v2/" AND !service("api.example.com")
例 — サービスと応答時間のフィルター
http url
が設定され、応答時間が 2 秒を超えているトレースを見つけてください。
http.url AND responseTime > 2
注釈について、annotation.
が設定されているか、値のタイプに対応する比較演算子を使用しているかすべてのトレースを呼び出すことができます。key
例 - 文字列値を含む注釈
文字列値 gameid
の "817DL6VO"
という名前のリクエスト。
annotation.gameid = "817DL6VO"
例 — 注釈が設定されている
age
設定という名前の注釈を持つリクエスト。
annotation.age
例 — 注釈が設定されていません
age
設定という名前の注釈のないリクエスト。
!annotation.age
例 - 数値を含む注釈
アノテーション期間が数値 29 より大きいリクエスト。
annotation.age > 29
例 – サービスまたはエッジと組み合わせた注釈
service { annotation.request_id = "917DL6VO" }
edge { source.annotation.request_id = "916DL6VO" }
edge { destination.annotation.request_id = "918DL6VO" }
例 — ユーザーとグループ化
トレースがを満たすリクエストhigh_response_time
グループフィルター ( 例:responseTime > 3
)。ユーザーの名前はアリス。
group.name = "high_response_time" AND user = "alice"
例 - 根本原因のエンティティを含む JSON
根本原因エンティティが一致するリクエスト
rootcause.json = #[{ "Services": [ { "Name": "GetWeatherData", "EntityPath": [{ "Name": "GetWeatherData" }, { "Name": "get_temperature" } ] }, { "Name": "GetTemperature", "EntityPath": [ { "Name": "GetTemperature" } ] } ] }
]
service
または edge
のキーワードにサービス名を入力すると、そのサービス名を含むすべてのノードの結果が得られます。詳細にフィルタリングする場合は、id
関数を使用してサービスのタイプと名前を指定し、同一名を持つノードを区別することができます。
モニタリングアカウント内の複数のアカウントのトレースを表示する場合、account.id
関数を使用してサービスの特定のアカウントを指定します。
id(name: "service-name
", type:"service::type
", account.id:"account-ID
")
サービスフィルタおよびエッジフィルタで、サービス名ではなく、id
関数を使用することもできます。
service(id(name: "service-name
", type:"service::type
")) { filter
}
edge(id(name: "service-one
", type:"service::type
"), id(name: "service-two
", type:"service::type
")) { filter
}
例えば、 AWS Lambda 関数はトレースマップに 2 つのノードを作成します。1 つは関数の呼び出し用、もう 1 つは Lambda サービス用です。この 2 つのノードは同じ名前ですが、タイプが異なります。標準サービスフィルタは、両ノードのトレースを見つけます。
例 - サービスフィルター
random-name
という名前を持つすべてのサービスにエラーを含むリクエスト。
service("function-name") { error }
id
関数を使用して、関数そのもののエラーを絞り込み、サービスからエラーを除外します。
例 - id 関数を使用したサービスフィルター
サービスタイプが random-name
の AWS::Lambda::Function
という名前のサービスにエラーを含むリクエスト。
service(id(name: "random-name", type: "AWS::Lambda::Function")) { error }
タイプ別にノードを検索するには、名前を完全に除外します。
例 – id 関数とサービスタイプを使用したサービスフィルター
サービスタイプが AWS::Lambda::Function
のサービスにエラーを含むリクエスト。
service(id(type: "AWS::Lambda::Function")) { error }
特定の のノードを検索するには AWS アカウント、アカウント ID を指定します。
例 – id 関数とアカウント ID を使用したサービスフィルター
特定のアカウント ID AWS::Lambda::Function
内のサービスを含むリクエスト。
service(id(account.id: "account-id
"))
AWS X-Ray はクロスアカウントオブザーバビリティ をサポートしているため、 内の複数のアカウントにまたがるアプリケーションをモニタリングおよびトラブルシューティングできます AWS リージョン。リンクされたアカウントのメトリクス、ログ、トレースをまとめてシームレスに検索、可視化、分析できます。これにより、複数のアカウントにまたがるリクエストの全体像を把握できます。クロスアカウントトレースは、CloudWatchコンソール
共有されるオブザーバビリティデータには、次のいずれかのタイプのテレメトリが含まれます。
-
Amazon のメトリクス CloudWatch
-
Amazon Logs CloudWatch のロググループ
-
のトレース AWS X-Ray
-
Amazon CloudWatch Application Insights のアプリケーション
クロスアカウントオブザーバビリティの設定
クロスアカウントオブザーバビリティを有効にするには、1 つ以上の AWS モニタリングアカウントを設定し、複数のソースアカウントにリンクさせます。モニタリングアカウントは、ソースアカウントから生成されたオブザーバビリティデータを表示して操作 AWS アカウント できる中心的なアカウントです。ソースアカウントは、含まれ AWS アカウント るリソースのオブザーバビリティデータを生成する個人です。
ソースアカウントは、オブザーバビリティデータをモニタリングアカウントと共有します。トレースは各ソースアカウントから最大 5 つのモニタリングアカウントにコピーされます。ソースアカウントから最初のモニタリングアカウントへのトレースのコピーは無料です。追加のモニタリングアカウントに送信されたトレースのコピーは、標準料金に基づいて各ソースアカウントに請求されます。詳細については、「 のAWS X-Ray 料金
モニタリングアカウントとソースアカウント間のリンクを作成するには、 CloudWatch コンソールを使用するか、 AWS CLI および API の新しい Observability Access Manager コマンドを使用します。詳細については、CloudWatch 「クロスアカウントオブザーバビリティ」を参照してください。
注記
X-Ray トレースは、受信した AWS アカウント に請求されます。サンプリングされたリクエストが複数の のサービスにまたがる場合 AWS アカウント、各アカウントは個別のトレースを記録し、すべてのトレースは同じトレース ID を共有します。クロスアカウントオブザーバビリティの料金の詳細については、「 AWS X-Ray の料金
クロスアカウントトレースの表示
クロスアカウントトレースはモニタリングアカウントに表示されます。各ソースアカウントには、その特定のアカウントのローカルトレースのみが表示されます。以下のセクションでは、モニタリングアカウントにサインインし、Amazon CloudWatch コンソールを開いていることを前提としています。トレースマップページとトレースページの両方で、右上隅にモニタリングアカウントバッジが表示されます。
トレースマップ
CloudWatch コンソールで、左側のナビゲーションペインから X-Ray トレースの下にあるトレースマップを選択します。デフォルトでは、トレースマップには、モニタリングアカウントにトレースを送信するすべてのソースアカウントのノードと、モニタリングアカウント自体のノードが表示されます。トレースマップで、左上からフィルターを選択して、Accounts ドロップダウンを使用してトレースマップをフィルタリングします。 アカウントフィルターが適用されると、現在のフィルターと一致しないアカウントのサービスノードはグレー表示されます。
サービスノードを選択すると、[ノードの詳細] ペインにサービスのアカウント ID とラベルが表示されます。
トレースマップの右上隅で、リストビューを選択してサービスノードのリストを表示します。サービスノードのリストには、モニタリングアカウントのサービスと、ソースアカウントに設定されているすべてのアカウントのサービスが含まれます。[ノード] フィルターで [アカウントラベル] または [アカウント ID] を選択して、ノードのリストをフィルタリングします。
トレース
モニタリングアカウントから CloudWatch コンソールを開き、左側のナビゲーションペインの X-Ray トレースでトレースを選択して、複数のアカウントにまたがるトレースの詳細を表示します。 このページを開くには、X-Ray トレースマップ でノードを選択し、ノードの詳細ペインからトレースを表示を選択します。
[トレース] ページでは、アカウント ID によるクエリがサポートされています。はじめに、1 つまたは複数のアカウント ID を含むクエリを入力します。クエリの詳細については、「」を参照してくださいフィルター式を使用する。次の例では、アカウント ID Xまたは Y を通過したトレースをクエリします。
service(id(account.id:"
X
")) OR service(id(account.id:"Y
"))
[アカウント] ごとにクエリを絞り込みます。リストから 1 つ以上のアカウントを選択し、[クエリに追加] を選択します。
トレースの詳細
[トレース] ページの下部にある [トレース] リストからトレースを選択すると、トレースの詳細が表示されます。トレースの詳細が表示されます。トレースの詳細マップには、トレースが通過したすべてのアカウントからのサービスノードが含まれます。特定のサービスノードを選択すると、対応するアカウントが表示されます。
[セグメントのタイムライン] セクションには、タイムラインの各セグメントのアカウント詳細が表示されます。
AWS X-Ray は、Amazon SQS および を使用したイベント駆動型アプリケーションのトレースをサポートします AWS Lambda。 CloudWatch コンソールを使用して、Amazon SQS でキューに入れられ、1 つ以上の Lambda 関数によって処理される各リクエストの接続されたビューを表示します。アップストリームメッセージプロデューサーからのトレースは、ダウンストリーム Lambda コンシューマーノードからのトレースに自動的にリンクされ、アプリケーションの end-to-end ビューが作成されます。
注記
各トレースセグメントは最大 20 のトレースにリンクできます。また、1 つのトレースには最大 100 のリンクを含めることができます。シナリオによっては、追加のトレースをリンクするとトレースドキュメントの最大サイズを超え、トレースが不完全になる可能性があります。例えば、トレーシングが有効になっている Lambda 関数が 1 回の呼び出しで多数の SQS メッセージをキューに送信した場合に発生することがあります。この問題が発生した場合は、X-Ray SDK を使用する緩和策があります。詳細については、Java
リンクされたトレースをトレースマップに表示する
CloudWatch コンソール
破線のエッジを選択すると、[受け取ったイベントが発生してから経過した時間]ヒストグラムが表示されます。これは、コンシューマーが受け取ったイベントの経過時間の分布をマッピングしたものです。経過時間は、イベントを受信するたびに計算されます。
リンクされたトレースの詳細の表示
メッセージプロデューサー、Amazon SQS キュー、または Lambda コンシューマーから送信されたトレースの詳細を表示します。
-
トレースマップを使用して、メッセージプロデューサー、Amazon SQS、または Lambda コンシューマーノードを選択します。
-
ノードの詳細ペインから [トレースを表示] を選択すると、トレースのリストが表示されます。 CloudWatch コンソール内のトレースページに直接移動することもできます。
-
リストから特定のトレースを選択し、トレースの詳細ページを開きます。選択したトレースが、リンクされたトレースセットの一部である場合、トレースの詳細ページにメッセージが表示されます。
トレースの詳細マップには、現在のトレースと、アップストリームおよびダウンストリームにリンクされたトレースが表示されます。各トレースは、各トレースの境界を示すボックス内に含まれています。現在選択されているトレースがアップストリームまたはダウンストリームの複数のトレースにリンクされている場合、アップストリームまたはダウンストリームにリンクされているトレース内のノードは積み重ねられ、[トレースを選択] ボタンが表示されます。
トレース詳細マップの下に、アップストリームとダウンストリームにリンクされたトレースを含むトレースセグメントのタイムラインが表示されます。アップストリームまたはダウンストリームにリンクされたトレースが複数ある場合、それらのセグメントの詳細は表示できません。リンクされたトレースのセット内の 1 つのトレースのセグメントの詳細を表示するには、次のセクションで説明するように 1 つのトレースを選択します。
リンクされたトレースのセットから 1 つのトレースを選択
リンクされたトレースセットを 1 つのトレースにフィルタリングすると、タイムラインにセグメントの詳細が表示されます。
-
トレース詳細マップのリンクされたトレースの下にあるトレースを選択を選択します。トレースのリストが表示されます。
-
トレースの横にあるラジオボタンを選択すると、トレースの詳細マップ内でそのトレースが表示されます。
-
[トレースの選択をキャンセル] を選択すると、リンクされたトレースのセット全体が表示されます。
トレースマップでノードまたはエッジを選択すると、X-Ray コンソールにレイテンシー分布ヒストグラムが表示されます。
レイテンシー
レイテンシーは、リクエストが開始してから完了するまでの時間です。ヒストグラムは、レイテンシーの分散を示します。また、期間を x 軸、各期間に一致するリクエストの割合を y 軸に示しています。
このヒストグラムでは、ほとんどのリクエストを 300 ミリ秒 (ms) 以下で完了するサービスを示します。割合が低いリクエストには最大 2 秒、異常値の場合はそれ以上かかります。
サービスの詳細の解釈
サービス ヒストグラムおよびエッジヒストグラムは、レイテンシーをサービスまたはリクエスト元の視点からビジュアルに表現したものです。
-
円をクリックして、[service node] ( サービス ノード)を選択します。X-Ray は、サービスによる依頼者のヒストグラムを示します。このレイテンシーは、サービスによって記録されたものであり、サービスと依頼者の間のネットワークレイテンシーは含まれません。
-
2 つのサービスの間のエッジの線、または矢の先をクリックして、[edge] (エッジ) を選択します。X-Rayは、ダウンストリームサービスによって行われる依頼者のリクエストのヒストグラムを示します。このレイテンシーは、依頼者によって記録されたものであり、2 つのサービスの間のネットワーク接続のレイテンシーは含まれません。
[サービスの詳細] パネルヒストグラムを解釈するには、ヒストグラムの値の大部分と異なる値を探します。このような 異常値 は、ヒストグラムのピークまたは急増としてみなすことができるため、特定のエリアのトレースを表示して、現在の状況を調査することができます。
レイテンシーでフィルタリングされたトレースを表示するには、ヒストグラムの範囲を選択します。選択の開始位置をクリックし、左から右にドラッグして、トレースフィルタに含むレイテンシーの範囲をハイライト表示します。
範囲を選択したら、[Zoom] を選択してヒストグラムの部分のみを表示し、選択範囲を絞り込みます。
表示するエリアを絞って設定したら、[View traces] を選択します。
AWS X-Ray は、アカウント内のトレースデータを継続的に分析して、アプリケーションの緊急の問題を特定します。故障率が想定範囲を超えた場合、その問題を記録し、解決されるまで影響を追跡するインサイトを作成します。Insights を使用すると、次のことが可能になります。
-
アプリケーションで問題が発生している場所、問題の根本原因、および関連する影響を特定します。 Insights によって提供される影響分析により、問題の重要度と優先度を導き出すことができます。
-
時間の経過とともに課題が変化すると、通知を受信します。 Insights 通知は、Amazon を使用してモニタリングおよびアラートソリューションと統合できます EventBridge。この統合により、問題の重要度に基づいて自動メールまたはアラートを送信できます。
X-Ray コンソールは、トレースマップで進行中のインシデントがあるノードを識別します。インサイトの概要を確認するには、影響を受けるノードを選択します。左側のナビゲーションペインから Insights を選択して、Insights を表示およびフィルタリングすることもできます。
X-Ray は、サービスマップの 1 つ以上のノードで[anomaly] (異常)を検出すると、インサイトを作成します。このサービスは、統計モデリングを使用して、アプリケーション内のサービスの予想故障率を予測します。前の例では、異常は からの障害の増加です AWS Elastic Beanstalk。Elastic Beanstalk サーバーで複数の API コール タイムアウトが発生し、ダウンストリームノードで異常が発生しました。
X-Ray コンソールで Insights を有効にする
インサイト機能を使用する場合は、グループごとに、インサイトを有効にする必要があります。インサイトを有効にするには、[Groups] (グループ)ページから行います。
[X-Ray console]
(X-Ray コンソール)を開きます。 -
既存のグループを選択するか、[Create group] (グループの作成)を選択して新しいグループを作成し、[Enable Insights] (インサイトを有効にする)を選択します。X-Ray コンソールでのグループの構成の詳細については、グループを設定する を参照してください。
-
左側のナビゲーションペインで、[Insights] (インサイト)を選択し、表示するインサイトを選択します。
注記
X-Ray は GetInsightSummaries、、 GetInsight GetInsightEvents、および GetInsightImpactGraph API オペレーションを使用してインサイトからデータを取得します。インサイトを表示するには、 AWSXrayReadOnlyAccess IAM 管理ポリシーを使用するか、次のカスタムポリシーを IAM ロールに追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:GetInsightSummaries", "xray:GetInsight", "xray:GetInsightEvents", "xray:GetInsightImpactGraph" ], "Resource": [ "*" ] } ] }
詳細については、「が IAM と AWS X-Ray 連携する方法」を参照してください。
インサイトの通知を有効にします。
インサイト通知を使用すると、インサイトが作成されたとき、大幅な変更、クローズされたときなど、インサイトイベントごとに通知が作成されます。 お客様は Amazon EventBridge イベントを通じてこれらの通知を受信し、条件付きルールを使用して SNS 通知、Lambda 呼び出し、SQS キューへのメッセージの投稿、または がサポートするターゲット EventBridgeなどのアクションを実行できます。インサイト 通知がベストで出され -ベストエフォートですが、保証されていません。ターゲットの詳細については、「Amazon EventBridge Targets」を参照してください。
インサイトが有効なグループに対してのインサイト通知は、[Groups] (グループ)ページから有効にすることができます。
X-Ray グループの通知を有効にするには
[X-Ray console]
.(X-Ray コンソール)を開きます。 -
既存のグループを選択するか、[Create group] グループの作成)を選択して新しいグループを作成し、[Enable Insights] (インサイトを有効にする)が選択されていることを確認し、[Enable Notifications] (通知を有効にする)を選択します。X-Ray コンソールでのグループの設定の詳細については、グループを設定する を参照してください。
Amazon EventBridge の条件付きルールを設定するには
-
Amazon EventBridge コンソール
を開きます。 -
左側のナビゲーションバーで、[Rules] (ルール) に移動し[Create rule] (ルールの作成) を選択します。
-
ルールの名前と説明を入力します。
-
[Event pattern] (イベントパターン)を選択してから、[Custom pattern] (カスタムパターン)を選択します。
"source": [ "aws.xray" ]
とならびに"detail-type": [ "AWS X-Ray Insight Update" ]
を含むパターンを指定します。考えられるパターンとしては、以下のようなものがあります。-
X-Ray インサイト からのすべての受信イベントを照合するイベントパターン:
{ "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ] }
-
指定した
state
ならびにcategory
に一致するイベントパターン:{ "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ], "detail": { "State": [
"ACTIVE"
], "Category": ["FAULT"
] } }
-
-
イベントがこのルールに一致したときに呼び出すターゲットを選択して設定します。
-
(オプション)このルールをより簡単に識別して選択するためのタグを指定します。
-
[Create] を選択します。
注記
X-Ray インサイト通知は EventBridge、現在カスタマーマネージドキーをサポートしていない Amazon にイベントを送信します。詳細については、「AWS X-Ray でのデータ保護」を参照してください。
インサイト 概要
インサイト 試行tの概要ページでは、三つの重要な質問に答えます。
-
根本的な問題は何ですか?
-
根本原因は何ですか?
-
その影響は何ですか?
[Anomalous services] (異常サービス)セクションには、インシデント中の故障率の変化を示す各サービスのタイムラインが表示されます。タイムラインには、記録されたトラフィック量に基づいて予想される障害数を示すソリッドバンドに障害が発生したトレース数を重ねて表示されます。インサイトの期間は、[Incident window] (インシデント ウインドウ)で表示されます。インシデントウィンドウは、X-Ray がメトリックの異常を観測したときに始まり、インサイトがアクティブである間、継続します。
次の例は、インシデントの原因となった障害の増加を示しています。
根本原因セクションには、根本原因サービスと影響を受けるパスに焦点を当てたトレースマップが表示されます。根本原因マップの右上にある目のアイコンを選択すると、影響を受けないノードを非表示にすることができます。 根本原因サービスは、X-Ray が異常を特定した最も遠いダウンストリームノードです。 これは、インストルメントしたサービス、またはサービスがインストルメントクライアントで呼び出した外部サービスを表すことができます。 例えば、計測された AWS SDK クライアントで Amazon DynamoDB を呼び出すと、DynamoDB からの障害が増加すると、根本原因として DynamoDB に関するインサイトが得られます。
根本原因をさらに調査するには、根本原因グラフの [View root cause details] (根本原因の詳細を表示)を選択します。[Analytics] (分析)ページを使用して、根本原因と関連メッセージを調査することができます。詳細については、「Analytics コンソールを操作する」を参照してください。
マップ内で続くアップストリームの障害は、複数のノードに影響し、複数の異常を引き起こす可能性があります。リクエストを行ったユーザーに障害を引き渡された場合、結果は[client fault] (クライアント障害)となります。これはトレースマップのルートノードの障害です。[Impact] (影響) グラフは、グループ全体のクライアント体験のタイムラインを表したものです。この経験は、次の状態のパーセンテージに基づいて計算されます。Fault, Error, Throttle, および Okay。
この例では、インシデントの発生時にルートノードで障害が発生したトレースの増加を示します。 ダウンストリームサービスのインシデントは、クライアントエラーの増加に必ずしも対応しているとは限りません。
[Analyze insight] (インサイトを分析)を選択すると X-Ray Analytics コンソールがウィンドウで開き、インサイトの原因となる一連のトレースを深く掘り下げることができます。詳細については、「Analytics コンソールを操作する」を参照してください。
[Understanding impact] (影響の把握)
AWS X-Ray は、インサイトと通知の生成の一環として、進行中の問題によって引き起こされる影響を測定します。影響は、次の 2 つの方法で測定されます。
-
X-Ray グループへの影響。詳細については、「グループの設定」を参照してください。
-
根本原因サービスへの影響
この影響は、一定の期間内に失敗またはエラーを引き起こしているリクエストの割合によって決まります。この影響分析では、特定のシナリオに基づいて、問題の重要度と優先度を導き出すことができます。この影響は、インサイト通知に加えて、コンソール体験の一部として利用できます。
[Deduplication] (重複排除)
AWS X-Ray Insights は、複数のマイクロサービス間で問題を重複排除します。異常検出により、問題の根本原因であるサービスを特定し、他の関連サービスが同じ根本原因で異常な動作を示しているかどうかを判断し、結果を単一のインサイトとして記録します。
インサイトの進捗状況を確認します
X-Ray は、インサイトが解決されるまで定期的に再評価し、注目すべき中間変更をそれぞれ通知として記録し、Amazon EventBridge イベントとして送信できます。これにより、問題が時間の経過とともにどのように変化したかを判断するためのプロセスとワークフローを構築し、 を使用して E メールの送信やアラートシステムとの統合などの適切なアクションを実行できます EventBridge。
インシデントイベントは、[Inspect] (検査) ページの [Impact Timeline] (影響タイムライン) で確認るすことができます。デフォルトでは、別のサービスを選択するまで、タイムラインには最も影響のあるサービスが表示されます。
イベントのトレースマップとグラフを表示するには、影響タイムラインから選択します。トレースマップには、インシデントの影響を受けるアプリケーション内のサービスが表示されます。[Impact analysis] (影響分析)では、選択したノードおよびグループ内のクライアントの障害タイムラインがグラフで表示されます。
インシデントに関連するトレースを詳しく調べるには、[Inspect] (検査) ページで [Analyze event] (イベントの分析) を選択します。[Analytics] (分析) ページで、トレースのリストを絞り込み、影響を受けるユーザーを特定することができます。詳細については、「Analytics コンソールを操作する」を参照してください。
Analytics AWS X-Ray コンソールは、トレースデータを解釈して、アプリケーションとその基盤となるサービスのパフォーマンスをすばやく理解するためのインタラクティブなツールです。このコンソールを使用すると、インタラクティブな応答時間グラフと時系列グラフを使用して、トレースを調査、分析、および視覚化できます。
Analytics コンソールで選択すると、コンソールは選択したすべてのトレースのサブセットを反映するようにフィルタを作成します。現在のトレースセットに関連付けられているグラフとメトリクスおよびフィールドのパネルをクリックして、アクティブなデータセットをきめ細かく絞り込むことができます。
X-Ray Analytics コンソールでは、以下の主要な機能を使用して、トレースデータをグループ化、フィルタリング、比較、定量化します。
機能
機能 | 説明 |
---|---|
Groups (グループ) |
最初に選択されるグループは、 |
Retrieved traces (取得されたトレース) |
デフォルトでは、Analytics コンソールは選択したグループのすべてのトレースに基づいてグラフを生成します。取得されたトレースは、作業セットのすべてのトレースを表します。このタイルにトレースカウントがあります。メイン検索バーに適用したフィルタ式は、取得されたトレースを絞り込んで更新します。 |
Show in charts/Hide from charts (グラフに表示/グラフに非表示) |
アクティブなグループを切り替え、取得されたトレースと比較します。グループに関連するデータをアクティブなフィルタと比較するには、[Show in charts (グラフに表示)]を選択します。グラフからこのビューを削除するには、[Hide from charts (グラフに非表示)] を選択します。 |
Filtered trace set A (フィルタリングされたトレースセット A) |
グラフやテーブルとの対話を通じて、フィルターを適用して[Filtered trace set A ] (フィルタリングされたトレースセット A )の基準を作成します。フィルターが適用されると、適用可能なトレースの数と取得された合計に対するトレースの割合がこのタイル内で計算されます。フィルタは [Filtered trace set A] タイル内のタグとして入力され、タイルから削除することもできます。 |
Refine (絞り込み) |
この関数は、トレースセット A に適用されたフィルタに基づいて、取得したトレースのセットを更新します。取得されたトレースセットを絞り込むと、トレースセット A のフィルタに基づいて取得したすべてのトレースの処理中のセットが更新されます。取得されたトレースのワーキングセットは、グループ内のすべてのトレースをサンプリングしたサブセットです。 |
Filtered trace set B (フィルタリングされたトレースセット B) |
作成した場合、[フィルタリングされたトレースセット B] は、[フィルタリングされたトレースセット A] の写しです。2 つのトレースセットを比較するには、トレースセット A を固定したままトレースセット B に適用する新しいフィルターを選択します。フィルタが適用されると、適用可能なトレースの数と取得された合計からのトレースの割合がこのタイル内で計算されます。フィルタは、[Filtered trace set B] タイル内にタグとして入力され、タイルから削除することもできます。 |
Response time root cause entity paths (応答時間根本原因エンティティパス) |
記録されたエンティティパスのテーブル。X-Rayは、トレース内のどのパスが応答時間の最大の原因であるかを判別します。この形式は、検出されたエンティティの階層を示し、最後に応答時間の根本原因を示します。これらの行を使用して、定期的な応答時間障害をフィルタリングします。根本原因フィルターのカスタマイズと API を介したデータの取得の詳細については、「」の「根本原因分析の取得と改良」セクションを参照してくださいX-Ray からデータを取得する。 |
Delta (�) (デルタ) |
トレースセット A とトレースセット B の両方がアクティブなときにメトリクステーブルに追加される列。Deltaデルタ列は、トレースセット A とトレースセット B の間のトレースの割合の差を計算します。 |
X-Ray Analytics コンソールは、トレースの視覚化に役立つ、[Response Time Distribution ] (応答時間ディストリビューション) および [Time Series Activity] (時系列アクティビティ) の 2 つの主要なグラフが生成されます。このセクションと続く部分ではそれぞれの例をあげて、グラフを読み取る方法の基本について説明します。
応答時系列グラフに関連する色は次のとおりです (時系列グラフは同じカラースキームを使用します)。
-
[All traces in the group] (グループのすべてのトレース) - グレー
-
[Retrieved traces] (取得されたトレース) - オレンジ
-
[Filtered trace set A] (フィルタリングされたトレースセット A) - 緑
-
[Filtered trace set B] (フィルタリングされたトレースセット B) - 青
例 - 応答時間ディストリビューション
応答時間ディストリビューションは、指定された応答時間でのトレース数を示すグラフです。クリックしてドラッグし、応答時間ディストリビューションで選択を行います。これは、特定の応答時間内のすべてのトレースに対して、responseTime
という名前の作業トレースセットにフィルターを選択して作成します。
時系列アクティビティグラフには、指定された期間のトレースの数が表示されます。カラーインジケータは、応答時間ディストリビューションの折れ線グラフの色を反映しています。アクティビティシリーズのカラーブロックが濃く、密になるほど、より多くのトレースが指定された期間に表示されます。
例 - 時系列アクティビティ
クリックしてドラッグし、時系列アクティビティグラフ内で選択を行います。これは、特定の時間範囲内のすべてのトレースに対して、作業トレースセットに指定されている timerange
という名前のフィルタを選択して作成します。
以下の例では、X-Ray Analytics コンソールの一般的なユースケースを示します。各例では、コンソールエクスペリエンスの主要な機能を示します。グループとして、例では基本的なトラブルシューティングワークフローに従います。このステップでは、最初に異常なノードを特定し、次に Analytics コンソールを操作して比較クエリを自動的に生成する方法を示します。クエリによってスコープを絞り込んだら、最終的に関心のあるトレースの詳細を調べて、サービスの健全性を損なう原因を特定します。
トレースマップは、エラーと障害に対する成功した呼び出しの比率に基づいて色付けすることで、各ノードの状態を示します。赤色の割合が表示されたら、そのシグナルノードに障害が発生しています。X-Ray Analytics コンソールを使用して、調査を実施します。
トレースマップの読み方の詳細については、「X-Ray トレースマップの使用」を参照してください。
応答時間ディストリビューションを使用して、応答時間のピークを確認できます。応答時間のthe ピークを選択すると、グラフの下のテーブルが更新され、ステータスコードなど、関連付けられているすべてのメトリクスが表示されます。
クリックしてドラッグすると、X-Rayによってフィルターが選択され、作成されます。これは、グラフ化された線の上にグレーの影で表示されます。影をディストリビューションに沿って左右にドラッグして選択内容とフィルタを更新できるようになりました。
グラフの下にあるメトリクステーブルを使用して、選択したピーク内のトレースを詳しく調べることができます。[HTTP STATUS CODE] テーブルの行をクリックすると、作業データセットにフィルタが自動的に作成されます。たとえば、ステータスコード 500 のトレースをすべて表示することができます。これにより http.status
という名前のトレースセットタイルにフィルタタグが作成されます。
ユーザー、URL、応答時間の根本原因、またはその他の事前定義された属性に基づいてエラーセットを詳しく調べます。たとえば、500 ステータスコードでトレースのセットをさらにフィルタリングするには、[USERS] テーブルから行を選択します。これにより、トレースセットタイルに以前に指定された http.status
、および user
の 2 つのフィルタタグが作成されます。
さまざまなユーザーとその POST リクエストを比較して、他の不一致や相関関係を見つけます。最初のフィルタのセットを適用します。これらは応答時間ディストリビューションの青い線で定義されます。次に、[Compare (比較)] を選択します。最初に、これによりトレースセット A にフィルタのコピーが作成されます。
続行するには、トレースセット B に適用する新しいフィルタセットを定義します。この 2 番目のセットは緑色の線で表されます。次の例は、青と緑のカラースキームに従って異なる線を示しています。
コンソールフィルタを使用してスコープを絞り込むと、メトリクステーブルの下のトレースリストがより有益になります。トレースリストテーブルは、[URL]、[USER]、および [STATUS CODE] に関する情報を 1 つのビューにまとめたものです。詳細については、このテーブルから行を選択して、トレースの詳細ページを開き、タイムライン、raw データを表示します。
グループは、フィルタ式で定義されるトレースのコレクションです。グループを使用して、追加のサービスグラフを生成し、Amazon CloudWatch メトリクスを指定できます。 AWS X-Ray コンソールまたは X-Ray API を使用して、サービスのグループを作成して管理できます。このトピックでは、X-Ray コンソールを使用してグループを作成および管理する方法について説明します。X-Ray API を使用してグループを管理する方法については、X-Ray API を使用したサンプリング、グループ、および暗号化設定の構成 を参照してください。
トレースマップ、トレース、または分析用のトレースのグループを作成できます。グループを作成すると、そのグループは、トレースマップ 、トレース 、分析 の 3 ページすべてのグループドロップダウンメニューでフィルターとして使用可能になります。
グループは名前または Amazon リソースネーム (ARN) で識別され、フィルタ式を含みます。サービスは着信トレースを式と比較し、それに応じてそれらを保管します。フィルター式の作成方法の詳細については、フィルター式を使用する を参照してください。
グループのフィルタ式を更新しても、すでに記録されているデータは変わりません。更新は後続のトレースにのみ適用されます。これにより、新しい式と古い式がマージされたグラフが表示される場合があります。これを回避するには、現在のグループを削除し、新しいグループを作成します。
注記
グループは、フィルタ式と一致する取得済みのトレースの数で請求されます。詳細については、「AWS X-Ray 料金表
グループを作成する
注記
Amazon CloudWatch コンソール内から X-Ray グループを設定できるようになりました。X-Ray コンソールを引き続き使用することもできます。
グループを適用します
グループを編集します
グループのクローンを作成します
グループを複製すると、既存のグループのフィルター式とタグを持つ新しいグループが作成されます。グループのクローンを作成すると、新しいグループの名前はクローンの元のグループの名前に-clone
付加された名前になります。
グループの削除
グループを削除するには、このセクションの手順に従います。[Default] (デフォルト) グループを削除することはできません。
Amazon でグループメトリクスを表示する CloudWatch
グループの作成後、着信トレースは、X-Ray サービスに格納されるときにグループのフィルター式と照合されます。各条件に一致するトレース数のメトリクスは、 CloudWatch 毎分 Amazon に発行されます。グループの編集ページでメトリクスの表示を選択すると、 CloudWatchコンソールがメトリクスページに開きます。 CloudWatch メトリクスの使用方法の詳細については、「Amazon CloudWatch ユーザーガイド」の「Amazon メトリクスの使用 CloudWatch 」を参照してください。
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 リクエストでアクティブトレースを有効にするには、「X-Ray による AWS トレース」を参照してください。
-
コンピューティングプラットフォームで 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 サービスからルールを読み取ることで、これら両方の問題を回避できます。このサービスでは、各ルールのリザーバを管理し、実行されているインスタンスの数に基づいて、リザーバを均等に分散させるため、使用するサービスの各インスタンスにクォータを割り当てます。リザーバの制限は、設定したルールに従って計算されます。サービスでルールが設定されているので、追加のデプロイを行わずにルールを管理できます。 AWS SDK の詳細については、「 SDK を使用する」を参照してください。
注記
X-Ray では、ベストエフォート型の方法でサンプリングルールを適用しているため、場合によっては、有効なサンプリングレートが、設定されたサンプリングルールと完全に一致しないことがあります。しかし、時間の経過とともに、サンプリングされるリクエスト数が設定したパーセンテージに近づくはずです。
Amazon CloudWatch コンソール内から X-Ray サンプリングルールを設定できるようになりました。X-Ray コンソールを引き続き使用することもできます。
サンプリングルールオプション
次のオプションが各ルールで利用できます。文字列値では、ワイルドカードを使用して、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 では、スケジュールに従って、またはアラームや通知に応答して、プログラムでルールを作成および更新することができます。手順と追加のルールの例については、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 デーモンの設定」を参照してください。
ルートとクエリを使用して、特定のトレース、またはトレースとトレースマップのフィルタリングされたビューにディープリンクできます。
コンソールページ
-
ようこそページ - [xray/home#/welcom]
(xray/ホーム#/ようこそ) -
はじめに - [xray/home#/getting-starte]
(xray/ホーム#/はじめに) -
トレースマップ – xray/home#/service-map
-
トレース - [xray/home#/trace]
(xray/ホーム#/トレース)
トレース
個別のトレースのタイムライン、raw、マップビューのリンクを生成できます。
[Trace timeline] (トレースのタイムライン) - xray/home#/traces/
trace-id
[Raw trace data] (未加工のトレースデータ) - xray/home#/traces/
trace-id
/raw
例 - 未加工のトレースデータ
https://console.aws.amazon.com/xray/home#/traces/1-57f5498f-d91047849216d0f2ea3b6442/raw
フィルタ式
フィルタリングされたトレースリストへのリンク
[Filtered traces view] (フィルタリングされたトレースビュー) - xray/home#/traces?filter=
filter-expression
例 - フィルター表現
https://console.aws.amazon.com/xray/home#/traces?filter=service("api.amazon.com") { fault = true OR responsetime > 2.5 } AND annotation.foo = "bar"
例 - フィルター表現 (URL エンコード)
https://console.aws.amazon.com/xray/home#/traces?filter=service(%22api.amazon.com%22)%20%7B%20fault%20%3D%20true%20OR%20responsetime%20%3E%202.5%20%7D%20AND%20annotation.foo%20%3D%20%22bar%22
フィルタ式の詳細については、「フィルター式を使用する」を参照してください。
[Time range] (時間範囲)
期間または開始時刻と終了時刻を ISO8601 形式で指定します。時間範囲は UTC で、最大で6時間にすることができます。
[Length of time] (期間) - xray/home#/
page
?timeRange=range-in-minutes
例 – 過去 1 時間のトレースマップ
https://console.aws.amazon.com/xray/home#/service-map?timeRange=PT1H
[Start and end time] (開始と終了の時刻) - xray/home#/
page
?timeRange=start
~end
例 - 秒単位の正確な時間範囲
https://console.aws.amazon.com/xray/home#/traces?timeRange=2023-7-01T16:00:00~2023-7-01T22:00:00
例 - 分単位の正確な時間範囲
https://console.aws.amazon.com/xray/home#/traces?timeRange=2023-7-01T16:00~2023-7-01T22:00
リージョン
を指定 AWS リージョン して、そのリージョンのページにリンクします。リージョンを指定しない場合、コンソールは最後に利用したリージョンにリダイレクトされます。
[Region] (リージョン) - xray/home
?region=
#/region
page
例 – 米国西部 (オレゴン) (us-west-2) のトレースマップ
https://console.aws.amazon.com/xray/home?region=us-west-2#/service-map
その他のクエリパラメーターを使用してリージョンを含めると、リージョンクエリは、ハッシュ前、X-Ray 固有のクエリはページ名の後に指定されます。
例 – 米国西部 (オレゴン) (us-west-2) の過去 1 時間のトレースマップ
https://console.aws.amazon.com/xray/home?region=us-west-2#/service-map?timeRange=PT1H
結合
例 - 期間フィルターを含む最近のトレース
https://console.aws.amazon.com/xray/home#/traces?timeRange=PT15M&filter=duration%20%3E%3D%205%20AND%20duration%20%3C%3D%208
出力
-
ページ - トレース
-
時間範囲 - 最後の 15 分
-
フィルター - 期間 >= 5 および 期間 <= 8