Cloud Composer では Cloud Monitoring と Cloud Logging を使用できます。
Monitoring を使用すると、クラウドで実行するアプリケーションのパフォーマンス、稼働時間、全体的な動作状況を確認できます。 Cloud Monitoring が Cloud Composer から指標、イベント、メタデータを収集し取り込むことにより、ダッシュボードとグラフを介して分析情報を得ることができます。また、Monitoring では Cloud Composer 環境のパフォーマンスや動作状況と Airflow の指標を確認することもできます。
Logging は、スケジューラとワーカー コンテナが生成するログをキャプチャします。 ログには、デバッグに役立つシステムレベルと Airflow 依存関係の情報が含まれています。ログの表示については、Airflow ログの表示をご覧ください。
始める前に
Cloud Composer 環境のログと指標にアクセスするには、次の権限が必要になります。
- ログと指標への読み取り専用アクセス:
logging.viewer
とmonitoring.viewer
- プライベート ログを含むログへの読み取り専用アクセス:
logging.privateLogViewer
- 指標に対する読み取り / 書き込みアクセス権:
monitoring.editor
詳細については、アクセス制御をご覧ください。
- ログと指標への読み取り専用アクセス:
重複ロギングを回避するため、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 で確認できます。
環境指標
環境指標を使用して、Cloud Composer 環境のリソース使用量と健全性を確認できます。
環境のヘルス
健全性統計情報(composer.googleapis.com/environment/healthy)を使用して、環境の健全性を確認できます。
Cloud Composer は、5 分ごとに airflow_monitoring
という名前のライブネス DAG を実行し、次のように環境の健全性をレポートします。
- DAG の実行が正常に終了すると、健全性のステータスは
True
になります。 - DAG の実行に失敗した場合、健全性のステータスは
False
になります。 - DAG の実行が完了しない場合、Cloud Composer は DAG のステータスを 5 分ごとにポーリングし、20 分が経過すると、
False
を報告します。
ライブネス DAG は dags/
フォルダに保存され、Airflow ウェブ UI に表示されます。ライブネス DAG の頻度と内容は変更できません。変更内容が保持されないため、変更を加えないでください。
データベースのヘルス
健全性統計情報(composer.googleapis.com/environment/database_health)を使用して、データベースの健全性を確認できます。
Cloud Composer Airflow Monitoring Pod はデータベースを 1 分ごとに ping し、SQL 接続を確立できる場合は True
、確立できない場合は False
として健全性のステータスを報告します。
データベースの指標
次の環境指標は、Cloud Composer 環境によって使用される Airflow メタデータ データベースで使用できます。
これらの指標を使用して、環境の Cloud SQL インスタンスのパフォーマンスとリソース使用量をモニタリングできます。たとえば、環境のリソース上限に近づいている場合に、環境の Cloud SQL マシンタイプをアップグレードできます。また、データベースのクリーンアップを実行して、Airflow メタデータ データベースの利用に関連する費用を最適化し、ストレージが特定のしきい値を超えないようにできます。
データベースの指標 | API |
---|---|
データベースの CPU 使用率 | composer.googleapis.com/environment/database/cpu/usage_time |
データベースの CPU コア | composer.googleapis.com/environment/database/cpu/reserved_cores |
データベースの CPU 使用率 | composer.googleapis.com/environment/database/cpu/utilization |
データベースのメモリ使用量 | composer.googleapis.com/environment/database/memory/bytes_used |
データベースのメモリの割り当て | composer.googleapis.com/environment/database/memory/quota |
データベースのメモリ使用率 | composer.googleapis.com/environment/database/memory/utilization |
データベースのディスク使用量 | composer.googleapis.com/environment/database/disk/bytes_used |
データベースのディスクの割り当て | composer.googleapis.com/environment/database/database/disk/quota |
データベースのディスク使用率 | composer.googleapis.com/environment/database/disk/utilization |
ウェブサーバーの指標
次の環境指標は、Cloud Composer 環境で使用される Airflow ウェブサーバーで使用できます。
これらの指標を使用して、お使いの環境の Airflow ウェブサーバー インスタンスのパフォーマンスとリソース使用量を確認できます。たとえば、リソースの上限に頻繁に近づいている場合、ウェブサーバーのマシンタイプをアップグレードする必要があります。
ウェブサーバーの指標 | API |
---|---|
ウェブサーバーの CPU 使用率 | composer.googleapis.com/environment/database/cpu/usage_time |
ウェブサーバーの CPU 割り当て | composer.googleapis.com/environment/web_server/cpu/reserved_cores |
ウェブサーバーのメモリ使用量 | composer.googleapis.com/environment/web_server/memory/bytes_used |
ウェブサーバーのメモリ割り当て | composer.googleapis.com/environment/web_server/memory/quota |
ワークフローの指標
ワークフローの実行効率をモニタリングして長時間のレイテンシの原因となるタスクを特定するために、次のワークフローの指標を利用できます。
ワークフローの指標 | 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
- Cloud Composer 環境を作成した後、Monitoring コンソールに移動して環境モニタリング データを表示します。
- [Resources] > [Metrics Explorer] を選択して [Cloud Composer] を選択します。
- [Find resource type and metric] 入力ボックスをクリックして、リソースのプルダウン リストを表示します。
- [Cloud Composer Environment] または [Cloud Composer Workflow] リソースを選択します。 あるいは、ボックスに 「cloud_composer_environment」または「cloud_composer_workflow」と入力します。
- 入力ボックスをもう一度クリックし、プルダウン リストから指標を選択します。
指標名にカーソルを合わせると、指標に関する情報が表示されます。
- Cloud Composer 環境の情報は、workflow_name ラベル、workflow_name=
environment.workflow
に含まれます。特定の環境のワークフロー指標を表示するには、フィルタを追加します。workflow_name
のフィルタを作成します。- ワークフローの指標を表示する環境の名前で正規表現
=~ "your-environment-name.*"
を使用して接頭辞をフィルタリングします。フィルタリング ラベルでの正規表現の使用方法については、フィルタリングをご覧ください。
- [グラフを保存] をクリックします。
また、指標ラベルによるグループ化、集計の実行、グラフ表示オプションの選択もできます。Monitoring のドキュメントをご覧ください。
API
Monitoring の timeSeries.list API を使用して、filter
式で定義された指標を取得し、一覧表示できます。API ページの [この API を試す] テンプレートを使用して、API リクエストを送信し、レスポンスを表示します。

