Metrik tugas Dataflow

Anda dapat melihat diagram di tab Job metrics pada halaman Dataflow di konsol Google Cloud. Setiap metrik diatur ke dalam dasbor berikut:

Metrik ringkasan

Metrik streaming (khusus pipeline streaming)

Metrik resource

Metrik input

Metrik output

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

Dukungan dan batasan

Saat menggunakan metrik Dataflow, perhatikan detail berikut.

  • Terkadang data tugas tidak tersedia secara berkala. Jika data tidak ada, kesenjangan akan muncul di 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 Pekerja Dataflow.

  • Layanan Dataflow melaporkan waktu CPU yang direservasi 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 menyertakan waktu CPU yang dicadangkan untuk tugas streaming.

Mengakses metrik tugas

  1. Login ke konsol Google Cloud.
  2. Pilih project Google Cloud Anda.
  3. Buka menu navigasi dan pilih Dataflow.
  4. Di daftar tugas, klik nama tugas Anda. Halaman Detail tugas akan terbuka.
  5. Klik tab Metrik tugas.

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

Menggunakan Cloud Monitoring

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

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

Membuat pemberitahuan Cloud Monitoring

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

Jika 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 Job metrics, buka More chart options dan klik View in Metrics Explorer.

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

Secara default, untuk tugas streaming dan tugas batch yang sedang berlangsung, layar akan menampilkan metrik enam jam sebelumnya untuk tugas tersebut. Untuk tugas streaming yang dihentikan atau selesai, tampilan default akan menampilkan seluruh runtime durasi tugas.

Metrik I/O Dataflow

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

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

Metrik tahap dan pekerja

Bagian berikut memberikan detail tentang metrik pekerja dan tahap yang tersedia di antarmuka pemantauan.

Penskalaan otomatis

Layanan Dataflow secara otomatis memilih jumlah instance pekerja yang diperlukan untuk menjalankan tugas penskalaan otomatis Anda. Jumlah instance pekerja dapat berubah dari waktu ke waktu sesuai dengan persyaratan tugas.

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

Throughput

Throughput adalah volume data yang diproses pada waktu tertentu. Metrik per langkah ini ditampilkan sebagai jumlah elemen per detik. Untuk melihat metrik ini dalam byte per detik, lihat diagram Throughput (byte/dtk) di bagian bawah halaman.

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

Keaktualan data (dengan dan tanpa Streaming Engine)

Metrik keaktualan data menunjukkan perbedaan dalam detik antara stempel waktu di elemen data dan waktu peristiwa diproses di pipeline Anda. Elemen data menerima stempel waktu saat peristiwa terjadi pada elemen, seperti peristiwa klik di situs atau penyerapan oleh Pub/Sub. Stempel waktu output adalah waktu data diproses.

Tugas Dataflow memproses beberapa elemen kapan saja. Titik data dalam diagram keaktualan data menunjukkan elemen dengan penundaan terbesar dibandingkan dengan waktu peristiwanya. Oleh karena itu, garis yang sama dalam diagram menampilkan data untuk beberapa elemen. Setiap titik data dalam garis menampilkan data untuk elemen paling lambat pada tahap tersebut dalam pipeline.

Jika beberapa data input belum diproses, watermark output mungkin tertunda, yang memengaruhi keaktualan data. Perbedaan yang signifikan antara waktu watermark dan waktu peristiwa mungkin menunjukkan operasi lambat atau macet.

Untuk tugas streaming yang baru-baru ini diperbarui, status tugas dan informasi watermark mungkin tidak tersedia. Operasi Update membuat beberapa perubahan yang memerlukan waktu beberapa menit untuk diterapkan ke antarmuka pemantauan Dataflow. Coba muat ulang antarmuka pemantauan 5 menit setelah memperbarui tugas Anda.

Untuk informasi selengkapnya, lihat Watermark dan data terlambat dalam dokumentasi Apache Beam.

Dasbor mencakup dua diagram berikut:

  • Keaktualan data menurut tahap
  • Keaktualan data

Visualisasi data yang menunjukkan keaktualan data dalam
pipeline streaming.

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

Metrik keaktualan data yang tinggi (misalnya, metrik yang menunjukkan bahwa data kurang aktual) mungkin disebabkan oleh:

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

Latensi sistem (dengan dan tanpa Streaming Engine)

Latensi sistem adalah jumlah detik maksimum saat ini yang telah diproses atau menunggu pemrosesan oleh item data. Metrik ini menunjukkan durasi waktu elemen menunggu di dalam satu sumber dalam pipeline. Durasi maksimum disesuaikan setelah pemrosesan. Kasus berikut adalah pertimbangan tambahan:

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

Dasbor mencakup dua diagram berikut:

  • Latensi sistem menurut tahap
  • Latensi sistem

Visualisasi data yang menunjukkan latensi sistem dalam
pipeline streaming.

Backlog

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

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

