スケジュールされたクエリでアラートを設定する
このドキュメントでは、BigQuery のスケジュールされたクエリを使用してアラートを設定する方法について説明します。このアプローチは、クエリロジックで定義されたカスタム ユースケースをサポートします。
始める前に
Cloud Monitoring を使用する前に、次を用意しておきます。
- Cloud 請求先アカウント。
- 課金を有効にした BigQuery プロジェクト。
Google Cloud コンソールを使用したクイックスタートを完了すると、両方がそろっていることを確認できます。
SQL クエリを作成する
アラートの出力を生成する SQL クエリを BigQuery で作成して実行します。クエリは、モニタリングするロジックをキャプチャします。詳細については、クエリを実行するをご覧ください。
スケジュールされたクエリを設定する
クエリは、15 分ごとから数か月ごとまで、定期的に実行するようにスケジュールできます。ログバケットに対して任意のクエリを作成できます。詳細については、クエリのスケジュール設定をご覧ください。
行数の指標について
スケジュールされたクエリは、Cloud Monitoring で指標を自動的に作成します。この指標は、SQL クエリが最後に評価されたときに返した行数を記録します。Monitoring でこの行数の指標をモニタリングするアラート ポリシーを作成できます。
次の指標は、スケジュールされたクエリの最新の行数を含むゲージです。
bigquerydatatransfer.googleapis.com/transfer_config/last_execution_job_rows
すべてのスケジュールされたクエリは、異なるラベルを使用して、この指標に行数を書き込みます。アラート ポリシーを定義するときは、config_id
ラベルが必要です。config_id
ラベルを見つける手順は次のとおりです。
Google Cloud コンソールで、[スケジュールされたクエリ] ページに移動します。
アラートを作成するスケジュールされたクエリをクリックします。
[詳細] タブに移動します。
次のスクリーンショットのように、[リソース名] の最後の文字列を確認します。
スケジュールされたクエリで問題が発生すると、スケジュールされたクエリの [実行履歴] タブにエラー メッセージが表示されます。
スケジュールされたクエリをモニタリングする
スケジュールされたクエリをモニタリングして、実行が成功したことを確認します。
- スケジュールされたクエリの [実行履歴] タブでエラーを探します。
bigquerydatatransfer.googleapis.com/transfer_config/completed_runs
指標のcompletion_state
フィールドに保存されている、スケジュールされた実行の最終ステータスを確認します。- BigQuery Data Transfer Service ログでエラーを探します。
アラート ポリシーを作成する
指標しきい値アラートを使用して、スケジュールされたクエリから返される行数がしきい値と異なる場合を検出します。
スケジュールされたクエリが返す行数に関するアラートを設定する手順は次のとおりです。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
[ポリシーを作成] をクリックします。
スケジュールされたクエリの行数指標を選択します。[指標を選択] メニューで、[BigQuery DTS の構成] > Transfer_config > [Last executed job row count] をクリックします。
[フィルタを追加] で [フィルタを追加] をクリックします。
[フィルタ] メニューで、[config_id] を選択します。
[値] メニューで、アラートを作成するスケジュールされたクエリの
config_id
を選択します。フィルタを設定しない場合、アラートはスケジュールされたすべてのクエリの出力をテストします。スケジュールされたクエリの
config_id
を確認するには、行数指標についてをご覧ください。[データの変換] のデフォルト設定をそのまま使用し、[次へ] をクリックします。
[条件タイプ] で [しきい値] を選択します。
必要な条件を選択します。たとえば、クエリが任意の行を返したときにトリガーするには、次の条件を設定します。
- [Alert trigger] で [任意の時系列の違反] を選択します。
- [しきい値の位置] で [しきい値より上] を選択します。
- [しきい値] に「
0
」と入力します。
デフォルトの [詳細オプション] のままにして、[次へ] をクリックします。
省略可: アラートの通知を構成するには、[通知チャンネルを使用] 切り替えボタンをクリックし、通知チャンネルと件名を設定します。インシデントのクローズ時の通知を設定することもできます。
通知を受け取らない場合は、[通知チャンネルを使用] 切り替えボタンをオフにします。
省略可: アラート ポリシーが多い場合は、スケジュールされたクエリから派生したことを示すために、アラート ポリシーにラベルでアノテーションを付けることもできます。
省略可: [ドキュメント] フィールドに、アラートの解釈に役立つリンクを追加できます。たとえば、同様のクエリを含むログ エクスプローラ ページへのリンクを追加して、アラートを生成したデータを調べることができます。特定のスケジュール クエリの詳細ページにリンクすることもできます。
[Name the alert policy] に、アラートの名前を入力します。
[ポリシーを作成] をクリックします。
制限事項
スケジュールされたクエリのアラート ポリシーには、次の制限があります。
- スケジュールされたクエリの実行頻度と取り込み遅延は、ログの出力からアラートまでの合計時間に影響します。たとえば、クエリが 30 分ごとに実行され、取り込み遅延の 15 分の遅延を追加した場合、アラートは問題のあるログエントリが出力されてから約 15 分後に発生します。場合によっては、45 分ほどかかることがあります。
- スケジュールされたクエリとアラート ポリシーの構成はリンクまたは同期されません。1 か所で構成を編集すると、アラート機能を可能にする関係が壊れる可能性があります。
次のステップ
- スケジュールされたクエリを作成して実行する方法を確認する。