モニタリング

Cloud Bigtable は、Google Cloud Console で入手できるグラフを使用して視覚的に、または Cloud Monitoring API を使用してプログラムによりモニタリングできます。

Google Cloud コンソールでは、次の場所でモニタリング データを使用できます。

  • Bigtable のモニタリング
  • Bigtable インスタンスの概要
  • Bigtable クラスタの概要
  • Bigtable テーブルの概要
  • Google Cloud のオペレーション スイートの Cloud Monitoring
  • Key Visualizer

モニタリング ページと概要ページでは、Bigtable の使用状況の概要を確認できます。Key Visualizer を使用すると、アクセスキーの詳細を行キーでドリルダウンし、特定のパフォーマンスの問題を解決できます。

CPU とディスクの使用状況を把握する

インスタンスのモニタリングでどのツールを使用する場合でも、インスタンスの各クラスタの CPU とディスクの使用状況をモニタリングすることが重要です。クラスタの CPU 使用率やディスク使用量が一定のしきい値を超えると、クラスタの性能が低下し、データの読み取りや書き込みを試行するとエラーが発生することがあります。

CPU 使用率

クラスタのノードは CPU リソースを使用して読み取り、書き込み、管理タスクを処理します。ノードの数がクラスタのパフォーマンスに及ぼす影響については、通常のワークロードでのパフォーマンスをご覧ください。

Bigtable は、CPU 使用率について以下の指標をレポートします。

指標 説明
平均 CPU 使用率

クラスタ内にあるすべてのノードの平均 CPU 使用率。

推奨最大値により、使用率が急増した場合のヘッドルームを確保できます。

クラスタが構成の推奨最大値を超過する時間が数分間にわたる場合は、クラスタにノードを追加します。

最もホットなノードの CPU 使用率

クラスタで最もビジーなノードの CPU 使用率。この指標は、継続性のために引き続き提供されますが、ほとんどの場合は、より正確な指標である「最もホットなノードのきめ細かい CPU 使用率」を使用する必要があります。

最もホットなノードのきめ細かい CPU 使用率

クラスタで最もビジーなノードの CPU 使用率をきめ細かく測定します。「最もホットなノードの CPU 使用率」よりも正確であるため、この指標を使用することをおすすめします。

最もホットなノードは時間とともに変化する可能性があります。特に、大規模なバッチジョブやテーブル スキャン中は急激に変化する可能性があります。

最もホットなノードが頻繁に推奨値を超える場合、平均 CPU 使用率が適切な範囲にあっても、ごく一部のデータに他のデータよりも頻繁にアクセスしている可能性があります。

  • Key Visualizer ツールを使用して、CPU 使用率の急上昇を引き起こしている可能性があるホットスポットをテーブル内で特定します。
  • スキーマ設計を確認し、読み取りと書き込みが各テーブル間で均等に分散されるようにします。
アプリ プロファイル、メソッド、テーブルによる CPU 使用率

アプリ プロファイル、メソッド、テーブルによる CPU 使用率。

クラスタの CPU 使用率が予想よりも高い場合は、この指標を使用して、特定のアプリ プロファイル、API メソッド、テーブルの CPU 使用率が CPU の負荷が高くなっている原因かどうか判断します。

こうした指標の値は、以下を超えてはいけません。

構成 推奨の最大値1
  1. 推奨の最大値は、クラスタ全体に対する値です。アプリ プロファイル、メソッド、テーブルごとの CPU 使用率に推奨の最大値はありません。よりきめ細かな指標を使用して、クラスタの CPU 使用率が高くなっている原因を確認してください。
  2. 自動スケーリングを有効にしなかった場合に、いずれかのクラスタが使用できなくなって、残りのクラスタにトラフィックがシフトし、負荷が増加するようであれば、低レイテンシで引き続きサービスを提供するために、追加の容量が必要です。たとえば、クラスタが 2 つあり、通常は各クラスタが負荷の半分を引き受ける場合でも、それぞれが全負荷を 70% で処理できる必要があります。
