Dokumen ini menunjukkan cara melakukan hal berikut:
- Memantau log eksekusi.
- Melihat log Logging untuk Dataform.
- Menghubungkan tugas BigQuery ke pemanggilan alur kerja.
- Konfigurasikan pemberitahuan untuk pemanggilan alur kerja yang gagal.
Sebelum memulai
Untuk memantau log eksekusi, pastikan Anda melakukan hal berikut:
Di konsol Google Cloud , buka halaman Dataform.
Pilih atau buat repositori.
Pilih atau buat ruang kerja pengembangan.
Picu operasi setidaknya sekali.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk melihat log eksekusi, minta administrator untuk memberi Anda peran IAM berikut:
- Dataform Editor (
roles/dataform.editor) di repositori Dataform tempat eksekusi alur kerja dilacak -
Memverifikasi penyiapan eksekusi:
Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di akun layanan kustom
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Peran IAM Logs Viewer
(roles/logging.viewer) memberi Anda akses hanya baca
ke semua fitur Cloud Logging. Untuk mengetahui informasi selengkapnya tentang peran dan izin Identity and Access Management yang berlaku untuk data Logging, lihat Kontrol akses dengan IAM.
Untuk membuat dan mengelola pemberitahuan berbasis log, pastikan peran IAM Anda mencakup izin yang dijelaskan dalam Peran yang diperlukan untuk membuat dan menggunakan kebijakan pemberitahuan berbasis log.
Memantau log eksekusi
Bagian ini menunjukkan cara melihat log eksekusi di Dataform.
Anda dapat melihat log semua eksekusi yang dipicu di repositori, dan log eksekusi yang dipicu di ruang kerja dalam 24 jam terakhir.
Memeriksa log eksekusi repositori
Untuk melihat log semua eksekusi yang dipicu di repositori, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Dataform.
Buka repositori Anda.
Klik Workflow Execution Logs.
Untuk melihat detail eksekusi, klik eksekusi.
Untuk melihat detail tindakan dalam eksekusi, klik Lihat detail.
Memeriksa log eksekusi ruang kerja
Untuk melihat log dari 1.000 eksekusi terbaru yang dipicu di ruang kerja dalam 24 jam terakhir, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Dataform.
Buka repositori Anda dan pilih ruang kerja Anda.
Di ruang kerja Anda, klik Executions.
Untuk melihat detail eksekusi, klik eksekusi.
Untuk melihat detail tindakan dalam eksekusi, klik Lihat detail.
Melihat log Logging untuk Dataform
Bagian ini menunjukkan cara melihat log Cloud Logging untuk pemanggilan alur kerja Dataform.
Setiap pemanggilan alur kerja Dataform dicatat ke dalam log menggunakan Logging. Logging otomatis diaktifkan untuk pemanggilan alur kerja Dataform, yang dapat dikenai biaya penagihan Logging. Untuk mengetahui informasi selengkapnya, lihat Harga Dataform.
Melihat log
Untuk melihat log, buka halaman Logs Explorer.
Untuk mengetahui informasi tentang cara memfilter log Logging di Logs Explorer, lihat Melihat log menggunakan Logs Explorer.
Log Dataform diindeks oleh repositori Dataform.
Format log
Dataform mengirim pesan log pemanggilan alur kerja dalam format berikut:
{
"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"
}
Yang dicatat di log
Entri log Dataform berisi informasi yang berguna untuk memantau dan men-debug pemanggilan alur kerja Anda.
Entri log berisi jenis informasi berikut:
receiveTimestamprelease_config_idrepository_idresource_containerworkflow_invocation_idworkflow_config_idseverity: dapat berupaINFO,WARNING, atauERRORterminalState: dapat berupaSUCCEEDED,CANCELED, atauFAILEDtimestamp@type
Log layanan Dataform menyediakan peristiwa pemanggilan tingkat tinggi, seperti log penyelesaian pemanggilan alur kerja. Namun, log layanan ini tidak menyertakan ID tugas BigQuery individual atau eksekusi tindakan tingkat tabel yang terperinci. Untuk mengambil detail eksekusi tingkat tindakan terperinci dan ID pekerjaan BigQuery yang sesuai untuk pemanggilan alur kerja, lihat Menghubungkan tugas BigQuery ke pemanggilan alur kerja.
Mengonfigurasi metrik dan pemberitahuan dengan Cloud Monitoring
Anda dapat menggunakan Monitoring untuk mengamati tren di log dan memberi tahu Anda saat kondisi yang Anda deskripsikan terjadi.
Untuk menyediakan data dari log Anda ke Monitoring, Logging menawarkan hal berikut:
- Metrik berbasis log, yang dapat Anda gunakan sebagai berikut:
- Untuk membuat kebijakan pemberitahuan yang memberi tahu Anda tentang perubahan dari waktu ke waktu.
- Untuk membuat diagram yang menampilkan perubahan dari waktu ke waktu.
- Pemberitahuan berbasis log, yang memberi tahu Anda setiap kali peristiwa tertentu muncul di log.
Untuk mengetahui informasi selengkapnya tentang metrik berbasis log dan pemberitahuan berbasis log, lihat Memantau log Anda.
Untuk mempelajari cara mengonfigurasi pemberitahuan berbasis log untuk pemanggilan alur kerja Dataform, lihat Mengonfigurasi pemberitahuan untuk pemanggilan alur kerja yang gagal.
Menghubungkan tugas BigQuery dengan pemanggilan alur kerja
Log layanan Dataform di bagian jenis resource dataform.googleapis.com/Repository
menyediakan peristiwa pemanggilan alur kerja tingkat tinggi, seperti
log penyelesaian pemanggilan alur kerja. Namun, log layanan ini tidak menyertakan
eksekusi tindakan tingkat tabel yang terperinci atau ID tugas BigQuery
tertentu.
Saat menjalankan tindakan seperti membuat atau memperbarui tabel, tampilan, atau pernyataan, Dataform mengirimkan tugas di BigQuery dan otomatis melampirkan label ke setiap tugas. Anda juga dapat mengambil
ID pekerjaan BigQuery untuk setiap tindakan langsung dari Dataform API
dengan memanggil
metode workflowInvocations.query
dan memeriksa kolom bigqueryAction.jobId.
Tabel berikut mencantumkan label kunci yang dilampirkan Dataform ke tugas BigQuery:
| Kunci label | Deskripsi |
|---|---|
dataform_workflow_execution_id |
ID yang dibersihkan dari pemanggilan alur kerja Dataform. |
dataform_repository_id |
ID repositori Dataform yang telah dibersihkan. |
dataform_workflow_execution_action_id_database |
Project target (database) dari tindakan. |
dataform_workflow_execution_action_id_schema |
Set data (skema) target tindakan. |
dataform_workflow_execution_action_id_name |
Nama tabel, tampilan, atau pernyataan target dari tindakan. |
Untuk menghubungkan tugas BigQuery dan detail eksekusi tingkat tindakan ke pemanggilan alur kerja, lakukan hal berikut:
Dapatkan ID pemanggilan alur kerja untuk operasi Anda. Untuk mencari ID di Logs Explorer, buat kueri salah satu jenis log Dataform berikut:
Log
workflow_invocation_completion(diaktifkan secara default): salin nilai kolomjsonPayload.workflowInvocationIddari entri log:resource.type="dataform.googleapis.com/Repository" resource.labels.repository_id="REPOSITORY_ID" log_id("dataform.googleapis.com/workflow_invocation_completion")Log audit Akses Data
CreateWorkflowInvocation(jika log audit Akses Data diaktifkan untuk operasiDATA_WRITE): salin segmenWORKFLOW_INVOCATION_IDdi akhir kolomprotoPayload.resourceName:resource.type="dataform.googleapis.com/Repository" resource.labels.repository_id="REPOSITORY_ID" log_id("cloudaudit.googleapis.com/data_access") protoPayload.methodName:"Dataform.CreateWorkflowInvocation"
Ganti
REPOSITORY_IDdengan ID repositori Dataform Anda.Untuk menemukan tugas BigQuery yang berkorelasi dengan mengkueri log audit BigQuery di Logs Explorer atau tampilan
INFORMATION_SCHEMA.JOBSdi BigQuery, pilih salah satu opsi berikut:Logs Explorer
Di konsol Google Cloud , buka halaman Logs Explorer.
Di panel Query, masukkan kueri berikut:
resource.type="bigquery_project" protoPayload.metadata.jobChange.job.jobConfig.labels.dataform_workflow_execution_id="WORKFLOW_INVOCATION_ID"
Ganti
WORKFLOW_INVOCATION_IDdengan ID pemanggilan alur kerja Anda.Klik Run query.
Kueri ini menampilkan entri log tugas BigQuery untuk pemanggilan alur kerja tersebut. Di setiap entri log, kolom
protoPayload.metadata.jobChange.job.jobNameberisi nama resource tugas BigQuery, serta kolomjobStatsdanjobStatusmemberikan statistik eksekusi dan detail status.
BigQuery Studio
Di konsol Google Cloud , buka halaman BigQuery Studio.
Di editor kueri, jalankan kueri berikut:
SELECT job_id, creation_time, state, error_result, total_bytes_billed, (SELECT value FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_action_id_schema') AS target_schema, (SELECT value FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_action_id_name') AS target_name, query FROM `region-LOCATION`.INFORMATION_SCHEMA.JOBS WHERE DATE(creation_time) = CURRENT_DATE() AND EXISTS ( SELECT 1 FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_id' AND value = 'WORKFLOW_INVOCATION_ID' );Ganti kode berikut:
LOCATION: lokasi BigQuery tempat tugas dijalankan, sepertiusataueu.WORKFLOW_INVOCATION_ID: ID pemanggilan alur kerja Anda.
Mengonfigurasi pemberitahuan untuk pemanggilan alur kerja yang gagal
Bagian ini menunjukkan cara mengonfigurasi pemberitahuan berbasis log untuk pemanggilan alur kerja Dataform yang gagal menggunakan Logs Explorer.
Anda dapat menggunakan Monitoring untuk mengamati tren dalam log Logging untuk pemanggilan alur kerja Dataform dan untuk memberi tahu Anda saat kondisi yang Anda deskripsikan terjadi.
Setiap pemanggilan alur kerja Dataform dicatat ke dalam log menggunakan Logging. Logging diaktifkan secara otomatis untuk pemanggilan alur kerja Dataform, yang dapat menimbulkan biaya penagihan Logging. Untuk mengetahui informasi selengkapnya, lihat Harga Dataform.
Untuk menerima pemberitahuan saat pemanggilan alur kerja Dataform gagal, Anda dapat membuat pemberitahuan berbasis log.
Anda dapat membuat pemberitahuan berbasis log dari halaman Logs Explorer di konsol Google Cloud atau menggunakan Monitoring API. Bagian ini menjelaskan cara membuat pemberitahuan berbasis log untuk kegagalan pemanggilan alur kerja Dataform menggunakan Logs Explorer.
Guna mengonfigurasi pemberitahuan berbasis log untuk pemanggilan alur kerja Dataform yang gagal, ikuti langkah-langkah berikut:
Di konsol Google Cloud , pilih Logging, lalu pilih Logs Explorer.
Di panel Query, pilih Show query, lalu masukkan kueri berikut:
resource.type="dataform.googleapis.com/Repository" jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry" jsonPayload.terminalState="FAILED"Kueri ini memberi tahu Anda tentang semua pemanggilan alur kerja Dataform yang gagal.
Opsional: Untuk memfilter pemanggilan alur kerja yang gagal berdasarkan konfigurasi rilis, tambahkan hal berikut ke kueri:
jsonPayload.releaseConfigId="RELEASE_CONFIGURATION_ID"Ganti
RELEASE_CONFIGURATION_IDdengan ID konfigurasi rilis.Opsional: Untuk memfilter pemanggilan alur kerja yang gagal berdasarkan konfigurasi alur kerja, tambahkan hal berikut ke kueri:
jsonPayload.workflowConfigId="WORKFLOW_CONFIGURATION_ID"Ganti
WORKFLOW_CONFIGURATION_IDdengan ID konfigurasi alur kerja.
Kueri berikut memberi tahu Anda saat pemanggilan alur kerja Dataform yang terkait dengan konfigurasi rilis
dailydan konfigurasi alur kerjaproductiongagal: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"Opsional: Untuk memvalidasi kueri, gunakan Run query di panel Query results.
Di header panel Query results, klik Create alert. Jika jendela Anda sempit, opsi Create alert mungkin akan muncul di menu Actions.
Di panel Alert details, beri nama dan deskripsi untuk pemberitahuan:
Masukkan nama untuk pemberitahuan Anda di kolom Alert Name. Contoh:
Dataform: workflow failure.Masukkan deskripsi untuk pemberitahuan ini. Anda juga dapat menyertakan informasi yang dapat membantu penerima notifikasi mendiagnosis masalah. String berikut merangkum alasan pemberitahuan:
Log-based alert in project ${project} detected a failed Dataform workflow.Untuk mengetahui informasi tentang cara memformat dan menyesuaikan konten kolom ini, lihat Memberikan anotasi pada notifikasi dengan dokumentasi yang ditentukan pengguna.
Untuk melanjutkan ke langkah berikutnya, klik Next.
Di panel Choose logs to include in the alert, periksa kueri dan hasil dengan mengklik Preview logs.
Sebaiknya buat kueri di panel Query Logs Explorer. Kueri yang Anda buat di panel Query juga ditampilkan di panel ini.
Anda dapat mengedit kueri di panel ini, jika perlu. Jika Anda mengedit kueri, periksa hasilnya dengan mengklik Preview logs.
Klik Berikutnya.
Pilih waktu minimum antar-notifikasi. Nilai ini memungkinkan Anda mengontrol jumlah notifikasi yang Anda dapatkan dari pemberitahuan ini jika dipicu beberapa kali. Untuk contoh ini, pilih 5 min dari opsi.
Opsional: Pilih durasi penutupan otomatis insiden. Secara default, durasi penutupan otomatis insiden ditetapkan ke 7 hari.
Klik Berikutnya.
Pilih satu atau beberapa saluran notifikasi untuk pemberitahuan Anda. Untuk contoh ini, pilih saluran notifikasi email.
Jika sudah mengonfigurasi saluran notifikasi email, Anda dapat memilihnya dari daftar. Jika tidak, klik Manage notification channels dan tambahkan saluran email. Untuk mengetahui informasi tentang cara membuat saluran notifikasi, lihat Membuat dan mengelola saluran notifikasi.
Klik Simpan.
Pemberitahuan berbasis log Anda kini siap diuji. Untuk mendapatkan petunjuk tentang cara menguji pemberitahuan, lihat Menguji contoh kebijakan pemberitahuan berbasis log.
Langkah berikutnya
- Pelajari cara memicu operasi secara manual.
- Pelajari cara menjadwalkan operasi dengan Workflows dan Cloud Scheduler.
- Pelajari cara mengonfigurasi penggantian kompilasi dengan Dataform API.
- Pelajari Cloud Audit Logs dan Monitoring.
- Pelajari harga Logging.