Metrik tugas Dataflow

Dataflow mengumpulkan metrik untuk tugas Anda, yang dapat membantu Anda men-debug error, memecahkan masalah performa, atau mengoptimalkan pipeline. Antarmuka pemantauan Dataflow menampilkan visualisasi untuk metrik ini. Anda juga dapat menggunakan Cloud Monitoring untuk membuat pemberitahuan atau membuat kueri Metrics Explorer.

Mengakses metrik tugas

Untuk melihat metrik tugas, lakukan langkah-langkah berikut:

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

    Buka Tugas

  2. Pilih lowongan.

  3. Klik tab Metrik tugas.

  4. Pilih metrik yang akan dilihat.

  5. Untuk mengakses informasi tambahan dalam diagram metrik tugas, klik Jelajahi data.

Setiap metrik disusun ke dalam dasbor berikut:

Dukungan dan batasan

Saat menggunakan metrik Dataflow, perhatikan detail berikut.

  • Terkadang data tugas tidak tersedia secara berkala. Jika data tidak ada, celah akan muncul dalam diagram pemantauan tugas.

  • Beberapa diagram ini khusus untuk pipeline streaming.

  • Untuk menulis data metrik, akun layanan yang dikelola pengguna harus memiliki izin IAM API monitoring.timeSeries.create. Izin ini disertakan dengan peran worker Dataflow.

  • Layanan Dataflow melaporkan waktu CPU yang dicadangkan setelah tugas selesai. Untuk tugas yang tidak terbatas (streaming), waktu CPU yang dicadangkan hanya dilaporkan setelah tugas dibatalkan atau gagal. Oleh karena itu, metrik tugas tidak mencakup waktu CPU yang dicadangkan untuk tugas streaming.

Metrik penskalaan otomatis

Penskalaan Horizontal Otomatis memungkinkan Dataflow memilih jumlah instance pekerja yang sesuai untuk tugas Anda, dengan menambahkan atau menghapus pekerja sesuai kebutuhan.

Bagian Penskalaan otomatis di tab Metrik tugas menampilkan jumlah pekerja dan jumlah pekerja target dari waktu ke waktu. Jika tugas Anda menggunakan Streaming Engine, tugas tersebut juga menampilkan jumlah minimum dan maksimum pekerja.

Visualisasi data yang menampilkan jumlah pekerja dalam pipeline.

Untuk melihat histori perubahan penskalaan otomatis, klik Histori lainnya. Tabel dengan informasi tentang histori pekerja tugas Anda akan ditampilkan.

Tabel yang menampilkan histori pekerja dari histori pipeline.

Untuk melihat informasi penskalaan otomatis tambahan untuk tugas streaming, klik tab Penskalaan otomatis. Untuk mengetahui informasi selengkapnya, lihat Memantau penskalaan otomatis Dataflow.

Metrik ringkasan

Metrik berikut muncul di bagian Metrik ringkasan.

Keaktualan data

Metrik ini hanya berlaku untuk tugas streaming.

Keaktualan data adalah perbedaan antara waktu saat elemen data diproses (waktu pemrosesan) dan stempel waktu elemen data (waktu peristiwa). Nilai yang lebih tinggi berarti ada penundaan yang lebih lama antara waktu peristiwa dan waktu pemrosesan.

Diagram keaktualan data menampilkan nilai keaktualan data maksimum pada titik waktu tertentu. Dataflow memproses beberapa elemen secara paralel, sehingga grafik mencerminkan elemen dengan penundaan terbesar relatif terhadap waktu peristiwanya.

Jika beberapa data input belum diproses, watermark output mungkin tertunda, yang memengaruhi keaktualan data. Perbedaan yang signifikan antara waktu stempel dan waktu peristiwa dapat menunjukkan operasi yang lambat atau macet. Untuk mengetahui informasi selengkapnya, lihat Watermark dan data terlambat dalam dokumentasi Apache Beam.

