一般的なサーバーレス サービス向けの手間いらずのパフォーマンス分析情報
Google Cloud Japan Team
※この投稿は米国時間 2021 年 8 月 21 日に、Google Cloud blog に投稿されたものの抄訳です。
デベロッパー、DevOps、SRE は、サービスまたはアプリケーションの存続期間内に、レイテンシの原因を必ず調査することになります。通常は、レイテンシを引き起こしているのがアプリケーションか、基盤となるインフラストラクチャかを判断するところから始めます。問題が発生したときに、これらのリソースのパフォーマンスを示すシグナルを探す必要があります。
レイテンシ シグナルとしてトレースを使用する
一般的に、レイテンシに最も有意義な情報を提供するシグナルはトレースです。トレースは、実行中のロードバランサ、コンピューティング、データベースなどといった分散型システムのすべてのレイヤにリクエストを反映するのに要した合計時間を表します。実行の各レイヤを表すために使用されるトレースのサブセットは、スパンと呼ばれます。
トレースを生成するのは難しく、そのためにこの便利なトラブルシューティング リソースを利用できないユーザーが数多く存在します。デベロッパーがもっと簡単にトレースを利用できるようにするため、Google は、最もよく使われるサーバーレス コンピューティング オプションである AppEngine、Cloud Run、Cloud Functions のインストゥルメンテーションを開始し、トレースがデフォルトで生成されるようにしました。複雑な分散システムの状況全体は把握できませんが、トラブルシューティング時に重点を置くべき分野を決めるために必要な情報は得られます。
このメリットを今すぐ手に入れる方法
その方法とは、何もしないことです。コードが AppEngine、Cloud Run、Cloud Functions などのサーバーレス コンピューティングにデプロイされると、このコンピューティングを介する上り(内向き)と下り(外向き)トラフィックによりスパンが自動的に生成されます。こうしたスパンはキャプチャされ、Cloud Trace に 30 日間追加料金なしで保存されます。追加規約についてはこちらをご覧ください。生成されるトレースは、レイテンシの代表的な値を含むウォーターフォール グラフとして可視化されます。さらに、Google はこの機能を、PostgreSQL のクエリプランの代表的なトレースを生成し、これを Cloud Trace に送信する Cloud SQL Insights とともに、Google Cloud データベースに拡張しました。
以下のスクリーンショットは、Cloud Run にデプロイされたシンプルな “Helloworld'' アプリケーションからキャプチャされた 1 日目のトレースです。ロードバランサのスパン(ルートスパン)は、Google Cloud のインフラストラクチャを介した合計時間を示し、Cloud Run のスパンはコンピューティングがリクエストを実行して処理するために要する時間を示しています。
以下の図にあるように、ロードバランサのスパンは Cloud Run のスパンとほぼ同等です。したがって、観測されるレイテンシは Google のインフラストラクチャによって発生していないと結論付けることができます。この時点で、お客様はコードに集中できるようになります。
拡張するためのヒント
アプリケーションにコードの実行を表すより細かいスパンを生成させたい場合でも、アプリケーションをインストルメント化する必要があります。開発言語と一致するライブラリの選択とコードをインストルメント化する手順の確認を、こちらから開始できます。この手順が完了すると、トレースによりより多くのスパンが網羅されるとともに、インフラストラクチャとアプリケーション双方のパフォーマンスの情報が 1 つのウォーターフォール ビューにまとめられ、トレースに含まれる情報が豊かになります。
Cloud Trace – インフラストラクチャ トレース向け Google Cloud のハブ
Google Cloud のテレメトリーの未来に期待が高まっています。今後 6 か月以内に、インフラストラクチャのインストルメンテーションと、トレース分析、指標、他の Google Cloud プロダクトへの統合、サードパーティの APM プロダクトとの統合などの分野に関するリリースを予定しています。
次のステップ
インフラストラクチャからのトレースを Cloud Trace コンソールで詳しく学び、アプリケーションのインストルメンテーションに使用できるライブラリと手順を理解します。今回ご紹介した新機能について、ご不明な点やフィードバックがございましたら、Cloud Operations コミュニティ ページからお問い合わせください。
-Google Cloud プロダクト マネージャー Eyamba Ita