簡易データベース システム モニタリング ツール「システム分析情報」の概要

Google Cloud Japan Team
※この投稿は米国時間 2023 年 10 月 14 日に、Google Cloud blog に投稿されたものの抄訳です。
動作の遅いデータベースの診断は困難です。問題が発生すると、データベース チームは問題の原因をすぐに把握したいと考えます。データベースのリソースが飽和状態になっていませんか?もしそうなら、リソースを消費しているのは何でしょうか?アプリケーションのクエリか、Cloud SQL によって開始されたオペレーションでしょうか?データベースに新しい変更はありますか?バキューム オペレーションやバックアップ オペレーションなどのバックグラウンド タスクはありませんか?こういった質問に答えるのは簡単ではありません。システムの状態を理解し、問題がどこにあるのかを正確に突き止めるには、複数の異なるソースからの指標を調査して相関させる必要があります。
このプロセスを少しでも簡単にするために、私たちが設計したのがシステム分析情報です。
「システム分析情報」は、重要な指標、イベント、ログをまとめて、外部データベースのパフォーマンスと内部システム リソースの両方を包括的に把握するためのデータベース システム モニタリング ツールです。すべてのシグナルを 1 つのダッシュボードに集約することで、ツールを切り替えることなく、潜在的な問題の原因を迅速に特定できます。現在、システム分析情報は Cloud SQL for PostgreSQL と Spanner で一般提供され、Cloud SQL for MySQL ではプレビュー版を利用できます。


図 1: PostgreSQL に関する Cloud SQL のシステム分析情報
新しいシステム モニタリング ツールを設計する理由
システム分析情報が登場する前は、ユーザーにはパフォーマンスをモニタリングするための 2 つのオプションがありましたが、どちらもユーザーに大きな負担を強いていました。
- インスタンス概要ページの指標:
ここに示されている指標は便利ですが、このインターフェースでは、ユーザーが複数の指標を同時に比較して相関させることはできませんでした。これは、データベースの問題を適切にトラブルシューティングするための重要な機能です。 - カスタム ダッシュボード:
一部のユーザーは、Google Cloud 内または Grafana などのサードパーティ ツールを使用して、カスタム モニタリング ダッシュボードを設定しています。カスタム ダッシュボードは非常に柔軟性が高いのですが、使いこなすのは容易ではありません。おそらく最も重要なことは、必要なものすべてをまとめて一か所で確認できないことです。
システム分析情報は、豊富でカスタマイズ可能な指標を備えた事前構築されたダッシュボードを使用して、これらの課題の両方に対処します。これにより、初心者ユーザーにとっては敷居が低くなり、上級ユーザーにとっては複雑なトラブルシューティング プロセスが容易になります。すべてデータベース コンソールの UI 内で実行できるのです。
今回のブログでは、システム分析情報の主な機能と、それぞれの設計理論上の背景について説明します。
システム ステータスのクイック スナップショット
システム分析情報の上部には、システムの主要なリソースとその現在のステータスのスナップショットが表示され、調査が必要な可能性のある問題を視覚的に簡単に確認できます。システム構成は、最初にプロビジョニングされたリソースに対するシステムのパフォーマンスを理解するのに効果的です。


図 2: 主要なシステム リソースとその現在のステータスのスナップショット
実用的な指標を備えた事前構築済みダッシュボード
システム モニタリング ダッシュボードを設計する際、多くの場合、ユーザーに公開する指標とデータポイントが大量にあるという「量の問題」に直面します。適切な表示すべき対象をどのように決めるのか。Google Cloud では、データベースに関する幅広い専門知識と期待を持つユーザーに対応しています。そのため、設計上の重要な課題となったのは、ジェネラリストとスペシャリストのニーズのバランスを取ることでした。
私たちは、RED(レート、エラー、時間)や USE(使用率、飽和率、エラー)などのオブザーバビリティ フレームワークからインスピレーションを得て、それを CPU、メモリ、アクティブな接続などの主要なシステム リソースに適用しました。これにより、データベースのスループットに影響を与える外部要因と内部要因の両方を、包括的かつ簡単に把握できるようになりました。各指標の中では、行動の根本的な原因をより容易に特定できるよう、その表示方法に特別な注意が払われています。たとえば、ディスク ストレージはデータ、ログなどの内訳とともに表示され、ディスクのどの側面がストレージ使用率の増加につながっているのかを明確に示します。