Dasbor ini mencakup dua diagram berikut:

  • Keaktualan data menurut tahap
  • Keaktualan data

Pada gambar berikut, area yang ditandai menunjukkan perbedaan besar antara waktu peristiwa dan waktu watermark output, yang menunjukkan operasi yang lambat.

Visualisasi data yang menunjukkan keaktualan data dalam pipeline streaming.

Masalah berikut dapat menyebabkan nilai tinggi untuk metrik ini:

  • Hambatan performa: Jika pipeline Anda memiliki tahap dengan latensi sistem yang tinggi atau log yang menunjukkan transformasi macet, pipeline mungkin mengalami masalah performa yang dapat meningkatkan keaktualan data. Untuk menyelidiki lebih lanjut, lihat Memecahkan masalah tugas yang lambat atau macet.
  • Hambatan sumber data: Jika sumber data Anda memiliki backlog yang terus bertambah, stempel waktu peristiwa elemen Anda mungkin berbeda dari tanda air saat menunggu untuk diproses. Penumpukan besar sering kali disebabkan oleh hambatan performa, atau masalah sumber data yang paling baik dideteksi dengan memantau sumber yang digunakan oleh pipeline Anda.
    • Sumber yang tidak berurutan seperti Pub/Sub dapat menghasilkan tanda air yang macet meskipun menghasilkan output dengan kecepatan tinggi. Situasi ini terjadi karena elemen tidak ditampilkan dalam urutan stempel waktu, dan watermark didasarkan pada stempel waktu minimum yang belum diproses.
  • Coba lagi berkali-kali: Jika Anda melihat error yang menunjukkan bahwa elemen gagal diproses dan dicoba lagi, stempel waktu yang lebih lama dari elemen yang dicoba lagi tersebut mungkin meningkatkan keaktualan data. Daftar error Dataflow umum dapat membantu Anda memecahkan masalah.

Untuk tugas streaming yang baru saja diperbarui, informasi tentang status tugas dan tanda air mungkin tidak tersedia. Operasi update membuat beberapa perubahan yang memerlukan waktu beberapa menit untuk diterapkan ke antarmuka pemantauan Dataflow. Coba muat ulang antarmuka pemantauan lima menit setelah memperbarui tugas.

Latensi sistem

Metrik ini hanya berlaku untuk tugas streaming.

Latensi sistem adalah jumlah detik maksimum saat ini yang telah digunakan item data untuk diproses atau menunggu pemrosesan. Metrik ini mencakup berapa lama elemen menunggu di dalam sumber. Misalnya, jika tujuan output berhenti menerima permintaan tulis selama jangka waktu tertentu, data dapat terakumulasi di sumber, sehingga menyebabkan latensi sistem meningkat. Jika operasi tulis dilanjutkan dan pipeline dapat mengejar, latensi sistem akan kembali ke tingkat dasarnya.

Kasus berikut adalah pertimbangan tambahan:

  • Untuk beberapa sumber dan tujuan, latensi sistem adalah jumlah waktu maksimum yang ditunggu elemen di dalam sumber sebelum ditulis ke semua tujuan.
  • Terkadang, sumber tidak memberikan nilai untuk jangka waktu saat elemen menunggu di dalam sumber. Selain itu, elemen mungkin tidak memiliki metadata untuk menentukan waktu acaranya. Dalam skenario ini, latensi sistem dihitung dari saat pipeline pertama kali menerima elemen.

Dasbor ini mencakup dua diagram berikut:

  • Latensi sistem menurut tahap
  • Latensi sistem

Visualisasi data yang menunjukkan latensi sistem dalam pipeline streaming.

Throughput

Throughput adalah volume data yang diproses pada titik waktu tertentu. Dasbor mencakup diagram berikut:

  • Throughput per langkah dalam elemen per detik
  • Throughput per langkah dalam byte per detik

Visualisasi data yang menunjukkan throughput empat langkah dalam
pipeline.

Jumlah log error pekerja

Jumlah log error pekerja menunjukkan rasio error yang diamati di semua pekerja pada waktu tertentu.