単一クラスタ ルーティング、任意の数のクラスタ

平均 CPU 使用率 70%
最もホットなノードの CPU 使用率 90%

複数クラスタ ルーティング、自動スケーリングが有効、2 つ以上のクラスタ

平均 CPU 使用率 70%
最もホットなノードの CPU 使用率 90%

複数クラスタ ルーティング、自動スケーリングが有効になっていない、2 つのクラスタ

平均 CPU 使用率 35%2
最もホットなノードの CPU 使用率 45%2

複数クラスタ ルーティング、自動スケーリングが無効、3 つ以上のクラスタ

構成によります。一般的な使用例については、レプリケーション設定の例をご覧ください。

ディスク使用量

インスタンスのクラスタごとに、Bigtable はそのインスタンスのすべてのテーブルのコピーを個別に格納します。

Bigtable はディスク使用量をバイナリ単位でトラッキングします。たとえば、バイナリ ギガバイト(GB)では、1 GB は 230 バイトです。この測定単位はギビバイト(GiB)とも呼ばれます。

Bigtable は、ディスク使用量について以下の指標をレポートします。

指標 説明
ストレージの利用率(バイト)

クラスタに格納されているデータの量。

この値は費用に影響します。また、後述のように、データ量の増加に伴い各クラスタにノードを追加することが必要になる場合があります。

ストレージの利用率(最大に対するパーセント)

クラスタのストレージ容量のうち、使用されている容量の割合。この容量はクラスタ内のノード数に基づいています。

一般的に、データを追加する場合は、ストレージ合計でハードリミットの 70% を超過しないでください。大量のデータをインスタンスに追加する予定がない場合は、ハードリミットの 100% まで使用できます。

ストレージ上限の推奨パーセンテージを超えて使用している場合は、クラスタにノードを追加してください。既存のデータを削除することもできますが、コンパクションが発生するまでは、削除されたデータの占有容量が少なくなるどころかむしろ多くなります

この値の計算方法については、ノードあたりのストレージ使用率をご覧ください。

ディスク負荷

HDD の読み取りに使用できる最大帯域幅のうち、クラスタが使用している容量の割合。HDD クラスタの場合のみ使用可能です。

この値が頻繁に 100% に達する場合、レイテンシが増加することがあります。クラスタにノードを追加して、ディスク負荷の割合を下げます。

コンパクションとマルチクラスタ インスタンス

ストレージ指標には、最後のコンパクション時のディスク上のデータサイズが反映されます。コンパクションは 1 週間にわたって順次行われるため、あるクラスタのストレージ使用量の指標がインスタンス内の他のクラスタの指標と一時的に異なる場合があります。観察される影響は次のとおりです。

  • 最近インスタンスに追加された新しいクラスタでは、すべてのデータが新しいクラスタに正常にレプリケートされていても、一時的に 0 バイトのストレージが表示されることがあります。

  • レプリケーションが正常に機能していても、各クラスタでテーブルのサイズが異なる場合があります。

  • レプリケーションが完了し、書き込みが数日間送信されていない場合でも、ストレージ使用量の指標がクラスタごとに異なる場合があります。内部ストレージの実装(データを分割して分散方式で保存する方法を含む)はクラスタごとに異なる場合があり、それによって実際のストレージ使用量も異なる場合があります。

インスタンスの概要

インスタンスの概要ページには、クラスタごとに複数の主要指標の現在値が表示されます。

指標 説明
平均 CPU 使用率 クラスタ内にあるすべてのノードの平均 CPU 使用率。
最もホットなノードの CPU 使用率

クラスタで最もビジーなノードの CPU 使用率。この指標は、継続性のために引き続き提供されますが、ほとんどの場合は、より正確な指標である「最もホットなノードのきめ細かい CPU 使用率」を使用する必要があります。

最もホットなノードのきめ細かい CPU 使用率

