Metrik tugas Dataflow

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

Metrik ringkasan

Metrik streaming (khusus pipeline streaming)

Metrik resource

Metrik input

Metrik output

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

Dukungan dan batasan

Saat menggunakan metrik Dataflow, perhatikan detail berikut.

  • Terkadang data pekerjaan sesekali tidak tersedia. Jika data hilang, celah 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 tak 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, lalu pilih Dataflow.
  4. Di daftar pekerjaan, klik nama pekerjaan Anda. Halaman Detail pekerjaan akan terbuka.
  5. Klik tab Metrik tugas.

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

Menggunakan Cloud Monitoring

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

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

Membuat pemberitahuan Cloud Monitoring

Dengan Cloud Monitoring, Anda dapat membuat pemberitahuan saat tugas Dataflow Anda melebihi batas yang ditentukan pengguna. Untuk membuat pemberitahuan Cloud Monitoring dari diagram metrik, klik Create alerts policy.

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, dalam 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 Anda.

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

Metrik I/O Dataflow

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

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

Metrik stage dan pekerja

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

Penskalaan otomatis

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

Visualisasi data yang menunjukkan jumlah pekerja dalam sebuah pipeline.

Untuk melihat histori perubahan penskalaan otomatis, klik tombol More History. Tabel dengan informasi tentang histori pekerja pipeline akan ditampilkan.

Tabel yang menampilkan histori histori pekerja suatu pipeline.

Throughput

Throughput adalah volume data yang diproses kapan saja. 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 menampilkan tingkat error yang diamati di semua pekerja kapan saja.

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

Keaktualan data (dengan dan tanpa Streaming Engine)

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

Setiap saat, tugas Dataflow sedang memproses beberapa elemen. Titik data dalam diagram keaktualan data menampilkan elemen dengan keterlambatan terbesar dibandingkan dengan waktu peristiwanya. Oleh karena itu, baris 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 akan tertunda, sehingga memengaruhi keaktualan data. Perbedaan signifikan antara waktu watermark dan waktu peristiwa dapat menunjukkan operasi lambat atau macet.

Untuk tugas streaming yang baru saja diperbarui, informasi status tugas dan 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 ini berisi dua diagram berikut:

  • Keaktualan data menurut tahapan
  • Keaktualan data

Visualisasi data yang menunjukkan keaktualan data di
pipeline streaming.

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

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

  • Keterbatasan Performa: Jika pipeline Anda memiliki tahap dengan latensi sistem atau log yang tinggi yang menunjukkan transformasi yang terhenti, pipeline mungkin mengalami masalah performa yang dapat meningkatkan keaktualan data. Ikuti panduan ini untuk memecahkan masalah pipeline lambat agar dapat menyelidikinya lebih lanjut.
  • Kemacetan Sumber Data: Jika sumber data Anda memiliki backlog yang bertambah, stempel waktu peristiwa elemen Anda mungkin berbeda dari watermark saat menunggu untuk diproses. Backlog besar sering kali disebabkan oleh bottleneck performa, atau masalah sumber data yang sebaiknya dideteksi dengan memantau sumber yang digunakan oleh pipeline Anda.
    • Catatan: Sumber yang tidak diurutkan seperti Pub/Sub dapat menghasilkan watermark macet meskipun saat membuat output dengan kecepatan tinggi. Situasi ini terjadi karena elemen bukan 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 umum Dataflow dapat membantu Anda memecahkan masalah tersebut.

Latensi sistem (dengan dan tanpa Streaming Engine)

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

  • Untuk beberapa sumber dan sink, latensi sistem adalah jumlah waktu maksimum sebuah elemen menunggu di dalam sumber sebelum ditulis ke semua sink.
  • Terkadang, sumber tidak memberikan nilai untuk jangka waktu saat elemen menunggu 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 ini berisi dua diagram berikut:

  • Latensi sistem berdasarkan stage
  • Latensi sistem

Visualisasi data yang menunjukkan latensi sistem di
pipeline streaming.

{i>Backlog<i}

Dasbor Backlog memberikan informasi tentang elemen yang menunggu untuk diproses. Dasbor ini berisi 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 yang tidak berubah. Perkiraan waktu backlog dihitung dari byte throughput dan backlog dari sumber input yang masih perlu diproses. Metrik ini digunakan oleh fitur penskalaan streaming untuk menentukan kapan harus meningkatkan atau menurunkan skala.

Visualisasi data yang menunjukkan diagram detik backlog dalam
pipeline streaming.

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

Visualisasi data yang menunjukkan diagram byte backlog dalam
pipeline streaming.

Pemrosesan (khusus Streaming Engine)

