ダッシュボード、グラフ、アラートを作成する
このドキュメントでは、Cloud Monitoring を使用して、BigQuery リソースをモニタリングするグラフとアラートを作成する方法について説明します。
始める前に
Cloud Monitoring を使用する前に、次を用意しておきます。
- Cloud 請求先アカウント。
- 課金を有効にした BigQuery プロジェクト。
Google Cloud コンソールを使用したクイックスタートを完了すると、両方がそろっていることを確認できます。
ダッシュボード、グラフ、アラートの表示と作成
Cloud Monitoring ダッシュボードを表示する
Cloud Monitoring を使用して BigQuery プロジェクトをモニタリングするには:
Google Cloud コンソールで、[Monitoring] ページに移動します。
ページ上部でまだプロジェクトの名前を選択していない場合はここで選択します。
BigQuery リソースを表示するには、[ダッシュボード] > [BigQuery] を選択します。このページには、ユーザーによる構成が可能なテーブル、イベントとインシデントのレポートの一覧と、プロジェクト指標またはデータセット指標のグラフが表示されます。
利用可能なスロットと割り当てられているスロットを可視化する
利用可能なスロットとプロジェクトに割り当てられているスロットを可視化するには、Cloud Monitoring ダッシュボードの表示の説明に沿って、BigQuery のダッシュボードに移動します。
Google Cloud コンソールで、[Monitoring] ページに移動します。
[ダッシュボード] > [BigQuery] を選択します。
BigQuery の Cloud Monitoring ダッシュボードで [Slot Utilization] という名前のグラフまでスクロールします。
[Slot Utilization] グラフは、メインの Cloud Monitoring のデフォルト ダッシュボードと、BigQuery の Cloud Monitoring ダッシュボードの両方に表示されます。
ダッシュボードとグラフを作成する
Cloud Monitoring が収集した指標を自分のグラフやダッシュボードに表示します。
Google Cloud コンソールで、[Monitoring] ページに移動します。
[ダッシュボード] > [ダッシュボードを作成] を選択します。
[グラフを追加] をクリックします。[グラフを追加] ページが表示されます。
[Find resource type and metric] パネル フィールドで、次の操作を行います。
- [Resource type] プルダウン リストで [Global] を選択します。[Global] オプションは [Resource types] のリストを開かないと表示されない場合があります。
- [指標] プルダウン リストで [Query execution time] を選択します。
[Aggregation] ペイン フィールドでは、実行時間データをどのように表示するかを指定します。この各フィールドのデフォルト設定は変更できます。
[保存] をクリックします。
割り当ての使用量と上限を表示する
Cloud Monitoring では、割り当ての使用量と上限の指標を表示できます。
Google Cloud コンソールで、[Monitoring] ページに移動します。
ナビゲーション パネルで、[
Metrics Explorer] を選択します。
ツールバーで [エクスプローラ] > [構成] を選択します。
[Resource & Metric] セクションで [指標を選択] をクリックします。
[Consumer Quota] > [割り当て] > [割り当て上限] を選択し、[適用] をクリックします。
[
フィルタを追加] をクリックし、[ラベル] メニューで [limit_name] を選択します。[値] メニューで、指標を表示する割り当てを選択します。
アラートを作成する
BigQuery クエリの実行時間の 99 パーセンタイルが、ユーザーによって定義された上限値を超過すると起動するアラート ポリシーを作成するには、次の設定を使用します。
[New condition] フィールド |
値 |
---|---|
リソースと指標 | [リソース] メニューで [BigQuery プロジェクト] を選択します。 [Metric categories] メニューで [Query] を選択します。 [指標] メニューで [クエリ実行時間] を選択します。 |
フィルタ | |
時系列全体 時系列のグループ化の基準 |
priority |
時系列全体 時系列集計 |
99th percentile |
ローリング ウィンドウ | 5 m |
ローリング ウィンドウ関数 | sum |
[アラート トリガーの構成] フィールド |
値 |
---|---|
条件タイプ | Threshold |
Alert trigger | Any time series violates |
しきい値の位置 | Above threshold |
しきい値 | この値を決定します。ただし、しきい値を 60 秒にすることをおすすめします。 |
再テスト ウィンドウ | most recent value |
BigQuery プロジェクトで課金対象となるスキャンされた合計バイト数がユーザー定義の上限を超えた場合にトリガーされるアラート ポリシーを作成するには、次のアラート ポリシー構成を使用します。
[新しい条件] フィールド |
値 |
---|---|
リソースと指標 |
[リソース] メニューで [BigQuery プロジェクト] を選択します。 [指標カテゴリ] メニューで、[クエリ] を選択します。 [指標] メニューで、[Statement scanned bytes billed] を選択します。 |
フィルタ | (プロジェクト全体の警告にはフィルタは必要ありません) |
時系列全体 時系列のグループ化の基準 |
(すべてのシリーズを集計する場合は空白のままにします) |
時系列全体 時系列集計 |
sum |
ローリング ウィンドウ |
5 m |
ローリング ウィンドウ関数 |
sum
|
[アラート トリガーの構成] フィールド |
値 |
---|---|
条件タイプ |
Threshold
|
アラートトリガー |
Any time series violates
|
しきい値の位置 |
Above threshold
|
しきい値 |
この値はユーザーが決定します。たとえば、使用量が 1 TiB を超えたときにアラートをトリガーするには、「1000000000000 」と入力します。 |
アラート ポリシーはスキャンされた合計バイト数をモニタリングしますが、特定の予算に基づいてしきい値を設定できます。この予算ベースのアラート ポリシーを実現するには、まず目的の費用しきい値を同等のバイト数に変換する必要があります。この式は、BigQuery オンデマンド コンピューティング料金に基づいています。詳細については、オンデマンド コンピューティングの料金をご覧ください。
次の式を使用して、費用しきい値をバイトに変換できます。
Threshold in Bytes = (Target Amount / (price per TiB)) * 1,000,000,000,000
例: 使用量が 100 ドルを超えたときにアラートをトリガーする
たとえば、プロジェクトのクエリ費用が $100 を超えたときにアラートを受け取るようにします。
- TiB 単位の同等のデータ容量を計算します。
$100 / (price per TiB) = Equivalent Data Volume in TiB
- データ容量をバイトに変換する:
(Equivalent Data Volume in TiB) * 1,000,000,000,000 = Threshold Value in Bytes
- しきい値を設定する:
ポリシーの [アラート トリガーを構成する] セクションで、[バイト単位のしきい値] を [しきい値] として入力します。
これで、ローリング ウィンドウで課金されるスキャンされた合計バイト数が、オンデマンド クエリ費用の約 $100 に相当する場合に、アラート ポリシーがトリガーされます。
表示に使用できる指標
次の指標を使用できます。最大数時間の遅延が発生します。
リソースの種類 | 名前 | 単位 | 説明 |
---|---|---|---|
BigQuery | Scanned bytes |
バイト数/分 | スキャンされたバイト数。 |
BigQuery | Scanned bytes billed |
バイト数/分 | オンデマンド分析モデル使用時の課金対象の送信バイト数。料金の端数は切り上げられるため、Scanned bytes と Scanned bytes billed はクエリあたりの処理データの最小量に応じて異なる場合があります。 |
BigQuery | BI Engine Query Fallback Count (Preview) |
クエリ | BI Engine をレートとして使用しなかったクエリの数。[グループ条件] オプションを reason に設定すると、次のようなフォールバックの理由別にこのクエリ数を分割できます。
|
BigQuery | Query count |
クエリ | 実行中のクエリ。 |
BigQuery | Query execution count (Preview) |
クエリ | 実行されたクエリの数。 |
BigQuery |
Query execution times
|
秒 | キャッシュに保存されないクエリの実行時間。 |
BigQuery | Slots used by project |
スロット | プロジェクト内のクエリジョブに割り当てられている BigQuery スロットの数。 スロットは課金アカウントごとに割り当てられ、複数のプロジェクトで同じスロットの予約を共有できます。 |
BigQuery | Slots used by project and job type |
スロット | 任意の時点でプロジェクトに割り当てられているスロットの数をジョブタイプごとに区切った数です。この数は、そのプロジェクトで利用されているスロットの数とみなすこともできます。読み込みジョブと抽出ジョブは無料のオペレーションとなっており、公開リソースプール内で実行されます。 スロットは課金アカウントごとに割り当てられ、複数のプロジェクトで同じスロットの予約を共有できます。 |
BigQuery | Slots used by project, reservation, and job type |
スロット | プロジェクトに割り当てられている BigQuery のスロット数。スロットの割り当ては、予約とジョブタイプ別に分類できます。 |
BigQuery | Total slots |
スロット | プロジェクトで利用可能なスロットの合計数。 プロジェクトで他のプロジェクトとスロットの予約を共有している場合、他のプロジェクトによって使用されているスロットは表示されません。 |
BigQuery | Slots used across projects in reservations |
スロット | 予約でプロジェクト間で割り当てられている BigQuery スロットの数。指標データは、少なくとも 1 つのプロジェクトが予約に割り当てられ、スロットを消費しているときにのみ報告されます。代わりに、INFORMATION_SCHEMA の予約情報をクエリすることもできます。 |
BigQuery | Slots used by project in reservation |
スロット | 予約でプロジェクトに割り当てられている BigQuery スロットの数。 |
BigQuery 継続的ジョブ | Estimated backlog logical bytes |
バイト | 継続的ジョブの各ステージのバックログのバイト数。 |
BigQuery 継続的ジョブ | Estimated backlog records |
レコード数 | 継続的ジョブの各ステージのバックログ レコード数の推定値。 |
BigQuery 継続的ジョブ | Estimated bytes processed |
バイト | 継続的ジョブの各ステージで処理される推定バイト数。 |
BigQuery 継続的ジョブ | Output watermark |
タイムスタンプ | この継続的ジョブのステージで処理されたすべてのデータの最新のタイムスタンプ(エポックからのマイクロ秒単位)。 |
BigQuery 継続的ジョブ | Records read |
レコード数 | 継続的ジョブの各ステージで読み取られた入力レコードの数。 |
BigQuery 継続的ジョブ | Records written |
レコード数 | 継続的ジョブの各ステージで書き込まれた出力レコードの数。 |
BigQuery 継続的ジョブ | Slots used |
スロット(ミリ秒) | 継続的ジョブで使用されたスロットの合計(ミリ秒)。 |
BigQuery データセット | Stored bytes |
バイト | データセットに保存されているバイト数 - データセット内で大きさが上位 100 個のテーブルについて、保存されているバイト数がテーブルごとに(名前別に)表示されます。データセット内の他のテーブル(上位 100 個に入らないテーブル)は 1 つにまとめて合計としてレポートされ、サマリーのテーブル名は空の文字列になります。 |
BigQuery データセット | Table count |
テーブル | データセット内のテーブル数。 |
BigQuery データセット | Uploaded bytes |
バイト数/分 | データセット内の任意のテーブルにアップロードされたバイト数。 |
BigQuery データセット | Uploaded rows | 行数/分 | データセット内の任意のテーブルにアップロードされたレコードの数。 |
使用可能な Google Cloud 指標の一覧については、Google Cloud 指標をご覧ください。
既知の問題
実行中のクエリがない場合、Slots Allocated や Slots Available、またはクエリ関連の変数に関するデータは返されません。データを表示するには、ズームアウトしてください。
クエリが US と EU の両方で実行されている場合、Slots Allocated と Slots Available が正しくないことがあります。
Slots Allocated は時間枠(時間枠の幅はグラフのズームレベルによって異なります)の平均値として報告されます。ズームインとズームアウトによって、Slots Allocated の値が変化することがあります。1 時間以下の時間枠にズームインすると、Slots Allocated の実際の値が表示されます。グラフに表示されたどの時間についてもこの範囲では、
avg(slots allocated) = slots allocated
になります。Cloud Monitoring のグラフには、選択したプロジェクトに関するデータのみが表示されます。
指標は特定の時点でサンプリングされた瞬間的な値です。サンプル間隔の間のデータポイントが失われる可能性があります。たとえば、ジョブカウント指標は 1 分ごとにサンプリングされます。この値は、その時点におけるジョブの数であり、1 分間あたりのジョブの最大数ではありません。