クラスタで最もビジーなノードの CPU 使用率をきめ細かく測定します。「最もホットなノードの CPU 使用率」よりも正確であるため、この指標を使用することをおすすめします。

最もホットなノードは時間とともに変化する可能性があります。特に、大規模なバッチジョブやテーブル スキャン中は急激に変化する可能性があります。

最も使用頻度の高いノードの推奨最大値を超えると、クラスタでレイテンシなどの問題が発生する可能性があります。

読み取られた行数 1 秒あたりに読み取られた行の数。
書き込まれた行数 1 秒あたりに書き込まれた行の数。
読み取りスループット 送信されたレスポンス データの 1 秒あたりのバイト数。この指標は、フィルタの適用後に返されたデータの全量を表します。
書き込みスループット データの書き込み時に受信した 1 秒あたりのバイト数。
システムエラー率 Bigtable サーバー側で失敗したすべてのリクエストの割合。
入力のレプリケーション レイテンシ 別のクラスタへの書き込みがこのクラスタにレプリケートされるまでの、99 番目のパーセンタイルでの最大時間(秒)。
出力のレプリケーション レイテンシ このクラスタへの書き込みが別のクラスタにレプリケートされるまでの、99 番目のパーセンタイルでの最大時間(秒)。

これらの主要指標の概要を表示するには:

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. 指標を表示するインスタンスをクリックします。インスタンスのクラスタに関する現在の指標が Google Cloud コンソールに表示されます。

クラスタの概要

クラスタの概要ページは、個々のクラスタの現在と過去のステータスを把握するために使用します。

クラスタの概要ページには、各クラスタの次の指標を示すグラフが表示されます。

指標 説明
ノードの数 特定の時点でクラスタに使用されているノードの数。
最大ノード数の指定値 自動スケーリングが有効なときに、Bigtable がクラスタをスケールアップする際のノードの最大数。この指標は、クラスタで自動スケーリングが有効になっている場合にのみ表示されます。この値は、[クラスタを編集] ページで変更できます。
最小ノード数の指定値 自動スケーリングが有効なときに Bigtable がクラスタをスケールダウンする際のノードの最小数。この指標は、クラスタで自動スケーリングが有効になっている場合にのみ表示されます。この値は、[クラスタを編集] ページで変更できます。
CPU 目標に対する推奨ノード数 設定した CPU 使用率の目標値に基づいて Bigtable が推奨するクラスタのノード数。この指標は、クラスタの自動スケーリングが有効になっている場合にのみ表示されます。この数が最大ノード数の指定値を超える場合は、CPU 使用率の目標値を引き上げるか、クラスタのノードの最大数を増やすことを検討してください。この数がノードの最小数より小さい場合、クラスタの使用率が過剰にプロビジョニングされている可能性があるため、ノードの最小数を下げることを検討してください。
ストレージ目標に対する推奨ノード数 組み込みストレージの使用率目標に基づいて、Bigtable がクラスタに推奨するノードの数。この指標は、クラスタの自動スケーリングが有効になっている場合にのみ表示されます。この数が最大ノード数の指定値よりも大きい場合は、クラスタの最大ノード数を増やすことを検討してください。
CPU 使用率 クラスタ内にあるすべてのノードの平均 CPU 使用率。
ストレージの利用率

クラスタに格納されているデータの量。

この指標には、データが格納時に Bigtable によって圧縮されるという事実が反映されています。

クラスタの概要ページを表示するには、次の操作を行います。

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. 指標を表示するインスタンスをクリックします。

  3. いくつかのクラスタの指標の現在のステータスが表示されるセクションまでスクロールします。

  4. [クラスタ ID] をクリックして、クラスタの [クラスタの概要] ページを開きます。

ログ

[ログ] グラフには、クラスタのシステム イベントのログエントリが表示されます。システム イベントログは、自動スケーリングを使用するクラスタに対してのみ生成されます。Bigtable 監査ログを表示する別の方法については、監査ロギングをご覧ください。

テーブルの概要