Ringkasan setiap error yang dicatat dan berapa kali error tersebut terjadi.

Metrik streaming

Metrik berikut muncul di bagian Metrik streaming.

Backlog

Metrik ini hanya berlaku untuk tugas streaming.

Dasbor Backlog memberikan informasi tentang elemen yang menunggu untuk diproses. Dasbor ini mencakup dua diagram berikut:

  • Detik backlog (khusus Streaming Engine)
  • Byte backlog (dengan dan tanpa Streaming Engine)

Diagram Detik backlog menampilkan perkiraan jumlah waktu dalam detik yang diperlukan untuk menggunakan backlog saat ini jika tidak ada data baru yang masuk dan throughput tidak berubah. Perkiraan waktu backlog dihitung dari throughput dan byte backlog dari sumber input yang masih perlu diproses. Metrik ini digunakan oleh fitur penskalaan otomatis streaming untuk menentukan kapan harus meningkatkan atau menurunkan skala.

Visualisasi data yang menampilkan diagram detik backlog dalam pipeline streaming.

Diagram Backlog bytes menunjukkan jumlah input yang diketahui belum diproses untuk suatu tahap dalam byte. Metrik ini membandingkan byte yang tersisa untuk digunakan oleh setiap tahap dengan tahap upstream. Agar metrik ini dapat melaporkan secara akurat, setiap sumber yang diproses oleh pipeline harus dikonfigurasi dengan benar. Sumber bawaan seperti Pub/Sub dan BigQuery sudah didukung secara langsung, tetapi sumber kustom memerlukan penerapan tambahan. Untuk mengetahui detail selengkapnya, lihat penskalaan otomatis untuk sumber tanpa batas kustom.

Visualisasi data yang menampilkan diagram byte backlog dalam pipeline streaming.

Memproses

Metrik ini hanya berlaku untuk tugas streaming.

Saat Anda menjalankan pipeline Apache Beam di layanan Dataflow, tugas pipeline berjalan di VM worker. Dasbor Pemrosesan memberikan informasi tentang durasi waktu tugas telah diproses di VM pekerja. Dasbor ini mencakup dua diagram berikut:

  • Peta panas latensi pemrosesan pengguna
  • Latensi pemrosesan pengguna menurut tahap

Peta panas latensi pemrosesan pengguna menampilkan latensi operasi maksimum di atas distribusi persentil ke-50, ke-95, dan ke-99. Gunakan peta panas untuk melihat apakah ada operasi ekor panjang yang menyebabkan latensi sistem keseluruhan yang tinggi atau berdampak negatif pada keaktualan data secara keseluruhan.

Untuk memperbaiki masalah di upstream sebelum menjadi masalah di downstream, tetapkan kebijakan pemberitahuan untuk latensi tinggi pada persentil ke-50.

Visualisasi data yang menampilkan diagram peta panas latensi pemrosesan pengguna untuk
pipeline streaming.

Diagram Latensi pemrosesan pengguna menurut tahap menampilkan persentil ke-99 untuk semua tugas yang diproses pekerja yang dikelompokkan menurut tahap. Jika kode pengguna menyebabkan keterbatasan, diagram ini menunjukkan tahap mana yang berisi keterbatasan. Anda dapat menggunakan langkah-langkah berikut untuk men-debug pipeline:

  1. Gunakan diagram untuk menemukan tahap dengan latensi yang sangat tinggi.

  2. Di halaman detail tugas, pada tab Detail eksekusi, untuk Tampilan grafik, pilih Alur kerja bertahap. Dalam grafik Stage workflow, temukan tahap yang memiliki latensi sangat tinggi.

  3. Untuk menemukan operasi pengguna terkait, di grafik, klik node untuk tahap tersebut.

  4. Untuk menemukan detail tambahan, buka Cloud Profiler, dan gunakan Cloud Profiler untuk men-debug stack trace pada rentang waktu yang tepat. Cari operasi pengguna yang Anda identifikasi di langkah sebelumnya.

