Logging と Trace: 運命の出会い
Google Cloud Japan Team
※この投稿は米国時間 2020 年 2 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。
Stackdriver Logging を人間にたとえると、大規模データの扱いを得意とし、構造化データだけでなく非構造化データにも喜んで対応する、社交的な人柄と言えるでしょう。Stackdriver Logging は Google で開発が進められてきましたが、あらゆる種類のクラウドやオンプレミスのデータも扱えます。Monitoring、BigQuery、Pub/Sub、Cloud Storage などの Google Cloud サービスと組み合わせて使うことができます。ただ最近は、さらに相応しい組み合わせがないか模索しているところです。
同じように、Stackdriver Trace も人間にたとえてみましょう。こちらは才気あふれる自己管理が行き届いた性格をしています。こちらも Google が開発を進めてきたサービスで、どちらかというとデータに特化していて、混沌とした分散システムの中から意味のあるデータを取り出すことができます。
Logging と Trace は、Veepee 社のクラウド アーキテクトである Alex Van Boxel 氏をはじめとする、Google と親しい関係にある友人たちによって統合されました。同氏は次のように述べています。「パフォーマンスの問題を突き止めるのは殺人ミステリーを解決するのに似ています。トレース機能とログ機能を統合することで調査チームにとっても大きな助けになります。」強い絆で結ばれた Trace と Logging はまさに最高の組み合わせです。開発者は自分のコードで何が起こっているのかを正確に把握して、それをエコシステムの他のサービスでどのように活用できるかを確認できます。
Trace にログ機能を組み込むことで、特定のサービスコール中に何が起きたのかを詳しく見ることができます。リクエスト全体が見えるようになり、完全なオブザーバビリティが実現します。Trace ID をログに追加すると、Logging ではトレース内のログをフィルタリングしてエンドツーエンドのトレースにリンクできます。コードの働きだけでなく、コードが実行されるコンテキストも表示され
ます。
Logging の主な機能
「Logging、欠けていたピースを埋めてくれたのはあなただった。」- Trace
サービスコールごとにログを 1 列に表示してワークフローを完成させる。Trace UI では、サービスコールごとにイベントとしてログが 1 列に表示されるため、コンテキストを見ながらログを理解できます。
特定のサービスに関連するログをログ表示画面で深く掘り下げる。Trace UI と、Stackdriver Logging の関連するログエントリを紐づけることで、より深いレベルでコードの働きを理解できます。
リクエスト全体を検索する。Trace UI ではトレース内のあらゆるサービスでラベルをフィルタリングして、アップストリームの条件が一致したときにダウンストリーム サービスのログを表示できます。


Trace の主な機能
「Trace、あなたのおかげでプラットフォームとしてさらなる進化を遂げられた。」- Logging
リクエスト全体のログを表示する。ログビューアでは、Trace ID でフィルタリングすることで特定のリクエストのすべてのログを表示できます。
リクエスト全体のトレースを詳しく調べる。ログビューアで対象のログエントリからリクエスト全体のトレースを詳しく調べることで、コンテキストをより深く広範に理解できます。
エラーの根本原因を診断する。Trace UI では、エラートレースを検索して、エラーを引き起こしているダウンストリーム サービスを簡単に見つけることができます。


Trace と Logging に関する以下のページもご参照ください。
- By プロダクト マネージャー Mary Koes、Bryan Zimmerman