テーブルの概要ページでは、個々のテーブルの現在と過去のステータスを確認できます。

テーブルの概要ページには、テーブルに関する次の指標を示すグラフが表示されます。各グラフには、テーブルが存在するクラスタごとに別個の線が表示されます。

指標 説明
ストレージの利用率(バイト)

テーブルで使用されているクラスタのストレージ容量の割合。この容量はクラスタ内のノード数に基づいています。

この値の計算方法については、ノードあたりのストレージ使用率をご覧ください。

CPU 使用率 クラスタ内にあるすべてのノードの平均 CPU 使用率。
読み取りレイテンシ

読み取りリクエストがレスポンスを返すまでの時間。

読み取りレイテンシの測定は、Bigtable がリクエストを受信すると開始され、データの最後のバイトがクライアントに送信されると終了します。大量のデータのリクエストの場合、クライアントがレスポンスを使用できるかどうかによって読み取りレイテンシが影響を受ける可能性があります。

書き込みレイテンシ

書き込みリクエストがレスポンスを返すまでの時間。

読み取られた行数

1 秒あたりに読み取られた行の数。

1 つのリクエストで多数の行を読み取ることができるため、読み取りリクエストの数よりもこの指標を確認したほうが Bigtable のスループット全体についてより有益な情報が得られます。

書き込まれた行数

1 秒あたりに書き込まれた行の数。

1 つのリクエストで多数の行を書き込むことができるため、書き込みリクエストの数よりもこの指標を確認したほうが Bigtable のスループット全体についてより有益な情報が得られます。

読み取りリクエスト 1 秒あたりのランダム読み取りとスキャン リクエストの数。
書き込みリクエスト 1 秒あたりの書き込みリクエストの数。
読み取りスループット 送信されたレスポンス データの 1 秒あたりのバイト数。この指標は、フィルタの適用後に返されたデータの全量を表します。
書き込みスループット データの書き込み時に受信した 1 秒あたりのバイト数。
自動フェイルオーバー

短時間の停止や遅延などのフェイルオーバー シナリオにより、クラスタ間で自動的に再ルーティングされたリクエストの数。アプリ プロファイルがマルチクラスタ ルーティングを使用している場合、自動で再ルーティングされる可能性があります。

このチャートには、手動で再ルーティングされたリクエストは含まれません。

テーブルの概要ページには、インスタンス内の各クラスタにおけるテーブルのレプリケーション状態も表示されます。このページには、クラスタごとに次の情報が表示されます。

  • ステータス
  • クラスタ ID
  • ゾーン
  • テーブルで使用されるクラスタ ストレージの量
  • 暗号鍵と鍵のステータス
  • 現在選択されているテーブルの最新のバックアップの日付
  • [クラスタの編集] ページへのリンク。

テーブルの概要ページを表示するには、次の操作を行います。

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. 指標を表示するインスタンスをクリックします。

  3. 左側のペインで [テーブル] をクリックします。Google Cloud コンソールに、インスタンス内のすべてのテーブルのリストが表示されます。

  4. テーブル ID をクリックして、テーブルの概要ページを開きます。

パフォーマンスの推移をモニタリングする

Bigtable インスタンスのモニタリング ページを使用して、インスタンスの過去のパフォーマンスを確認します。各クラスタのパフォーマンスを分析し、Bigtable リソースの種類ごとに指標を細分化できます。グラフでは、過去 1 時間から過去 6 週間の期間を表示できます。

Bigtable リソースのモニタリング グラフ

Bigtable のモニタリング ページでは、以下のタイプの Bigtable リソースのグラフが表示されます。

  • インスタンス
  • テーブル
  • アプリケーション プロファイル
  • レプリケーション

モニタリング ページのグラフには次の指標が表示されます。

指標 対象 説明
CPU 使用率 インスタンス
テーブル
アプリ プロファイル
クラスタ内にあるすべてのノードの平均 CPU 使用率。
CPU 使用率(最もホットなノード) インスタンス

