Cloud Monitoring による環境のモニタリング

Cloud Composer では Cloud MonitoringCloud Logging を使用できます。

Monitoring を使用すると、クラウドで実行するアプリケーションのパフォーマンス、稼働時間、全体的な動作状況を確認できます。 Cloud Monitoring が Cloud Composer から指標、イベント、メタデータを収集し取り込むことにより、ダッシュボードとグラフを介して分析情報を得ることができます。また、Monitoring では Cloud Composer 環境のパフォーマンスや動作状況と Airflow の指標を確認することもできます。

Logging は、スケジューラとワーカー コンテナが生成するログをキャプチャします。 ログには、デバッグに役立つシステムレベルと Airflow 依存関係の情報が含まれています。ログの表示については、Airflow ログの表示をご覧ください。

始める前に

  • Cloud Composer 環境のログと指標にアクセスするには、次の権限が必要になります。

    • ログと指標への読み取り専用アクセス: logging.viewermonitoring.viewer
    • プライベート ログを含むログへの読み取り専用アクセス: logging.privateLogViewer
    • 指標に対する読み取り / 書き込みアクセス権: monitoring.editor

    詳細については、Cloud Composer のアクセス制御をご覧ください。

  • 重複ロギングを回避するため、Google Kubernetes Engine の Cloud Logging は無効になっています。

  • Cloud Logging は、Google Cloud プロジェクトで発生する各ステータスとイベントのエントリを作成します。除外フィルタを使用すると、Cloud Logging が Cloud Composer 用に生成するログなど、ログの量を減らすことができます。jobs.py からログを除外すると、ヘルスチェックの失敗と CrashLoopBackOff エラーが発生する可能性があります。-jobs.py を除外フィルタに含めて除外されないようにする必要があります。

  • Monitoring では、1 分あたり複数回実行されるワークフローとタスクのカウント値をプロットできません。また現在、失敗したタスクの指標をプロットできません。

指標とリソースタイプ

Airflow の指標は、ワークフロー(DAG)の Monitoring や Celery Executor で確認できます。

環境

環境の健全性

健全性統計情報(composer.googleapis.com/environment/healthy)を使用して、環境の健全性を確認できます。

Cloud Composer は、5 分ごとに airflow_monitoring という名前のライブネス DAG を実行し、次のように環境の健全性をレポートします。

  • DAG の実行が正常に終了すると、健全性のステータスは True になります。
  • DAG の実行に失敗した場合、健全性のステータスは False になります。
  • DAG の実行が完了しない場合、Cloud Composer は DAG のステータスを 5 分ごとにポーリングし、1 時間のタイムアウトに到達すると、False を報告します。

ライブネス DAG は dags/ フォルダに保存され、Airflow ウェブ UI に表示されます。ライブネス DAG の頻度と内容は変更できません。変更内容が保持されないため、変更を加えないでください。

データベースの健全性

健全性統計情報(composer.googleapis.com/environment/database_health)を使用して、データベースの健全性を確認できます。

Cloud Composer Airflow Monitoring Pod はデータベースを 1 分ごとに ping し、SQL 接続を確立できる場合は True、確立できない場合は False として健全性のステータスを報告します。

ワークフロー

ワークフローの実行効率をモニタリングして長時間のレイテンシの原因となるタスクを特定するために、次のワークフローの指標を利用できます。

ワークフローの指標 API
ワークフローの実行数 composer.googleapis.com/workflow/run_count
各ワークフローの実行期間 composer.googleapis.com/workflow/run_duration
タスクの実行数 composer.googleapis.com/workflow/task/run_count
各タスクの実行期間 composer.googleapis.com/workflow/task/run_duration

Cloud Monitoring では、完了したワークフローとタスクの実行(成功または失敗)に関する指標のみが表示されます。ワークフローのアクティビティが存在しない場合に、進行中のワークフローと実行しているタスクについて [データなし] と表示されます。

Celery Executor

次の Celery Executor の指標を利用できます。これらの指標により、環境内に十分なワーカー リソースがあるかどうかを判断できます。

Celery Executor の指標 API
キュー内のタスク数 composer.googleapis.com/environment/task_queue_length
オンライン Celery のワーカー数 composer.googleapis.com/environment/num_celery_workers

Cloud Monitoring のドキュメントには、Cloud Composer の指標とリソースに関する次の情報も含まれています。

  • Cloud Composer によって Cloud Monitoring に報告される使用状況の指標の一覧については、指標リストをご覧ください。
  • cloud_composer_environment リソースタイプの詳細については、Cloud Monitoring ドキュメントのモニタリング対象リソースタイプをご覧ください。

Cloud Composer 環境で Monitoring を使用する

Monitoring には、Monitoring コンソールから、または Monitoring API を使用してアクセスできます。