カスタム Monitoring ダッシュボードの構築
選択した指標のグラフを Cloud Composer 環境用に表示する、カスタムの Monitoring ダッシュボードを構築できます。
Google Cloud Console で [モニタリング] を選択するか、次のボタンを使用します。
[ダッシュボード] > [ダッシュボードを作成] を選択します。
無題のダッシュボードで、[Add Chart] をクリックしてグラフを作成します。
- [Add Chart] ウィンドウで、リソースタイプとして [Cloud Composer Environment] を選択します。
- 1 つ以上の指標とグラフのプロパティを選択します。
- 新しいグラフのタイトルを確認または入力し、[保存] をクリックします。
- 必要に応じてダッシュボードにグラフを追加し、[Save] をクリックします。
次の例は、指標
Task Duration
を示しています。この指標は、ワークフロー内のアクティブなタスクの期間をプロットします。これはパフォーマンスの微調整に有用です。Monitoring の [ダッシュボード] メニューでタイトルをクリックして、ダッシュボードを表示します。
ダッシュボード表示ページから、グラフを表示、更新、削除できます。
Monitoring アラートの使用
アラート ポリシーを作成して指標の値をモニタリングすると、条件に違反した場合に通知できます。
1 つ以上の Cloud Composer 環境または Cloud Composer ワークフロー リソースをモニタリングするアラート ポリシーを作成するには、次の手順に従います。
- Google Cloud Console で、[モニタリング] ページに移動します。
- Monitoring のナビゲーション パネルで notifications [アラート] を選択し、次に [Create Policy] を選択します。
- この手順を進めるにあたり、[RETURN TO LEGACY UI] ボタンが表示されている場合はクリックしてください。アラート ポリシーを作成するには、プレビュー版インターフェースを使用します。ただし、この手順は以前の UI を対象としています。
- [ADD CONDITION] をクリックします。
- [ターゲット] ペインの設定で、モニタリングするリソースと指標を指定します。[Find resource type and metric] フィールドで、リソースに [Cloud Composer Environment] または [Cloud Composer Workflow] を選択します。次に、指標リストから指標を選択します。
- アラート ポリシーの [Configuration] ペインの設定で、アラートがトリガーされるタイミングを決定します。このペインのほとんどのフィールドにはデフォルト値が入力されています。ペインのフィールドの詳細については、アラート ポリシーのドキュメントの構成をご覧ください。
- [ADD] をクリックします。
- 通知セクションに移動するには、[次へ] をクリックします。
- (省略可)アラート ポリシーに通知を追加するには、[通知チャネル] をクリックします。ダイアログで、メニューから 1 つ以上の通知チャネルを選択し、[OK] をクリックします。
追加する通知チャネルが一覧にない場合は、[通知チャネルを管理] をクリックします。新しいブラウザタブの [通知チャネル] ページが表示されます。このページで、構成された通知チャンネルを更新できます。更新が完了したら、元のタブに戻って autorenew 更新アイコンをクリックし、アラート ポリシーに追加する通知チャンネルを選択します。
- ドキュメントのセクションに移動するには、[次へ] をクリックします。
- [名前] をクリックし、アラート ポリシーの名前を入力します。
- (省略可)[Documentation] をクリックして、通知メッセージに追加する情報を入力します。
- [Save] をクリックします。
アラートの表示
指標しきい値条件によってアラートがトリガーされると、Monitoring によってインシデント(および対応するイベント)が作成されます。
[Monitoring Alerting] > [Incidents] ページからインシデントを確認できます。
アラート ポリシーに通知メカニズム(メールや SMS 通知など)を定義した場合も、Monitoring によってインシデントの通知が送信されます。
次のステップ
- カスタム指標に基づいて Cloud Composer のモニタリングとアラートの設定方法を学習する。
- Monitoring グラフの作成について学習する。