Visualisasi data yang menampilkan latensi pemrosesan pengguna menurut diagram tahap untuk pipeline streaming.

Keparalelan

Metrik ini hanya berlaku untuk tugas Streaming Engine.

Diagram Pemrosesan paralel menampilkan perkiraan jumlah kunci yang digunakan untuk pemrosesan data pada setiap tahap. Dataflow melakukan penskalaan berdasarkan paralelisme pipeline.

Saat menjalankan pipeline, pemrosesan Dataflow didistribusikan di beberapa virtual machine (VM) Compute Engine, yang juga dikenal sebagai pekerja. Layanan Dataflow secara otomatis memparalelkan dan mendistribusikan logika pemrosesan di pipeline Anda ke worker. Pemrosesan untuk setiap kunci tertentu diserialkan, sehingga jumlah total kunci untuk tahap mewakili paralelisme maksimum yang tersedia pada tahap tersebut.

Metrik paralelisme dapat berguna untuk menemukan tombol pintas atau hambatan untuk pipeline yang lambat atau macet.

Visualisasi data yang menampilkan diagram pemrosesan paralel dalam pipeline streaming.

Persistensi

Metrik ini hanya berlaku untuk tugas streaming.

Dasbor Persistensi memberikan informasi tentang kecepatan penulisan dan pembacaan penyimpanan persisten oleh tahap pipeline tertentu dalam byte per detik. Byte yang dibaca dan ditulis mencakup operasi status pengguna dan status untuk pengacakan persisten, penghapusan duplikat, input samping, dan pelacakan watermark. Pengodean pipeline dan caching memengaruhi byte yang dibaca dan ditulis. Byte penyimpanan mungkin berbeda dengan byte yang diproses karena penggunaan dan penyimpanan dalam cache internal.

Dasbor ini mencakup dua diagram berikut:

  • Penulisan penyimpanan
  • Pembacaan penyimpanan

Visualisasi data yang menampilkan diagram penulisan penyimpanan untuk pipeline streaming.

Duplikat

Metrik ini hanya berlaku untuk tugas streaming.

Diagram Duplikat menampilkan jumlah pesan yang diproses oleh tahap tertentu yang telah difilter sebagai duplikat. Dataflow mendukung banyak sumber dan sink yang menjamin pengiriman at least once. Kelemahan pengiriman at least once adalah dapat menghasilkan duplikat. Dataflow menjamin pengiriman exactly once, yang berarti duplikat akan otomatis difilter. Tahap hilir tidak perlu memproses ulang elemen yang sama, sehingga memastikan bahwa status dan output tidak terpengaruh. Pipeline dapat dioptimalkan untuk resource dan performa dengan mengurangi jumlah duplikat yang dihasilkan di setiap tahap.

Visualisasi data yang menampilkan diagram duplikat dalam pipeline streaming.

Timer

Metrik ini hanya berlaku untuk tugas streaming.

Dasbor Timer memberikan informasi tentang jumlah timer yang tertunda dan jumlah timer yang sudah diproses dalam tahap pipeline tertentu. Karena jendela mengandalkan timer, metrik ini memungkinkan Anda melacak progres jendela.

Dasbor ini mencakup dua diagram berikut:

  • Timer tertunda menurut tahap
  • Pemrosesan timer menurut tahap

Diagram ini menunjukkan kecepatan jendela tertunda atau diproses pada titik waktu tertentu. Diagram Timers pending by stage menunjukkan jumlah jendela yang tertunda karena hambatan. Diagram Pemrosesan timer menurut tahap menunjukkan jumlah jendela yang mengumpulkan elemen.

Diagram ini menampilkan semua timer tugas, jadi jika timer digunakan di tempat lain dalam kode Anda, timer tersebut juga akan muncul dalam diagram ini.

Visualisasi data yang menampilkan jumlah timer yang menunggu di tahap tertentu.

Visualisasi data yang menunjukkan jumlah timer yang sudah diproses dalam tahap tertentu.

