Memantau operasi

Dokumen ini menunjukkan cara melakukan hal berikut:

Sebelum memulai

Untuk memantau log eksekusi, pastikan Anda melakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Dataform.

    Buka Dataform

  2. Pilih atau buat repositori.

  3. Pilih atau buat ruang kerja pengembangan.

  4. 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:

  1. Di konsol Google Cloud , buka halaman Dataform.

    Buka Dataform

  2. Buka repositori Anda.

  3. Klik Workflow Execution Logs.

  4. Untuk melihat detail eksekusi, klik eksekusi.

  5. 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:

  1. Di konsol Google Cloud , buka halaman Dataform.

    Buka Dataform

  2. Buka repositori Anda dan pilih ruang kerja Anda.

  3. Di ruang kerja Anda, klik Executions.

  4. Untuk melihat detail eksekusi, klik eksekusi.

  5. 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 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:

  • receiveTimestamp
  • release_config_id
  • repository_id
  • resource_container
  • workflow_invocation_id
  • workflow_config_id
  • severity: dapat berupa INFO, WARNING, atau ERROR
  • terminalState: dapat berupa SUCCEEDED, CANCELED, atau FAILED
  • timestamp
  • @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:

  1. 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 kolom jsonPayload.workflowInvocationId dari 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 operasi DATA_WRITE): salin segmen WORKFLOW_INVOCATION_ID di akhir kolom protoPayload.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_ID dengan ID repositori Dataform Anda.

  2. Untuk menemukan tugas BigQuery yang berkorelasi dengan mengkueri log audit BigQuery di Logs Explorer atau tampilan INFORMATION_SCHEMA.JOBS di BigQuery, pilih salah satu opsi berikut:

    Logs Explorer

    1. Di konsol Google Cloud , buka halaman Logs Explorer.

      Buka Logs Explorer

    2. 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_ID dengan ID pemanggilan alur kerja Anda.

    3. Klik Run query.

      Kueri ini menampilkan entri log tugas BigQuery untuk pemanggilan alur kerja tersebut. Di setiap entri log, kolom protoPayload.metadata.jobChange.job.jobName berisi nama resource tugas BigQuery, serta kolom jobStats dan jobStatus memberikan statistik eksekusi dan detail status.

    BigQuery Studio

    1. Di konsol Google Cloud , buka halaman BigQuery Studio.

      Buka BigQuery Studio

    2. 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, seperti us atau eu.
      • 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:

  1. Di konsol Google Cloud , pilih Logging, lalu pilih Logs Explorer.

    Buka Logs Explorer

  2. 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.

    1. Opsional: Untuk memfilter pemanggilan alur kerja yang gagal berdasarkan konfigurasi rilis, tambahkan hal berikut ke kueri:

          jsonPayload.releaseConfigId="RELEASE_CONFIGURATION_ID"
      

      Ganti RELEASE_CONFIGURATION_ID dengan ID konfigurasi rilis.

    2. 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_ID dengan ID konfigurasi alur kerja.

    Kueri berikut memberi tahu Anda saat pemanggilan alur kerja Dataform yang terkait dengan konfigurasi rilis daily dan konfigurasi alur kerja production gagal:

     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"
    
  3. Opsional: Untuk memvalidasi kueri, gunakan Run query di panel Query results.

  4. Di header panel Query results, klik Create alert. Jika jendela Anda sempit, opsi Create alert mungkin akan muncul di menu Actions.

  5. Di panel Alert details, beri nama dan deskripsi untuk pemberitahuan:

    1. Masukkan nama untuk pemberitahuan Anda di kolom Alert Name. Contoh: Dataform: workflow failure.

    2. 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.

  6. Untuk melanjutkan ke langkah berikutnya, klik Next.

  7. 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.

  8. Klik Berikutnya.

  9. 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.

  10. Opsional: Pilih durasi penutupan otomatis insiden. Secara default, durasi penutupan otomatis insiden ditetapkan ke 7 hari.

  11. Klik Berikutnya.

  12. 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.

  13. 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