Console

  1. Cloud Composer 環境を作成した後、Monitoring コンソールに移動して環境モニタリング データを表示します。
  2. Monitoring に最初にアクセスするときに、ワークスペースを作成し、プロジェクトを選択するように求められます。
  3. ワークスペースを設定すると、Monitoring コンソールが表示されます。

  4. [Resources] > [Metrics Explorer] を選択して [Cloud Composer] を選択します。
    1. [Find resource type and metric] 入力ボックスをクリックして、リソースのプルダウン リストを表示します。
    2. [Cloud Composer Environment] または [Cloud Composer Workflow] リソースを選択します。 あるいは、ボックスに 「cloud_composer_environment」または「cloud_composer_workflow」と入力します。
  5. 入力ボックスをもう一度クリックし、プルダウン リストから指標を選択します。 指標名にカーソルを合わせると、指標に関する情報が表示されます。
  6. Cloud Composer 環境の情報は、workflow_name ラベル、workflow_name=environment.workflow に含まれます。特定の環境のワークフロー指標を表示するには、フィルタを追加します。
    1. workflow_name のフィルタを作成します。
    2. ワークフローの指標を表示する環境の名前で正規表現 =~ "your-environment-name.*" を使用して接頭辞をフィルタリングします。フィルタリング ラベルでの正規表現の使用方法については、フィルタリングをご覧ください。
  7. [グラフを保存] をクリックします。

    また、指標ラベルによるグループ化、集計の実行、グラフ表示オプションの選択もできます。Monitoring のドキュメントをご覧ください。

API

Monitoring の timeSeries.list API を使用して、filter 式で定義された指標を取得し、一覧表示できます。API ページの [この API を試す] テンプレートを使用して、API リクエストを送信し、レスポンスを表示します。

カスタム Monitoring ダッシュボードの構築

選択した指標のグラフを Cloud Composer 環境用に表示する、カスタムの Monitoring ダッシュボードを構築できます。

  1. Google Cloud Console で [モニタリング] を選択するか、次のボタンを使用します。

    [モニタリング] に移動

  2. [ダッシュボード] > [ダッシュボードを作成] を選択します。

  3. 無題のダッシュボードで、[Add Chart] をクリックしてグラフを作成します。

    1. [Add Chart] ウィンドウで、リソースタイプとして [Cloud Composer Environment] を選択します。
    2. 1 つ以上の指標とグラフのプロパティを選択します。
    3. 新しいグラフのタイトルを確認または入力し、[保存] をクリックします。
    4. 必要に応じてダッシュボードにグラフを追加し、[Save] をクリックします。

    次の例は、指標 Task Duration を示しています。この指標は、ワークフロー内のアクティブなタスクの期間をプロットします。これはパフォーマンスの微調整に有用です。

  4. Monitoring の [ダッシュボード] メニューでタイトルをクリックして、ダッシュボードを表示します。

  5. ダッシュボード表示ページから、グラフを表示、更新、削除できます。

Monitoring アラートの使用

アラート ポリシーを作成して指標の値をモニタリングすると、条件に違反した場合に通知できます。1 つ以上の Cloud Composer 環境または Cloud Composer ワークフロー リソースをモニタリングするアラート ポリシーを作成する一般的な手順は次のとおりです。

  1. Google Cloud Console で [Monitoring] に移動します。

    [モニタリング] に移動

  2. Monitoring のナビゲーション パネルで [アラート] を選択し、次に [Create Policy] を選択します。
  3. [Add Condition] をクリックします。
    1. [Target] ペインの設定で、モニタリングするリソースと指標を指定します。テキスト ボックスをクリックしてメニューを有効にし、リソースの Cloud Composer 環境または Cloud Composer ワークフローを選択します。 次に、指標リストから指標を選択します。
    2. アラート ポリシーの [Configuration] ペインの設定で、アラートがトリガーされるタイミングを決定します。このペインのほとんどのフィールドにはデフォルト値が入力されています。ペインのフィールドの詳細については、アラート ポリシーのドキュメントの構成をご覧ください。
    3. [追加] をクリックします。
  4. 通知セクションに移動するには、[次へ] をクリックします。
  5. (省略可)アラート ポリシーに通知を追加するには、[通知チャネル] をクリックします。ダイアログで、メニューから 1 つ以上の通知チャネルを選択し、[OK] をクリックします。

    追加する通知チャネルが一覧にない場合は、[通知チャネルを管理] をクリックします。新しいブラウザタブの [通知チャネル] ページが表示されます。このページで、構成された通知チャネルを更新できます。更新が完了したら、元のタブに戻って [更新] をクリックし、アラート ポリシーに追加する通知チャネルを選択します。

  6. ドキュメントのセクションに移動するには、[次へ] をクリックします。
  7. [名前] をクリックし、アラート ポリシーの名前を入力します。
  8. (省略可)[Documentation] をクリックして、通知メッセージに追加する情報を入力します。
  9. [保存] をクリックします。
詳細については、アラート ポリシーをご覧ください。

アラートの表示

指標しきい値条件によってアラートがトリガーされると、Monitoring によってインシデント(および対応するイベント)が作成されます。

[Monitoring Alerting] > [Incidents] ページからインシデントを確認できます。

アラート ポリシーに通知メカニズム(メールや SMS 通知など)を定義した場合も、Monitoring によってインシデントの通知が送信されます。

次のステップ