図 3: ディスク ストレージのタイプ別内訳
また、可能な限り、リソース使用率のグラフに飽和限界線を表示するようになっています。CPU やメモリなどの指標の場合、使用率だと飽和度が感覚的に伝わります。しかし、アクティブな接続のような指標の飽和限界は単純ではありません。そこで、このような場合には、ユーザーにとって完全で実用的なものになるように、ユーザーの現在のシステム構成に基づいて計算された飽和限界を表示しています。
指標の枠を超えた相関性
データベースの問題を適切にトラブルシューティングするために、ユーザーは多くの場合、指標だけでなくログやシステム イベントも調べます。たとえば、適切なインデックスがない実行速度の遅いクエリでは、外部ワークロードに変化がない場合でも、長いロック待機が発生し、エラー率や CPU 使用率が増加する可能性があります。そして、そのような動作の背後にある「理由」を、指標を見るだけで理解するのは容易ではありません。トレーニングを受けたデータベース スペシャリストは、システム モニタリングとともにクラウド ロギング ツールを使用して、リソースの異常と同時に発生するシステム イベントがあるかどうかを確認します。このプロセスでは、複数のツールを切り替えるだけでなく、そもそも人間にとって使いやすいとは言えない膨大なログの中から、詳細な情報を抽出する必要があります。


図 4: イベント タイムラインによる指標とログの統合
システム分析情報により、このプロセスをユーザーのために簡素化しました。ユーザーに複数のツール間を移動してもらうのではなく、イベントをシステム分析情報ダッシュボードに統合したのです。主要なシステム オペレーションはクラウドログからフィルタリングされ、「イベント タイムライン」と呼ばれる視覚的なタイムラインとしてユーザーに表示されます。これは、ユーザーが思いどおりに時間をスクロールし、指標とシステム イベントを相関させることができるダイナミックなエクスペリエンスです。
専門的なユースケースに合わせてカスタマイズ可能なビュー
ダッシュボードのデフォルトは、ほとんどのユーザーにとって最適な出発点となります。ただし、モニタリングする指標をより詳細に制御する必要があるユーザーのために、カスタマイズ可能なビューも提供しています。ユーザーは、デフォルトで選択されている指標に追加することも、自分にとってより関連性の高い特定の指標を選択することもできます。システム分析情報はテレメトリーの対象範囲を拡大し続けており、カスタマイズできるディメンションがさらに増えるにつれて、データベース スペシャリストのニーズにより多く対応できるようになります。かといって、この機能により、ジェネラリストにとってデフォルトのエクスペリエンスが難しいものになることはありません。


図 5: カスタマイズ可能なビュー
要約すると、システム分析情報は、データベース システムのオブザーバビリティを追求する過程でどのような状況にあろうとも、ジェネラリストにとって使いやすい出発点を提供するだけでなく、専門的なユースケース向けにカスタマイズ可能なビューも提供します。
次のステップ
Google のオブザーバビリティ戦略は、テレメトリーの深さと使いやすさの基盤を構築することです。この取り組みは、視覚的なクエリプランとレイテンシ分析を通じて、デベロッパーがクエリの非効率性を修正するのを支援するツール、Query Insights から始まりました。2022 年には、Cloud SQL フリートのセキュリティ、パフォーマンス、信頼性、費用対効果を向上させるために、Proactive Database Wellness の Recommender を開発しました。現在、システム分析情報は、その機能をシステム リソースのモニタリングとトラブルシューティングにまで拡張しています。
私たちは、複雑なトラブルシューティングの改善に積極的に取り組んでいます。今後の続報にご期待ください。
- Google Cloud、プロダクト デザイナー、Mani HK
- Google Cloud、プロダクト デザイナー、Kaushal Agrawal