Metrik resource

Metrik berikut muncul di bagian Metrik resource.

Pemakaian CPU

Pemanfaatan CPU adalah jumlah CPU yang digunakan dibagi dengan jumlah CPU yang tersedia untuk pemrosesan. Metrik per pekerja ini ditampilkan sebagai persentase. Dasbor ini mencakup empat diagram berikut:

  • Penggunaan CPU (Semua pekerja)
  • Pemakaian CPU (Statistik)
  • Pemakaian CPU (4 Teratas)
  • Pemakaian CPU (4 Terbawah)

Visualisasi data animasi yang menunjukkan pemanfaatan CPU untuk satu pekerja Dataflow.

Pemakaian memori

Penggunaan memori adalah perkiraan jumlah memori yang digunakan oleh pekerja dalam byte per detik. Dasbor ini mencakup dua diagram berikut:

  • Penggunaan memori pekerja maksimum (byte per detik yang diperkirakan)
  • Penggunaan memori (estimasi byte per detik)

Diagram Penggunaan memori pekerja maksimum memberikan informasi tentang pekerja yang menggunakan memori paling banyak dalam tugas Dataflow pada setiap titik waktu. Jika, pada berbagai titik selama tugas, pekerja yang menggunakan jumlah memori maksimum berubah, garis yang sama dalam diagram akan menampilkan data untuk beberapa pekerja. Setiap titik data dalam garis menampilkan data untuk pekerja yang menggunakan jumlah memori maksimum pada saat itu. Diagram ini membandingkan perkiraan memori yang digunakan oleh pekerja dengan batas memori dalam byte.

Anda dapat menggunakan diagram ini untuk memecahkan masalah kehabisan memori (OOM). Error kehabisan memori pekerja tidak ditampilkan dalam diagram ini.

Diagram Penggunaan memori menampilkan perkiraan memori yang digunakan oleh semua pekerja dalam tugas Dataflow dibandingkan dengan batas memori dalam byte.

Metrik input dan output

Jika tugas Dataflow streaming Anda membaca atau menulis rekaman menggunakan Pub/Sub, tab Metrik tugas akan menampilkan metrik untuk pembacaan atau penulisan Pub/Sub.

Semua metrik input dengan jenis yang sama digabungkan, dan semua metrik output juga digabungkan. Misalnya, semua metrik Pub/Sub dikelompokkan dalam satu bagian. Setiap jenis metrik disusun ke dalam bagian terpisah. Untuk mengubah metrik yang ditampilkan, pilih bagian di sebelah kiri yang paling sesuai dengan metrik yang Anda cari. Gambar berikut menampilkan semua bagian yang tersedia.

Contoh gambar yang menunjukkan bagian input dan output terpisah untuk tugas Dataflow.

Dua diagram berikut ditampilkan di bagian Metrik Input dan Metrik Output.

Serangkaian diagram yang menampilkan metrik input dan output untuk tugas Dataflow.

Permintaan per detik

Permintaan per detik adalah rasio permintaan API untuk membaca atau menulis data oleh sumber atau sink dari waktu ke waktu. Jika rasio ini turun menjadi nol, atau menurun secara signifikan dalam jangka waktu yang lama dibandingkan dengan perilaku yang diharapkan, maka pipeline mungkin diblokir untuk melakukan operasi tertentu. Selain itu, mungkin tidak ada data yang dapat dibaca. Dalam kasus seperti itu, tinjau langkah-langkah tugas yang memiliki tanda air sistem yang tinggi. Selain itu, periksa log pekerja untuk menemukan error atau indikasi tentang pemrosesan yang lambat.

Diagram yang menampilkan jumlah permintaan API untuk membaca atau menulis data menurut sumber atau tujuan dari waktu ke waktu.

Error respons per detik berdasarkan jenis error

