クラウドとコンテナの基礎
複数のサービスが連携して動くシステムで、利用者の1つの要求が、どのサービスをどの順に通り、それぞれでどれだけ時間がかかったかを調べたい。オブザーバビリティのためのデータのうち、最も適したものはどれか。
- Aメトリクス(CPU使用率や要求の数などの数値の時系列)
- Bログ(各サービスが出力する出来事の記録)
- Cトレース(1つの要求の経路と各区間の時間の記録)
答えと解説を見る
正解:C. トレース(1つの要求の経路と各区間の時間の記録)
オブザーバビリティは、外に出てくるデータからシステムの内部の状態を推し量れる度合いで、そのためのデータとして、メトリクス、ログ、トレースがよく挙げられます。トレース(分散トレーシング)では、要求に共通の識別子を付けてサービスの間で受け渡し、各サービスでの処理の区間(スパン)の開始と終了の時刻を記録して、1つの要求の経路と時間の内訳を組み立てます。メトリクスは全体の傾向や異常の検知に、ログは個々の出来事の詳しい調査に向いていますが、サービスをまたぐ1つの要求の流れを追うには、トレースが最も適しています。実際には、トレースの識別子をログにも書いておき、3つを組み合わせて原因を調べます。
- A. メトリクスは数値をまとめた時系列で、全体の傾向や異常を知るのに向いていますが、1つの要求の経路は分かりません。
- B. ログは個々の出来事の記録で、サービスごとに分かれているので、それだけでは1つの要求の流れをつなげにくくなります。
- C. 正しい。トレースは、1つの要求がサービスをまたいで通った経路と時間を記録します。