トレース - AWS 規範ガイダンス

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

トレース

トレースには、プログラムのプロセスに関するログ情報の特殊な使用が含まれます。ログからのインサイトは、エンジニアが個々のトランザクションをデバッグし、ボトルネックを特定するのに役立ちます。トレースは、自動で有効にすることも、手動計測を使用して有効にすることもできます。

アプリケーションはさまざまな サービスと統合されるため、アプリケーションとその基盤となるサービスのパフォーマンスを特定することが重要です。トレースはトレースとスパンで機能します。トレースは完全なリクエストプロセスであり、各トレースはスパンで構成されます。スパンはタグ付けされた時間間隔であり、システムの個々のコンポーネントまたはサービス内のアクティビティです。トレースは、アプリケーションにリクエストが行われたときに何が起こるかの全体像を提供します。

アプリケーションチーム

アプリケーションデベロッパーは、アプリケーション内のインバウンドおよびアウトバウンドのリクエストやその他のイベントのトレースデータを、各リクエストに関するメタデータとともに送信することで、アプリケーションを計測します。トレースを生成するには、アプリケーションを計測してトレースを生成する必要があります。計測は自動でも手動でもかまいません。

自動計測

ソースコードを変更しなくても、自動計測を使用してアプリケーションからテレメトリを収集できます。自動計測エージェントは、アプリケーションまたはサービスのアプリケーショントレースを生成できます。通常、設定変更を使用してエージェントまたは別のメカニズムを追加します。

ライブラリインストルメンテーションでは、アプリケーションコードの変更を最小限に抑えて、構築済みのインストルメンテーションを追加します。インストルメンテーションは、 AWS SDK、Apache HTTP クライアント、SQL クライアントなどの特定のライブラリまたはフレームワークを対象としています。

手動実装

このアプローチでは、アプリケーションデベロッパーはトレース情報を収集する各場所でアプリケーションに計測コードを追加します。例えば、アスペクト指向プログラミング (AOP) を使用してトレースデータを収集します AWS X-Ray 。開発者は SDKsを使用してアプリケーションを計測できます。

サンプリング

トレースデータは、多くの場合、大量の で生成されます。トレースデータをエクスポートするかどうかを決定するメカニズムを用意することが重要です。サンプリングは、エクスポートするデータを決定するプロセスです。これは通常、コストを節約するために行われます。サンプリングルールをカスタマイズすることで、記録するデータの量を制御できます。コードを変更して再デプロイすることなく、サンプリング動作を変更することもできます。適切な量のトレースを生成するには、サンプリングレートを制御することが重要です。

アプリケーションデベロッパーは、メタデータをキーと値のペアとして追加することで、トレースに注釈を付けることができます。注釈はトレースを強化し、バックエンドのフィルタリングを絞り込むのに役立ちます。

DevOps チーム

DevOps 多くの場合、 エンジニアは、アプリケーション開発者がインフラストラクチャとアプリケーションのトレースを視覚化するためのトレース環境を設定するように求められます。トレース環境のセットアップでは、さまざまなソースからトレースデータを収集し、中央ストアに送信して視覚化します。

トレースバックエンド

トレースバックエンドは、アプリケーションが処理 AWS X-Ray するリクエストに関するデータを収集する などのサービスです。これを使用すると、そのデータを表示、フィルタリング、インサイトを取得して、問題や最適化の機会を特定できます。アプリケーションへのトレースされたリクエストについては、リクエストとレスポンス、およびアプリケーションがダウンストリーム AWS リソース、マイクロサービス、データベース、ウェブ APIsに対して行うその他の呼び出しに関する詳細情報を確認できます。

トレースの自動化

アプリケーションごとにトレース要件が異なるため、トレースインフラストラクチャの設定と運用を自動化することが重要です。IaC ツールを使用して、トレースインフラストラクチャのバックエンドをプロビジョニングします。

CD パイプラインを使用して以下を自動化します。

  • トレースインフラストラクチャをオンデマンドでデプロイし、不要な場合は削除します。

  • トレース設定をアプリケーション全体にデプロイします。

トレースツール

AWS では、トレースとそれに関連する視覚化のために次のサービスを提供します。

  • AWS X-Ray は、X-Ray と既に統合されているアプリケーションが使用する AWS サービスのトレースに加えて、アプリケーションからトレースを受け取ります。X-Ray トレースシング用アプリケーションを計測するために使用できる SDK、エージェント、およびツールがいくつかあります。詳細については、「AWS X-Ray ドキュメント」を参照してください。

    開発者は AWS X-Ray SDKs を使用して X-Ray にトレースを送信することもできます。 AWS X-Ray は、Go、、Node.jsJava、、.NETPython、および 用の SDKs を提供しますRuby。各 X-Ray SDK は、以下を提供します。

    • インターセプター コードに追加して受信 HTTP リクエストをトレースする

    • アプリケーションが他の AWS サービスを呼び出すために使用する AWS SDK クライアントを計測するクライアントハンドラー

    • HTTP クライアント 他の内部および外部 HTTP ウェブサービス呼び出しを計測する

    X-Ray SDKs、SQL データベースへのインストルメンテーション呼び出し、 AWS SDK クライアントの自動インストルメンテーション、およびその他の機能もサポートしています。トレースデータを直接 X-Ray に送信する代わりに、SDK は JSON セグメントドキュメントを UDP トラフィックをリッスンしているデーモンプロセスに送信します。X-Ray デーモンはセグメントをキューにバッファし、バッチで X-Ray にアップロードします。X-Ray SDK を使用してアプリケーションを計測する方法の詳細については、X-Ray のドキュメント「」を参照してください。

  • Amazon OpenSearch Service は、 OpenSearch クラスターを実行およびスケーリングするための AWS マネージドサービスで、ログ、メトリクス、トレースを一元的に保存するために使用できます。可観測性プラグインは、一般的なデータソースからメトリクス、ログ、トレースを収集およびモニタリングするための統合エクスペリエンスを提供します。データ収集とモニタリングを 1 か所で行うことで、インフラストラクチャ全体のフルスタックのオブザー end-to-end バビリティを実現できます。実装情報については、OpenSearch 「サービスドキュメント」を参照してください。

  • AWS Distro for OpenTelemetry (ADOT) は、Cloud Native Computing Foundation (CNCF) OpenTelemetry プロジェクトに基づく AWS ディストリビューションです。ADOT には現在、Java および Python の自動計測サポートが含まれています。さらに、ADOT は、ADOT Managed Lambda Layers を介してJava、、Node.js、Pythonランタイムを使用した AWS Lambda 関数とそのダウンストリームリクエストの自動計測をサポートしています。デベロッパーは ADOT コレクターを使用して、 AWS X-Ray や Amazon OpenSearch Service など、さまざまなバックエンドにトレースを送信できます。

    ADOT SDK を使用してアプリケーションを計測する方法のリファレンス例については、「」のドキュメントを参照してください。ADOT SDK を使用して Amazon OpenSearch Service にデータを送信する方法のリファレンス例については、OpenSearch 「サービスドキュメント」を参照してください。

    Amazon EKS で実行されているアプリケーションを計測する方法のリファレンス例については、ブログ記事「 の Distro 用 Amazon EKS AWS アドオンを使用したメトリクスとトレースのコレクション OpenTelemetry」を参照してください。