Saat Anda menjalankan pipeline Apache Beam di layanan Dataflow, tugas pipeline dijalankan di VM pekerja. Dasbor Processing memberikan informasi tentang jumlah waktu pemrosesan tugas di VM pekerja. Dasbor ini mencakup dua diagram berikut:

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

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

Untuk memperbaiki masalah upstream sebelum menjadi masalah 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 berdasarkan tahap menampilkan persentil ke-99 untuk semua tugas yang diproses oleh pekerja dan dikelompokkan berdasarkan tahap. Jika kode pengguna menyebabkan bottleneck, diagram ini akan menunjukkan tahap yang memiliki bottleneck. Anda dapat menggunakan langkah-langkah berikut untuk men-debug pipeline:

  1. Gunakan diagram untuk menemukan stage dengan latensi tinggi yang tidak biasa.

  2. Di halaman detail tugas, di tab Execution details, untuk Graph view, pilih Stage Workflow. Pada grafik Stage alur kerja, temukan tahap yang memiliki latensi tinggi yang tidak biasa.

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

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

Visualisasi data yang menunjukkan latensi pemrosesan pengguna berdasarkan 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 melakukan penskalaan berdasarkan paralelisme pipeline.

Saat Dataflow menjalankan pipeline, pemrosesan didistribusikan ke banyak virtual machine (VM) Compute Engine, yang juga dikenal sebagai pekerja. Layanan Dataflow secara otomatis akan memparalelkan dan mendistribusikan logika pemrosesan di pipeline Anda ke pekerja. Pemrosesan untuk setiap kunci tertentu akan 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 menunjukkan diagram pemrosesan paralel dalam
pipeline streaming.

Persistensi (khusus Streaming Engine)

Dasbor Persistensi memberikan informasi tentang kecepatan penulisan dan pembacaan penyimpanan persisten oleh tahap pipeline tertentu dalam byte per detik. Dasbor ini berisi dua diagram berikut:

  • Penulisan penyimpanan
  • Pembacaan penyimpanan

Visualisasi data yang menunjukkan diagram tulis penyimpanan untuk
pipeline streaming.

Duplikat (khusus Streaming Engine)

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 penayangan at least once adalah dapat menghasilkan duplikat. Dataflow menjamin pengiriman exactly once, yang berarti bahwa duplikat akan otomatis difilter. Stage downstream disimpan 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 sudah diproses dalam tahap pipeline tertentu. Karena jendela mengandalkan timer, metrik ini memungkinkan Anda melacak progres jendela.

Dasbor ini berisi dua diagram berikut:

  • Timer tertunda menurut stage
  • Timer memproses berdasarkan stage

Diagram ini menunjukkan seberapa sering periode tertunda atau diproses pada titik waktu tertentu. Diagram Timer tertunda menurut stage menunjukkan jumlah jendela yang tertunda karena bottleneck. Diagram Timer yang memproses berdasarkan tahapan 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 muncul dalam diagram ini.

Visualisasi data yang menunjukkan jumlah timer yang tertunda di tahap tertentu.

timer<i} yang sudah diproses dalam tahap tertentu." class="l10n-absolute-url-src" l10n-attrs-original-order="src,alt,width,class" src="https://cloud.google.com/static/dataflow/images/timers-processed.png" width="800" />

CPU utilization

Pemakaian CPU adalah jumlah CPU yang digunakan dibagi dengan jumlah CPU yang tersedia untuk diproses. Metrik per pekerja ini ditampilkan sebagai persentase. Dasbor tersebut 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

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

  • Pemakaian memori pekerja maksimum (perkiraan byte per detik)
  • Pemakaian memori (perkiraan 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, baris yang sama dalam diagram akan menampilkan data untuk beberapa pekerja. Setiap titik data dalam garis menampilkan data untuk pekerja 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 di diagram ini.

Diagram Memory utilization 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 kumpulan 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 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 menampilkan 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 dtk adalah kecepatan permintaan API untuk membaca atau menulis data oleh sumber atau sink dari waktu ke waktu. Jika laju ini turun ke nol, atau menurun secara signifikan selama jangka waktu yang lebih lama dibandingkan dengan perilaku yang diharapkan, pipeline mungkin akan diblokir sehingga tidak dapat menjalankan operasi tertentu. Selain itu, mungkin tidak ada data untuk dibaca. Dalam kasus seperti itu, tinjau langkah-langkah pekerjaan yang memiliki watermark sistem yang tinggi. Selain itu, periksa error atau indikasi tentang pemrosesan yang lambat pada log pekerja.

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

Error respons per detik berdasarkan jenis error

Error respons per detik menurut jenis error adalah rasio 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 dokumentasi kode error I/O umum. Tinjau juga dokumentasi kode error tertentu yang digunakan oleh sumber atau sink, seperti kode error Pub/Sub.

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