クラスタで最もビジーなノードの CPU 使用率。この指標は、継続性のために引き続き提供されますが、ほとんどの場合は、より正確な指標である「最もホットなノードのきめ細かい CPU 使用率」を使用する必要があります。

きめ細かい CPU 使用率(最もホットなノード) インスタンス

クラスタで最もビジーなノードの CPU 使用率をきめ細かく測定します。「最もホットなノードの CPU 使用率」よりも正確であるため、この指標を使用することをおすすめします。

最もホットなノードは時間とともに変化する可能性があります。特に、大規模なバッチジョブやテーブル スキャン中は急激に変化する可能性があります。

最も使用頻度の高いノードの推奨最大値を超えると、クラスタでレイテンシなどの問題が発生する可能性があります。

読み取りレイテンシ インスタンス
テーブル
アプリ プロファイル

読み取りリクエストがレスポンスを返すまでの時間。

読み取りレイテンシの測定は、Bigtable がリクエストを受信すると開始され、データの最後のバイトがクライアントに送信されると終了します。大量のデータのリクエストの場合、クライアントがレスポンスを使用できるかどうかによって読み取りレイテンシが影響を受ける可能性があります。

書き込みレイテンシ インスタンス
テーブル
アプリ プロファイル

書き込みリクエストがレスポンスを返すまでの時間。

ユーザーエラー率 インスタンス

Bigtable サーバー側のエラーではなく、リクエストの内容が原因で発生したエラーの割合。ユーザーエラー率には、次のステータス コードが含まれます。

  • INVALID_ARGUMENT
  • NOT_FOUND
  • PERMISSION_DENIED
  • RESOURCE_EXHAUSTED
  • OUT_OF_RANGE

ユーザーエラーの多くは構成上の問題が原因で発生します(たとえば、間違ったクラスタ、テーブル、アプリ プロファイルがリクエストで指定されている場合)。

システムエラー率 インスタンス Bigtable サーバー側で失敗したすべてのリクエストの割合。システムエラー率には、次のステータス コードが含まれます。
  • UNKNOWN
  • ABORTED
  • UNIMPLEMENTED
  • INTERNAL
  • UNAVAILABLE
自動フェイルオーバー インスタンス
テーブル
アプリ プロファイル

短時間の停止や遅延などのフェイルオーバー シナリオにより、クラスタ間で自動的に再ルーティングされたリクエストの数。アプリ プロファイルがマルチクラスタ ルーティングを使用している場合、自動で再ルーティングされる可能性があります。

このグラフには、手動で再ルーティングされたリクエストは反映されません。

ストレージの利用率(バイト) インスタンス
テーブル

クラスタに格納されているデータの量。

この指標には、データが格納時に Bigtable によって圧縮されるという事実が反映されています。

ストレージの利用率(最大に対するパーセント) インスタンス

クラスタのストレージ容量のうち、使用されている容量の割合。この容量はクラスタ内のノード数に基づいています。

この値の計算方法については、ノードあたりのストレージ使用率をご覧ください。

ディスク負荷 インスタンス HDD の読み取りに使用できる最大帯域幅のうち、クラスタが使用している容量の割合。HDD クラスタの場合のみ使用可能です。
読み取られた行数 インスタンス
テーブル
アプリ プロファイル

1 秒あたりに読み取られた行の数。

1 つのリクエストで多数の行を読み取ることができるため、読み取りリクエストの数よりもこの指標を確認したほうが Bigtable のスループット全体についてより有益な情報が得られます。

書き込まれた行数 インスタンス
テーブル
アプリ プロファイル

1 秒あたりに書き込まれた行の数。

1 つのリクエストで多数の行を書き込むことができるため、書き込みリクエストの数よりもこの指標を確認したほうが Bigtable のスループット全体についてより有益な情報が得られます。