Error respons per detik berdasarkan jenis error adalah tingkat permintaan API yang gagal untuk membaca atau menulis data berdasarkan sumber atau tujuan dari waktu ke waktu. Jika error tersebut sering terjadi, permintaan API ini dapat memperlambat pemrosesan. Permintaan API yang gagal tersebut harus diselidiki. Untuk membantu memecahkan masalah ini, tinjau Kode error input dan output umum. Tinjau juga dokumentasi kode error tertentu yang digunakan oleh sumber atau tujuan, seperti kode error Pub/Sub.

Diagram yang menampilkan tingkat kegagalan permintaan API untuk membaca atau menulis data menurut sumber atau tujuan dari waktu ke waktu.

Untuk mengetahui informasi selengkapnya tentang skenario tempat Anda dapat menggunakan metrik ini untuk melakukan debug, lihat Alat untuk melakukan debug di "Memecahkan masalah tugas yang lambat atau macet".

Menggunakan Cloud Monitoring

Dataflow terintegrasi sepenuhnya dengan Cloud Monitoring. Gunakan Cloud Monitoring untuk tugas berikut:

  • Buat pemberitahuan saat tugas Anda melebihi batas yang ditentukan pengguna.
  • Gunakan Metrics Explorer untuk membuat kueri dan menyesuaikan rentang waktu metrik.
  • Melihat metrik yang tidak muncul di antarmuka pemantauan Dataflow.

Untuk mengetahui petunjuk tentang cara membuat pemberitahuan dan menggunakan Metrics Explorer, lihat Menggunakan Cloud Monitoring untuk pipeline Dataflow.

Untuk mengetahui daftar lengkap metrik Dataflow, lihat dokumentasi metrik.Google Cloud

Membuat pemberitahuan Cloud Monitoring

Cloud Monitoring memungkinkan Anda membuat pemberitahuan saat tugas Dataflow Anda melebihi batas yang ditentukan pengguna. Untuk membuat pemberitahuan Cloud Monitoring dari diagram metrik, klik Buat kebijakan pemberitahuan.

Jika Anda tidak dapat melihat grafik pemantauan atau membuat pemberitahuan, Anda mungkin memerlukan izin Pemantauan tambahan.

Lihat di Metrics Explorer

Anda dapat melihat diagram metrik Dataflow di Metrics Explorer, tempat Anda dapat membuat kueri dan menyesuaikan rentang waktu metrik.

Untuk melihat diagram Dataflow di Metrics Explorer, di tampilan Metrik tugas, buka Opsi diagram lainnya dan klik Lihat di Metrics Explorer.

Saat menyesuaikan rentang waktu metrik, Anda dapat memilih durasi standar atau memilih interval waktu kustom untuk menganalisis tugas.

Secara default, untuk tugas streaming dan tugas batch dalam proses, tampilan menunjukkan metrik enam jam sebelumnya untuk tugas tersebut. Untuk tugas streaming yang dihentikan atau selesai, tampilan default menunjukkan seluruh runtime durasi tugas.

Metrik I/O Dataflow

Anda dapat melihat metrik I/O Dataflow berikut di Metrics Explorer:

Metrik DoFn

Untuk tugas streaming yang menggunakan Streaming Engine dan tidak menggunakan Runner v2, Anda dapat melihat metrik berikut untuk DoFns yang ditentukan pengguna perorangan:

Metrik ini memerlukan Apache Beam SDK versi 2.53.0 atau yang lebih baru. Untuk melihat metrik ini, gunakan Metrics Explorer.

Anda dapat menggunakan metrik ini untuk menemukan DoFns yang paling berkontribusi terhadap latensi pemrosesan dalam tugas Anda. Misalnya, jika tugas macet, gunakan metrik job/oldest_active_message_age untuk menemukan DoFn dengan pesan aktif terlama. Gambar berikut menunjukkan DoFn dengan lonjakan besar dalam metrik ini:

Diagram yang menampilkan DoFn dengan pencilan untuk pesan aktif terlama.

Untuk melihat nama DoFn, arahkan kursor ke garis grafik.

Langkah berikutnya