Menyesuaikan dasbor pemantauan Dataflow

Halaman ini menunjukkan cara menyesuaikan dasbor pemantauan project Dataflow, dengan menambahkan grafik yang membuat kueri metrik Cloud Monitoring.

Dasbor pemantauan project memungkinkan Anda memantau kumpulan tugas dan melihat kondisi serta performanya secara keseluruhan. Dasbor berisi kumpulan diagram default yang berguna untuk sebagian besar beban kerja. Dengan menyesuaikan dasbor, Anda dapat menambahkan diagram yang spesifik untuk persyaratan bisnis Anda.

Contoh skenario

Untuk menunjukkan cara menyesuaikan dasbor, asumsikan bahwa organisasi ingin melacak perkiraan biaya 25 tugas teratas dalam project mereka.

Untuk skenario ini, asumsikan bahwa tugas memiliki karakteristik berikut:

Pilih metrik

Metrik berikut diperlukan untuk memperkirakan biaya tugas, dengan asumsi yang tercantum di bagian sebelumnya:

ResourceMetrik yang relevan
CPU (vCPU per jam) job/total_vcpu_time
Memori (GB per jam) job/total_memory_usage_time
Data yang diproses selama shuffle (GB) job/total_streaming_data_processed
Penggunaan Persistent Disk (GB per jam, Standar dan SSD) job/total_pd_usage_time

Untuk mengetahui informasi selengkapnya, lihat Harga Dataflow.

Untuk mempelajari resource mana yang tersedia di Monitoring, lihat Jenis resource yang dimonitor.

Menulis kueri PromQL

Untuk membuat kueri metrik dari Cloud Monitoring, gunakan Prometheus Query Language (PromQL). Bagian ini menunjukkan cara menulis kueri PromQL untuk skenario dengan menyusunnya dari klausa yang lebih kecil. Bagian ini tidak mengasumsikan pengetahuan sebelumnya tentang PromQL. Untuk mengetahui informasi selengkapnya, lihat PromQL di Cloud Monitoring.

Memetakan nama metrik ke string PromQL

Untuk menggunakan metrik Monitoring dalam kueri PromQL, Anda harus memetakan nama metrik ke string PromQL, sebagai berikut:

Nama metrikString PromQL
job/total_vcpu_time dataflow_googleapis_com:job_total_vcpu_time
job/total_memory_usage_time dataflow_googleapis_com:job_total_memory_usage_time
job/total_streaming_data_processed dataflow_googleapis_com:job_total_streaming_data_processed
job/total_pd_usage_time dataflow_googleapis_com:job_total_pd_usage_time

Untuk mengetahui informasi selengkapnya, lihat Memetakan metrik Cloud Monitoring ke PromQL.

Buat kueri

Untuk mendapatkan perkiraan biaya, hitung harga setiap komponen berdasarkan nilai terbaru setiap metrik. Metrik diambil sampelnya setiap 60 detik, jadi untuk mendapatkan nilai terbaru, gunakan fungsi windowing 1 menit dan ambil nilai maksimum dalam setiap jendela.

  • Untuk mendapatkan estimasi biaya CPU, pertama-tama konversikan job/total_vcpu_time dari detik ke jam. Kalikan dengan harga CPU per vCPU per jam.

    # ((vCPU time)[Bucket 1m] / Seconds per hour * vCPU Price)
    max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
    

    Formula ini memberikan estimasi biaya CPU untuk semua tugas dalam project. Untuk mendapatkan perkiraan biaya CPU per tugas, gunakan operator agregasi sum dan kelompokkan menurut ID tugas.

    sum(
      max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
    ) by (job_id)
    
  • Untuk mendapatkan estimasi biaya memori, konversi job/total_memory_usage_time dari detik ke jam. Kalikan dengan harga memori per GB per jam dan kelompokkan menurut ID tugas.

    #((Memory time)[Bucket 1m] / Seconds per hour) * Memory Price
    sum(
      max_over_time(dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
    ) by (job_id)
    
  • Untuk mendapatkan estimasi biaya pengacakan, konversikan job/total_streaming_data_processed dari byte ke GB. Kalikan dengan harga data yang diproses selama shuffle per GB dan kelompokkan menurut ID tugas.

    # Shuffle Billing. Reported once every 60 seconds, measured in bytes.
    # Formula: (Shuffle Data)[Bucket 1m] / (Bytes in GB) * (Shuffle Price)
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_streaming_data_processed[1m]
     ) / 1000000000 * SHUFFLE_PRICE
    ) by (job_id)
    
  • Untuk mendapatkan perkiraan biaya penggunaan Persistent Disk, lakukan pengindeksan pada label storage_type untuk memisahkan menurut jenis disk (Standar atau SSD). Konversi setiap nilai dari GB-detik ke GB-jam dan kelompokkan menurut ID tugas.

    # Formula: ((Standard PD time)[Bucket 1m] / Seconds per hour) * Standard PD price
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]
      ) / 3600 * STANDARD_PD_PRICE
    ) by (job_id)
    
    # Formula: ((SSD PD time)[Bucket 1m] / Seconds per hour) * SSD PD price
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]
      ) / 3600 * SSD_PD_PRICE
    ) by (job_id)
    
  • Menjumlahkan nilai sebelumnya akan memberikan estimasi biaya per pekerjaan. Untuk mendapatkan 25 tugas teratas, gunakan filter K teratas:

    topk(25,
      # Sum the individual values.
    )
    

Tulis kueri lengkap

Berikut adalah kueri lengkapnya:

topk(25,
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_streaming_data_processed[1m]) / 1000000000 * SHUFFLE_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]) / 3600 * STANDARD_PD_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]) / 3600 * SSD_PD_PRICE
  )
  by (job_id)
)

Ganti variabel berikut dengan nilai dari halaman harga Dataflow untuk wilayah Anda.

  • CPU_PRICE: Harga CPU, per vCPU per jam
  • MEMORY_PRICE: Harga memori, per GB per jam
  • SHUFFLE_PRICE: Harga acak, per GB
  • STANDARD_PD_PRICE: Harga Persistent Disk Standar, per GB per jam
  • SSD_PD_PRICE: Harga Persistent Disk SSD, per GB per jam

Mengedit dasbor

Jika sebelumnya Anda belum membuat dasbor kustom untuk Dataflow di project ini, buat dasbor dengan cara berikut:

  1. Di konsol Google Cloud , buka halaman Dataflow > Monitoring.

    Buka Monitoring

  2. Di menu drop-down Sudah ditentukan, klik Sesuaikan dasbor.

  3. Opsional: Masukkan nama untuk dasbor di kotak Nama tampilan kustom.

Jika sebelumnya Anda membuat dasbor kustom, lakukan langkah-langkah berikut untuk mengedit dasbor:

  1. Di konsol Google Cloud , buka halaman Dataflow > Monitoring.

    Buka Monitoring

  2. Di drop-down Predefined, pilih dasbor kustom.

  3. Klik Edit dasbor.

Menambahkan diagram metrik

Untuk menambahkan diagram metrik ke dasbor, lakukan langkah-langkah berikut:

  1. Klik Add widget.
  2. Di panel Tambahkan widget, pilih Metrik.
  3. Di kotak Judul widget, masukkan judul untuk diagram, seperti Estimated cost (top 25).
  4. Klik PROMQL
  5. Tempelkan kueri PromQL yang ditampilkan sebelumnya.
  6. Klik Run query.
  7. Klik Terapkan.
  8. Opsional: Tarik diagram untuk memosisikannya di dasbor.

Langkah berikutnya