読み取りリクエスト インスタンス
テーブル
アプリ プロファイル
1 秒あたりのランダム読み取りとスキャン リクエストの数。
書き込みリクエスト インスタンス
テーブル
アプリ プロファイル
1 秒あたりの書き込みリクエストの数。
読み取りスループット インスタンス
テーブル
アプリ プロファイル
送信されたレスポンス データの 1 秒あたりのバイト数。この指標は、フィルタの適用後に返されたデータの全量を表します。
書き込みスループット インスタンス
テーブル
アプリ プロファイル
データの書き込み時に受信した 1 秒あたりのバイト数。
ノード数 インスタンス クラスタ内のノード数。

これらのリソースの指標を表示するには:

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. 指標を表示するインスタンスをクリックします。

  3. 左側のペインで [モニタリング] をクリックします。Google Cloud コンソールに、インスタンスに関する一連のグラフと、インスタンスの指標を示す表が表示されます。デフォルトでは、Google Cloud コンソールには過去 1 時間の指標が表示されます。また、インスタンスのクラスタごとに異なる指標が表示されます。

    すべてのグラフを表示するには、グラフが表示されるペインでスクロールします。

    テーブルレベルで指標を表示するには、[テーブル] をクリックします。

    個別のアプリ プロファイルの指標を表示するには、[アプリケーション プロファイル] をクリックします。

    インスタンス全体の指標をまとめて表示するには、グラフの上にある [グループ条件] セクションで [インスタンス] をクリックします。

    より長い期間の指標を表示するには、[1 時間] の横の矢印をクリックします。既定の期間を選択するか、カスタムの期間を入力して [適用] をクリックします。

レプリケーションに関するグラフ

モニタリング ページには、時間の経過に伴うレプリケーション レイテンシを示すグラフが表示されます。50 番目、99 番目、100 番目のパーセンタイルにおける書き込みのレプリケーションの平均レイテンシを表示できます。

時間の経過に伴うレプリケーション レイテンシを表示するには:

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. 指標を表示するインスタンスをクリックします。

  3. 左側のペインで [モニタリング] をクリックします。[インスタンス] タブが選択された状態でページが開きます。

  4. [レプリケーション] タブをクリックします。Google Cloud コンソールに、時間の経過に伴うレプリケーション レイテンシが表示されます。デフォルトでは、Google Cloud コンソールには過去 1 時間のレプリケーション レイテンシが表示されます。

    テーブルまたはクラスタ別にグループ化されたレイテンシ グラフ間で切り替えるには、[Group by] メニューを使用します。

    表示するパーセンタイルを変更するには、[パーセンタイル] メニューを使用します。

    より長い期間の指標を表示するには、[1 時間] の横の矢印をクリックします。既定の期間を選択するか、カスタムの期間を入力して [適用] をクリックします。

Cloud Monitoring によるモニタリング

Bigtable は使用状況の指標Cloud Monitoring にエクスポートします。これらの指標はさまざまな方法で使用できます。

  • Cloud Monitoring API を使用してプログラムによってモニタリングします。
  • Metrics Explorer で可視化してモニタリングします。
  • アラート ポリシーを設定する
  • カスタム ダッシュボードに Bigtable の使用状況の指標を追加します。
  • Python 用 Matplotlib などのグラフ描画ライブラリを使用して、Cloud Bigtable の使用状況に関する指標のプロットや分析を行います。

Metrics Explorer で使用状況の指標を確認するには:

  1. Google Cloud コンソールで [Monitoring] ページを開きます。

    [Monitoring] ページを開く

    アカウントを選択するよう求められたら、Google Cloud へのアクセスに使用するアカウントを選択します。

  2. [Resources] をクリックし、[Metrics Explorer] をクリックします。

  3. [Find resource type and metric] に「bigtable」と入力します。Bigtable リソースと指標のリストが表示されます。

  4. グラフを表示する指標をクリックします。

Cloud Monitoring の使用方法の詳細については、Cloud Monitoring のドキュメントをご覧ください。

Bigtable 指標の一覧については、指標をご覧ください。

次のステップ