このドキュメントでは、次の方法について説明します。
始める前に
実行ログをモニタリングするには、次の操作を行います。
Google Cloud コンソールの [Dataform] ページに移動します。
リポジトリを作成または選択します。
開発ワークスペースを作成または選択します。
少なくとも 1 回実行をトリガーします。
必要なロール
実行ログを表示するために必要な権限を取得するには、workflowInvocations リポジトリに対する Dataform 編集者 (roles/dataform.editor
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ログ閲覧者(roles/logging.viewer
)IAM ロールは、Cloud Logging のすべての機能に対する読み取り専用権限を付与します。Logging データに適用される Identity and Access Management の権限とロールの詳細については、IAM によるアクセス制御をご覧ください。
ログベースのアラートを作成して管理するには、IAM ロールにログベースのアラート ポリシーの作成と使用に必要なロールで説明されている権限が含まれていることを確認します。
実行ログをモニタリングする
このセクションでは、Dataform で実行ログを表示する方法について説明します。
リポジトリでトリガーされたすべての実行のログを表示できます。また、過去 24 時間以内にワークスペースでトリガーされた実行のログを表示することもできます。
リポジトリの実行ログを検査する
リポジトリでトリガーされたすべての実行のログを表示する手順は次のとおりです。
Google Cloud コンソールの [Dataform] ページに移動します。
リポジトリに移動します。
[ワークフローの実行ログ] をクリックします。
実行の詳細を表示するには、該当する実行をクリックします。
実行内のアクションの詳細を表示するには、[詳細を表示] をクリックします。
ワークスペースの実行ログを検査する
過去 24 時間以内にワークスペースでトリガーされた最新の 1,000 件の実行ログを表示する手順は次のとおりです。
Google Cloud コンソールの [Dataform] ページに移動します。
リポジトリに移動し、ワークスペースを選択します。
ワークスペースで、[実行] をクリックします。
実行の詳細を表示するには、該当する実行をクリックします。
実行内のアクションの詳細を表示するには、[詳細を表示] をクリックします。
Dataform の Logging ログを表示する
このセクションでは、Dataform ワークフローの呼び出しの Cloud Logging ログを表示する方法について説明します。
各 Dataform ワークフローの呼び出しは、Logging を使用してロギングされます。Dataform ワークフローの呼び出しでは、ロギングが自動的に有効になります。このため、Logging の料金が発生する場合があります。詳細については、Dataform の料金をご覧ください。
ログを表示
ログを表示するには、[ログ エクスプローラ] ページに移動します。
ログ エクスプローラで Logging ログをフィルタリングする方法については、ログ エクスプローラを使用してログを表示するをご覧ください。
Dataform ログは Dataform リポジトリでインデックスに登録されます。
ログ形式
Dataform は、ワークフローの呼び出しログ メッセージを次の形式で送信します。
{
"insertId": "14ip1tza5",
"jsonPayload": {
"terminalState": "SUCCEEDED",
"workflowInvocationId": "1678383230-ac4ed48c-eb70-4555-b2b0-cda54d13edfa",
"@type": "type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry"
},
"resource": {
"type": "dataform.googleapis.com/Repository",
"labels": {
"repository_id": "repository-name-example",
"resource_container": "PROJECT_ID",
"location": "us-central1"
}
},
"timestamp": "2023-03-09T17:34:06.965981805Z",
"severity": "INFO",
"logName": "projects/project-name-example/logs/dataform.googleapis.com%2Fworkflow_invocation_completion",
"receiveTimestamp": "2023-03-09T17:34:07.362371980Z"
}
ログの内容
Dataform ログエントリには、ワークフローの呼び出しのモニタリングとデバッグに役立つ情報が含まれています。
ログエントリには次のタイプの情報が含まれています。
receiveTimestamp
release_config_id
repository_id
resource_container
workflow_invocation_id
workflow_config_id
severity
:INFO
、WARNING
、ERROR
のいずれかを設定できます。terminalState
:SUCCEEDED
、CANCELED
、FAILED
のいずれかを設定できます。timestamp
@type
Cloud Monitoring で指標とアラートを構成する
Monitoring を使用すると、ログの傾向を観察して、記述した条件が発生したときに通知を受け取ることができます。
Monitoring にログのデータを提供するため、Logging には次の機能があります。
- ログベースの指標で、次のように使用できます。
- 経時的な変化を通知するアラート ポリシーを作成する。
- 経時的な変化を表すグラフを作成する。
- ログに特定のイベントが表示されるたびに通知する、ログベースのアラート。
ログベースの指標とログベースのアラートの詳細については、ログをモニタリングするをご覧ください。
Dataform ワークフロー呼び出しに対するログベースのアラートを構成する方法については、失敗したワークフロー呼び出しに対するアラートを構成するをご覧ください。
失敗したワークフロー呼び出しに対するアラートを構成する
このセクションでは、ログ エクスプローラを使用して、失敗した Dataform ワークフローの呼び出しに対するログベースのアラートを構成する方法について説明します。
Monitoring を使用して、Dataform ワークフロー呼び出しの Logging ログの傾向を確認し、記述した条件の発生時に通知できます。
各 Dataform ワークフローの呼び出しは、Logging を使用してロギングされます。Dataform ワークフローの呼び出しでは、ロギングが自動的に有効になります。このため、Logging の料金が発生する場合があります。詳細については、Dataform の料金をご覧ください。
Dataform ワークフローの呼び出しが失敗したときにアラートを受け取るには、ログベースのアラートを作成します。
ログベースのアラートは、Google Cloud コンソールの [ログ エクスプローラ] ページで作成するか、Monitoring API を使用して作成できます。このセクションでは、ログ エクスプローラを使用して Dataform ワークフロー呼び出しの失敗に対するログベースのアラートを作成する方法について説明します。
Dataform ワークフロー呼び出しに失敗した場合のログベースのアラートを構成する手順は次のとおりです。
Google Cloud コンソールで [Logging] を選択し、[ログ エクスプローラ] を選択します。
[クエリ] ペインで [クエリを表示] を選択し、次のクエリを入力します。
resource.type="dataform.googleapis.com/Repository" jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry" jsonPayload.terminalState="FAILED"
このクエリは、すべての失敗した Dataform ワークフローの呼び出しをアラートで通知します。
省略可: 失敗したワークフローの呼び出しをリリース構成でフィルタするには、クエリに次の行を追加します。
jsonPayload.releaseConfigId="RELEASE_CONFIGURATION_ID"
RELEASE_CONFIGURATION_ID
は、リリース構成の ID に置き換えます。省略可: 失敗したワークフローの呼び出しをワークフロー構成でフィルタするには、クエリに次の行を追加します。
jsonPayload.workflowConfigId="WORKFLOW_CONFIGURATION_ID"
WORKFLOW_CONFIGURATION_ID
は、ワークフロー構成の ID に置き換えます。
次のクエリは、
daily
リリース構成とproduction
ワークフロー構成の両方に関連する Dataform ワークフローの呼び出しが失敗したときにアラートを出します。resource.type="dataform.googleapis.com/Repository" jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry" jsonPayload.terminalState="FAILED" jsonPayload.releaseConfigId="daily" jsonPayload.workflowConfigId="production"
省略可: クエリを検証するには、[クエリ結果] ペインで [クエリを実行] を使用します。
[クエリ結果] ペインの上部にある [アラートを作成] をクリックします。ウィンドウの幅が狭い場合、[アラートを作成] オプションは [その他の操作] メニューに表示されます。
[アラートの詳細] ペインで、アラートの名前と説明を入力します。
[アラート名] フィールドにアラートの名前を入力します。例:
Dataform: workflow failure
。このアラートの説明を入力します。通知の受信者が問題を診断する際に有用な情報を表示することもできます。 次の文字列では、アラートの理由を要約しています。
Log-based alert in project ${project} detected a failed Dataform workflow.
このフィールドの内容のフォーマットと調整の詳細については、ユーザー定義のドキュメントで通知にアノテーションを付けるをご覧ください。
次のステップに進むには、[次へ] をクリックします。
[アラートに含めるログを選択] ペインで、[ログをプレビュー] をクリックしてクエリと結果を確認します。
ログ エクスプローラの [クエリ] ペインでクエリを作成することをおすすめします。[クエリ] ペインで作成したクエリもこのペインに表示されます。
必要に応じて、このペインでクエリを編集できます。クエリを編集する場合は、[ログをプレビュー] をクリックして結果を確認します。
[次へ] をクリックします。
通知間の最小時間を選択します。この値により、このアラートが複数回トリガーされた場合に受信する通知の数を制御できます。この例では、オプションから [5 minute] を選択します。
省略可: インシデントの自動クローズ期間を選択します。デフォルトでは、インシデントの自動クローズ期間は 7 日間に設定されています。
[次へ] をクリックします。
アラートの通知チャネルを 1 つ以上選択します。この例では、メール通知チャネルを選択します。
すでにメール通知チャンネルを構成している場合は、リストからそれを選択できます。そうでない場合は、[通知チャンネルを管理] をクリックしてメールチャンネルを追加します。通知チャンネルの作成については、通知チャンネルの作成と管理をご覧ください。
[保存] をクリックします。
これで、ログベースのアラートをテストできるようになりました。 アラートをテストする手順については、ログベースのアラート ポリシーの例をテストするをご覧ください。
次のステップ
- トリガーの実行について学習する。
- Workflows と Cloud Scheduler で実行をスケジュールする方法を確認する。
- Dataform API でコンパイルのオーバーライドを構成する方法を確認する。
- Cloud Audit Logs と Monitoring について学習する。
- Logging の料金について学習する。