Diagram Detik backlog menunjukkan estimasi jumlah waktu dalam detik yang diperlukan untuk menggunakan backlog saat ini jika tidak ada data baru yang masuk dan throughput tidak berubah. Estimasi 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 menskalakan ke atas atau ke bawah.

Visualisasi data yang menampilkan diagram detik backlog dalam
pipeline streaming.

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

Visualisasi data yang menampilkan diagram byte backlog dalam
pipeline streaming.

Pemrosesan (khusus Streaming Engine)

Saat Anda menjalankan pipeline Apache Beam di layanan Dataflow, tugas pipeline akan berjalan di VM pekerja. Dasbor Pemrosesan memberikan informasi tentang jumlah waktu pemrosesan tugas di VM pekerja. Dasbor menyertakan 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 longtail yang menyebabkan latensi sistem secara keseluruhan tinggi atau berdampak negatif pada keaktualan data secara keseluruhan.

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

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

Diagram Latensi pemrosesan pengguna menurut tahap menunjukkan persentil ke-99 untuk semua tugas yang diproses pekerja yang dikelompokkan menurut tahap. Jika kode pengguna menyebabkan bottleneck, diagram ini menunjukkan tahap mana yang berisi bottleneck. 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, di tab Execution details, untuk Graph view, pilih Stage workflow. Dalam grafik Alur kerja tahap, temukan tahap yang memiliki latensi yang 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 pelacakan tumpukan pada rentang waktu yang benar. Cari operasi pengguna yang Anda identifikasi di langkah sebelumnya.

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

Paralelisme (khusus Streaming Engine)

Diagram Pemrosesan paralel menunjukkan perkiraan jumlah kunci yang digunakan untuk pemrosesan data untuk setiap tahap. Dataflow diskalakan berdasarkan paralelisme pipeline.

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

Metrik paralelisme dapat berguna untuk menemukan hot key atau bottleneck untuk pipeline yang lambat atau macet.

Visualisasi data yang menampilkan diagram pemrosesan paralel dalam
pipeline streaming.

Persistensi (khusus Streaming Engine)

Dasbor Persistensi memberikan informasi tentang kecepatan penyimpanan persisten ditulis dan dibaca 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. Coder pipeline dan penyimpanan dalam cache memengaruhi byte yang dibaca dan ditulis. Byte penyimpanan mungkin berbeda dengan byte yang diproses karena penggunaan penyimpanan internal dan penyimpanan dalam cache.

Dasbor mencakup dua diagram berikut:

  • Operasi tulis penyimpanan
  • Pembacaan penyimpanan

Visualisasi data yang menampilkan diagram operasi tulis penyimpanan untuk
pipeline streaming.

Duplikat (khusus Streaming Engine)

Diagram Duplikat menunjukkan 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 menyebabkan duplikat. Dataflow menjamin pengiriman exactly once, yang berarti duplikat akan otomatis difilter. Tahap downstream diselamatkan dari pemrosesan ulang elemen yang sama, yang 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 (khusus Streaming Engine)

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

Dasbor mencakup dua diagram berikut:

  • Timer yang tertunda menurut tahap
  • Pemrosesan timer menurut tahap

Diagram ini menunjukkan kecepatan jendela yang tertunda atau sedang diproses pada titik waktu tertentu. Diagram Timer yang tertunda menurut tahap menunjukkan jumlah jendela yang tertunda karena bottleneck. 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 tertunda di tahap tertentu.

Visualisasi data yang menunjukkan jumlah timer yang telah diproses di tahap tertentu.

Pemakaian CPU

Pemakaian 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:

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

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

Pemakaian memori

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

  • Penggunaan memori pekerja maksimum (estimasi byte per detik)
  • 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 titik yang berbeda 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 membandingkan perkiraan memori yang digunakan oleh pekerja dengan batas memori dalam byte.

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

Diagram Penggunaan memori menunjukkan estimasi 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 data menggunakan Pub/Sub, metrik input dan metrik output akan ditampilkan.

Semua metrik input dari jenis yang sama digabungkan, dan semua metrik output juga digabungkan. Misalnya, semua metrik Pub/Sub dikelompokkan dalam satu bagian. Setiap jenis metrik diatur ke dalam bagian terpisah. Untuk mengubah metrik yang ditampilkan, pilih bagian di sebelah kiri yang paling mewakili 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 kapasitas permintaan API untuk membaca atau menulis data oleh sumber atau sink seiring waktu. Jika rasio ini turun menjadi nol, atau menurun secara signifikan selama jangka waktu yang lama secara relatif terhadap perilaku yang diharapkan, pipeline mungkin diblokir agar tidak melakukan operasi tertentu. Selain itu, mungkin tidak ada data yang dapat dibaca. Dalam hal ini, tinjau langkah-langkah tugas yang memiliki watermark 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 oleh sumber atau sink seiring 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 oleh sumber atau sink 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 sink, seperti kode error Pub/Sub.

Diagram yang menampilkan tingkat permintaan API yang gagal untuk membaca atau menulis data oleh sumber atau sink dari waktu ke waktu.