

# OPS04-BP05 トランザクショントレーサビリティを実装する
<a name="ops_telemetry_dist_trace"></a>

アプリケーションコードを実装し、イベントを発行するようにワークロードのコンポーネントを設定します。このイベントは、単一の論理演算の結果としてトリガーされ、ワークロードのさまざまな境界を越えて統合されます。マップを生成して、ワークロードとサービス全体にわたるトレースの流れを確認します。コンポーネント間の関係のインサイトを取得し、問題を特定して分析します。収集した情報を使用して、応答が必要とされるタイミングを特定し、問題につながる要素の特定に役立てます。

 **期待される成果:** 
+  ワークロード全体にわたるトランザクショントレースを収集して、コンポーネント間の関係のインサイトを取得できます。 
+  マップを生成して、ワークロードのトランザクションとイベントの流れをより明確に把握できます。 

 **一般的なアンチパターン:** 
+  あなたは、複数のアカウントにまたがるサーバーレスマイクロサービスアーキテクチャを実装しました。断続的なパフォーマンスの問題が顧客に発生しています。トランザクショントレーサビリティがないので、どの機能またはコンポーネントが原因であるかを検出できません。 
+ ワークロードでパフォーマンスのボトルネックが発生しています。トランザクショントレーサビリティがないため、アプリケーションコンポーネント間の関係を確認してボトルネックを特定することができません。
+  トレースに使用される識別子はグローバルで一意ではないため、ワークロードの動作分析をすると、トレースの競合が発生します。 

 **このベストプラクティスを活用するメリット:** 
+  ワークロード全体のトランザクションフローを理解することで、ワークロードトランザクションの予想される動作についてのインサイトが得られます。 
+  ワークロード全体の予想される動作のバリエーションを理解できるため、必要に応じて対応できます。 
+  トランスアクションを、生成された場所を問わず、一意に生成された識別子によって特定できます。 

 **このベストプラクティスが確立されていない場合のリスクレベル:** 低 

## 実装のガイダンス
<a name="implementation-guidance"></a>

 システムコンポーネント全体のトランザクションフローに関する情報を送出するよう、アプリケーションとワークロードを設計します。トランザクションに含めるべきデータは、グローバルに一意のトランザクション ID、トランザクションステージ、アクティブコンポーネント、アクティビティ完了までの時間です。この情報を使用して、進行中のもの、完了しているもの、および完了したアクティビティの結果を特定できます。 

 **お客様事例** 

 AnyCompany Retail では、すべてのトランザクションでグローバルに一意な UUID が生成されています。この UUID は、トランザクション中にマイクロサービス間で渡されます。UUID は、ユーザーのワークロードとのインタラクション時にトランザクショントレース作成に使用されます。このトレースを使用してワークロードトポロジのマップが生成され、ワークロードの問題のトラブルシューティングとパフォーマンスの向上に使用されます。 

 **実装手順** 

1.  ワークロードのアプリケーションを計測して、トランザクショントレースを発行します。これを実行するには、トランザクションごとに一意の識別子を生成して、アプリケーション間で識別子を渡します。 

   1.  [AWS Distro for OpenTelemetry](https://aws-otel.github.io/) の自動インストルメント化を使用して、アプリケーションコードを変更する必要なく、既存のアプリケーションにトレースを実装できます。 

1.  アプリケーショントポロジのマップを生成します。このマップを使用して、パフォーマンスを向上し、インサイトを取得し、トラブルシューティングに役立てます。 

   1.  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) でワークロード内のアプリケーションのマップを生成できます。 

 **実装計画に必要な工数レベル:** 中。トランザクショントレースの実装には、中程度の開発作業が必要になる場合があります。 

## リソース
<a name="resources"></a>

 **関連するベストプラクティス:** 
+  [OPS04-BP01 アプリケーションテレメトリーを実装する](ops_telemetry_application_telemetry.md) - アプリケーションテレメトリーはトランザクションのトレーサビリティと処理をカバーしており、最初に実装する必要があります。 

 **関連するドキュメント:** 
+ [ Discover application issues and get notifications with AWS X-Ray Insights ](https://aws.amazon.com/blogs/mt/discover-application-issues-get-notifications-aws-x-ray-insights/)(AWS X-Ray Insights を使用してアプリケーションの問題を検出し、通知を受け取る)
+ [ How Wealthfront utilizes AWS X-Ray to analyze and debug distributed applications ](https://aws.amazon.com/blogs/mt/wealthfront-utilizes-aws-x-ray-analyze-debug-distributed-applications/)(Wealthfront が AWS X-Ray を使用して分散アプリケーションの分析とデバッグを行っている方法)
+ [AWS Distro for OpenTelemetry の新機能 – トレースのサポートが一般的に利用可能に](https://aws.amazon.com/blogs/aws/new-for-aws-distro-for-opentelemetry-tracing-support-is-now-generally-available/)

 **関連動画:** 
+ [AWS re:Invent 2018: Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) ](https://www.youtube.com/watch?v=5MQkX57eTh8)(AWS re:Invent 2018: AWS X-Ray Deep Dive: モダンアプリケーションのモニタリング (DEV324))
+ [AWS re:Invent 2022 - Building observable applications with OpenTelemetry (BOA310) ](https://www.youtube.com/watch?v=efk8XFJrW2c)(AWS re:Invent 2022 - OpenTelemetry を使用したオブザーバブルなアプリケーションの構築 (BOA310))
+ [AWS re:Invent 2021 - Observability the open-source way (COP301-R) ](https://www.youtube.com/watch?v=2IJPpdp9xU0)(AWS re:Invent 2021 - オープンソースのオブザーバビリティ)
+ [ Capturing Trace Data with the AWS Distro for OpenTelemetry ](https://www.youtube.com/watch?v=837NtV0McOA)(AWS Distro for OpenTelemetry を使用してトレースデータをキャプチャする)
+ [ Optimize Application Performance with AWS X-Ray](https://www.youtube.com/watch?v=5lIdNrrO_o8)(AWS X-Ray を使用してアプリケーションのパフォーマンスを最適化する)

 **関連する例:** 
+ [AWS X-Ray Multi API Gateway Tracing Example ](https://github.com/aws-samples/aws-xray-multi-api-gateway-tracing-example) (AWS X-Ray の マルチ API ゲートウェイトレースの例)

 **関連サービス:** 
+  [AWS Distro for OpenTelemetry](https://aws-otel.github.io/) 
+  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 