Memantau lingkungan dengan Cloud Monitoring

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Anda dapat menggunakan Cloud Monitoring dan Cloud Logging dengan Cloud Composer.

Cloud Monitoring memberikan visibilitas pada performa, waktu beroperasi, dan kondisi keseluruhan aplikasi yang didukung oleh teknologi cloud. Cloud Monitoring mengumpulkan dan menyerap metrik, peristiwa, dan metadata dari Cloud Composer untuk menghasilkan insight di dasbor dan diagram. Anda dapat menggunakan Cloud Monitoring untuk memahami performa dan kondisi lingkungan Cloud Composer dan metrik Airflow.

Logging merekam log yang dihasilkan oleh penjadwal dan penampung pekerja di cluster lingkungan Anda. Log ini berisi informasi dependensi Airflow dan tingkat sistem untuk membantu proses debug. Untuk mengetahui informasi tentang cara melihat log, lihat Melihat log Airflow.

Sebelum memulai

  • Izin berikut diperlukan untuk mengakses log dan metrik untuk lingkungan Cloud Composer Anda:

    • Akses hanya baca ke log dan metrik: logging.viewer dan monitoring.viewer
    • Akses hanya baca ke log, termasuk log pribadi: logging.privateLogViewer
    • Akses baca/tulis ke metrik: monitoring.editor

    Untuk mengetahui informasi selengkapnya tentang izin dan peran lain untuk Cloud Composer, lihat Kontrol akses.

  • Untuk menghindari logging duplikat, Cloud Logging untuk Google Kubernetes Engine dinonaktifkan.

  • Cloud Logging menghasilkan entri untuk setiap status dan peristiwa yang terjadi di project Google Cloud Anda. Anda dapat menggunakan filter pengecualian untuk mengurangi volume log, termasuk log yang dihasilkan Cloud Logging untuk Cloud Composer.

Metrik lingkungan

Anda dapat menggunakan metrik lingkungan untuk memeriksa penggunaan resource dan kondisi lingkungan Cloud Composer.

Kesehatan lingkungan

Untuk memeriksa kondisi lingkungan, Anda dapat menggunakan metrik status kesehatan berikut:

Metrik API
Kesehatan lingkungan composer.googleapis.com/environment/healthy

Cloud Composer menjalankan DAG liveness bernama airflow_monitoring, yang berjalan sesuai jadwal dan melaporkan kondisi lingkungan sebagai berikut:

  • Jika operasi DAG keaktifan berhasil diselesaikan, status kesehatan adalah True.
  • Jika operasi DAG keaktifan gagal, status kesehatannya adalah False.

DAG liveness disimpan di folder dags/ dan terlihat di UI Airflow. Frekuensi dan konten DAG status aktif tidak dapat diubah dan tidak boleh dimodifikasi. Perubahan pada DAG liveness tidak dipertahankan.

Pemeriksaan dependensi lingkungan

Cloud Composer secara berkala memeriksa apakah lingkungan dapat menjangkau layanan yang diperlukan untuk operasinya dan apakah lingkungan tersebut memiliki izin yang cukup untuk berinteraksi dengan layanan tersebut. Contoh layanan yang diperlukan untuk operasi lingkungan adalah Artifact Registry, Cloud Logging, dan Cloud Monitoring.

Metrik berikut tersedia untuk pemeriksaan dependensi lingkungan:

Metrik API Deskripsi
Jumlah pemeriksaan dependensi composer.googleapis.com/environment/health/dependency_check_count Metrik ini melacak frekuensi pemeriksaan keterjangkauan dilakukan pada layanan yang diperlukan untuk pengoperasian lingkungan.
Jumlah pemeriksaan izin dependensi composer.googleapis.com/environment/health/dependency_permissions_check_count Metrik ini melacak frekuensi pemeriksaan izin dilakukan pada layanan yang diperlukan untuk operasi lingkungan.

Kesehatan database

Untuk memeriksa kondisi database, Anda dapat menggunakan metrik status respons berikut: composer.googleapis.com/environment/database_health.

Pod pemantauan Airflow mengirim ping ke database setiap menit dan melaporkan status kesehatan sebagai True jika koneksi SQL dapat dibuat atau False jika tidak.

Metrik database

Metrik lingkungan berikut tersedia untuk database metadata Airflow yang digunakan oleh lingkungan Cloud Composer. Anda dapat menggunakan metrik ini untuk memantau performa dan penggunaan resource instance database lingkungan Anda.

Misalnya, Anda mungkin ingin meningkatkan ukuran lingkungan jika lingkungan mendekati batas resource. Atau, Anda mungkin ingin mengoptimalkan ukuran database dengan melakukan pembersihan database.

Metrik database API Deskripsi
Penggunaan CPU database composer.googleapis.com/environment/database/cpu/usage_time
Core CPU database composer.googleapis.com/environment/database/cpu/reserved_cores
Pemakaian CPU database composer.googleapis.com/environment/database/cpu/utilization
Penggunaan Memori Database composer.googleapis.com/environment/database/memory/bytes_used
Kuota Memori Database composer.googleapis.com/environment/database/memory/quota
Penggunaan Memori Database composer.googleapis.com/environment/database/memory/utilization
Penggunaan Disk Database composer.googleapis.com/environment/database/disk/bytes_used
Kuota Disk Database composer.googleapis.com/environment/database/disk/quota
Penggunaan Disk Database composer.googleapis.com/environment/database/disk/utilization
Batas Koneksi Database composer.googleapis.com/environment/database/network/max_connections
Koneksi Database composer.googleapis.com/environment/database/network/connections
Database tersedia untuk failover composer.googleapis.com/environment/database/available_for_failover True jika instance Cloud SQL lingkungan berada dalam mode ketersediaan tinggi dan siap untuk failover.
Jumlah permintaan failover otomatis database composer.googleapis.com/environment/database/auto_failover_request_count Jumlah total permintaan failover otomatis dari instance Cloud SQL lingkungan.

Metrik pekerja

Metrik lingkungan berikut tersedia untuk pekerja Airflow di lingkungan Cloud Composer 3 dan Cloud Composer 2.

Metrik ini digunakan untuk menskalakan secara otomatis jumlah pekerja di lingkungan Anda. Horizontal Pod Autoscaler menetapkan metrik ini, lalu komponen lingkungan Airflow Worker Set Controller menggunakan metrik ini untuk menskalakan jumlah pekerja Airflow ke atas atau ke bawah, bergantung pada nilai metrik ini.

Metrik pekerja API
Target Faktor Skala composer.googleapis.com/environment/worker/scale_factor_target

Metrik penjadwal

Nama API Deskripsi
Penjadwal aktif composer.googleapis.com/environment/active_schedulers Jumlah instance penjadwal yang aktif.

Metrik pemicu

Nama API Deskripsi
Pemicu aktif composer.googleapis.com/environment/active_triggerers Jumlah instance pemicu yang aktif.

Metrik server web

Metrik lingkungan berikut tersedia untuk server web Airflow yang digunakan oleh lingkungan Cloud Composer. Anda dapat menggunakan metrik ini untuk memeriksa performa dan penggunaan resource instance server web Airflow lingkungan Anda.

Misalnya, Anda mungkin ingin meningkatkan skala server web dan parameter performa jika terus mendekati batas resource.

Nama API Deskripsi
Server web aktif composer.googleapis.com/environment/active_webservers Jumlah instance server web yang aktif.
Penggunaan CPU server web composer.googleapis.com/environment/web_server/cpu/usage_time
Kuota CPU server web composer.googleapis.com/environment/web_server/cpu/reserved_cores
Penggunaan memori server web composer.googleapis.com/environment/web_server/memory/bytes_used
Kuota memori server web composer.googleapis.com/environment/web_server/memory/quota

Metrik DAG

Untuk membantu Anda memantau efisiensi DAG yang berjalan dan mengidentifikasi tugas yang menyebabkan latensi tinggi, metrik DAG berikut tersedia.

Metrik DAG API
Jumlah operasi DAG composer.googleapis.com/workflow/run_count
Durasi setiap operasi DAG composer.googleapis.com/workflow/run_duration
Jumlah tugas yang dijalankan composer.googleapis.com/workflow/task/run_count
Durasi setiap tugas yang dijalankan composer.googleapis.com/workflow/task/run_duration

Cloud Monitoring hanya menampilkan metrik untuk alur kerja yang selesai dan tugas yang berjalan (berhasil atau gagal). Tidak Ada Data ditampilkan saat tidak ada aktivitas alur kerja dan untuk alur kerja dan tugas yang sedang berjalan.

Metrik Celery Executor

Metrik Celery Executor berikut tersedia. Metrik ini dapat membantu Anda menentukan apakah ada resource pekerja yang memadai di lingkungan Anda.

Metrik Celery Executor API
Jumlah tugas dalam antrean composer.googleapis.com/environment/task_queue_length
Jumlah pekerja Celery online composer.googleapis.com/environment/num_celery_workers

Metrik Airflow

Metrik Airflow berikut tersedia. Metrik ini sesuai dengan metrik yang disediakan oleh Airflow.

Nama API Nama di Airflow Deskripsi
Kode keluar tugas Celery bukan nol composer.googleapis.com/environment/celery/execute_command_failure_count celery.execute_command.failure Jumlah kode exit selain nol dari tugas Celery.
Waktu tunggu publikasi tugas Celery composer.googleapis.com/environment/celery/task_timeout_error_count celery.task_timeout_error Jumlah error AirflowTaskTimeout yang ditampilkan saat memublikasikan Tugas ke Broker Celery.
Durasi pengambilan DAG serial composer.googleapis.com/environment/collect_db_dag_duration collect_db_dags Waktu yang diperlukan untuk mengambil semua DAG Serial dari database.
Error refresh DAG composer.googleapis.com/environment/dag_callback/exception_count dag.callback_exceptions Jumlah pengecualian yang ditampilkan dari callback DAG. Jika hal ini terjadi, berarti callback DAG tidak berfungsi.
Error refresh DAG composer.googleapis.com/environment/dag_file/refresh_error_count dag_file_refresh_error Jumlah kegagalan saat memuat file DAG.
Waktu pemuatan file DAG composer.googleapis.com/environment/dag_processing/last_duration dag_processing.last_duration.<dag_file> Waktu yang diperlukan untuk memuat file DAG tertentu.
Waktu sejak pemrosesan file DAG composer.googleapis.com/environment/dag_processing/last_run_elapsed_time dag_processing.last_run.seconds_ago.<dag_file> Detik sejak file DAG terakhir kali diproses.
Jumlah jeda DagFileProcessorManager composer.googleapis.com/environment/dag_processing/manager_stall_count dag_processing.manager_stalls Jumlah proses DagFileProcessorManager yang terhenti.
Error penguraian DAG composer.googleapis.com/environment/dag_processing/parse_error_count dag_processing.import_errors Jumlah error yang dihasilkan saat mengurai file DAG.
Menjalankan proses penguraian DAG composer.googleapis.com/environment/dag_processing/processes dag_processing.processes Jumlah proses penguraian DAG yang sedang berjalan.
Waktu tunggu prosesor composer.googleapis.com/environment/dag_processing/processor_timeout_count dag_processing.processor_timeouts Jumlah pemroses file yang dihentikan karena membutuhkan waktu terlalu lama.
Waktu yang diperlukan untuk memindai dan mengimpor semua file DAG composer.googleapis.com/environment/dag_processing/total_parse_time dag_processing.total_parse_time Total waktu yang diperlukan untuk memindai dan mengimpor semua file DAG sekali.
Ukuran bag DAG saat ini composer.googleapis.com/environment/dagbag_size dagbag_size Jumlah DAG yang ditemukan saat penjadwal menjalankan pemindaian berdasarkan konfigurasinya.
Notifikasi email SLA gagal terkirim composer.googleapis.com/environment/email/sla_notification_failure_count sla_email_notification_failure Jumlah upaya notifikasi email SLA yang gagal.
Membuka slot di eksekutor composer.googleapis.com/environment/executor/open_slots executor.open_slots Jumlah slot terbuka di eksekutor.
Tugas dalam antrean di eksekutor composer.googleapis.com/environment/executor/queued_tasks executor.queued_tasks Jumlah tugas dalam antrean di eksekutor.
Menjalankan tugas di eksekutor composer.googleapis.com/environment/executor/running_tasks executor.running_tasks Jumlah tugas yang berjalan di eksekutor.
Keberhasilan/kegagalan instance tugas composer.googleapis.com/environment/finished_task_instance_count ti_failures, ti_successes Keberhasilan/kegagalan instance tugas secara keseluruhan.
Tugas yang dimulai/selesai composer.googleapis.com/environment/job/count <job_name>_start, <job_name>_end Jumlah tugas yang dimulai/selesai, seperti SchedulerJob, LocalTaskJob.
Kegagalan heartbeat tugas composer.googleapis.com/environment/job/heartbeat_failure_count <job_name>_heartbeat_failure Jumlah heartbeat yang gagal untuk tugas.
Tugas yang dibuat per operator composer.googleapis.com/environment/operator/created_task_instance_count task_instance_created-<operator_name> Jumlah instance tugas yang dibuat untuk operator tertentu.
Eksekusi operator composer.googleapis.com/environment/operator/finished_task_instance_count operator_failures_<operator_name>, operator_successes_<operator_name> Jumlah instance tugas yang telah selesai per operator
Membuka slot di kumpulan composer.googleapis.com/environment/pool/open_slots pool.open_slots.<pool_name> Jumlah slot terbuka dalam kumpulan.
Slot yang diantrekan dalam kumpulan composer.googleapis.com/environment/pool/queued_slots pool.queued_slots.<pool_name> Jumlah slot yang diantrekan dalam kumpulan.
Menjalankan slot dalam kumpulan composer.googleapis.com/environment/pool/running_slots pool.running_slots.<pool_name> Jumlah slot yang berjalan dalam kumpulan.
Tugas yang tidak dapat dijalankan di kumpulan tugas composer.googleapis.com/environment/pool/starving_tasks pool.starving_tasks.<pool_name> Jumlah tugas yang kehabisan resource di kumpulan.
Waktu yang dihabiskan di bagian penting penjadwal composer.googleapis.com/environment/scheduler/critical_section_duration scheduler.critical_section_duration Waktu yang dihabiskan di bagian penting loop penjadwal. Hanya satu penjadwal yang dapat memasuki loop ini dalam satu waktu.
Kegagalan kunci bagian kritis composer.googleapis.com/environment/scheduler/critical_section_lock_failure_count scheduler.critical_section_busy Jumlah waktu proses penjadwal mencoba mendapatkan kunci pada bagian kritis (diperlukan untuk mengirim tugas ke eksekutor) dan menemukannya terkunci oleh proses lain.
Tugas yang dihentikan secara eksternal composer.googleapis.com/environment/scheduler/task/externally_killed_count scheduler.tasks.killed_externally Jumlah tugas yang dihentikan secara eksternal.
Tugas yang tidak memiliki tugas induk composer.googleapis.com/environment/scheduler/task/orphan_count scheduler.orphaned_tasks.cleared, scheduler.orphaned_tasks.adopted Jumlah tugas yatim piatu yang dihapus/diadopsi oleh penjadwal.
Tugas yang berjalan/kehabisan resource/dapat dieksekusi composer.googleapis.com/environment/scheduler/tasks scheduler.tasks.running, scheduler.tasks.starving, scheduler.tasks.executable Jumlah tugas yang berjalan/kehabisan resource/dapat dieksekusi.
Heartbeat penjadwal composer.googleapis.com/environment/scheduler_heartbeat_count scheduler_heartbeat Heartbeat penjadwal.
Notifikasi callback SLA yang gagal composer.googleapis.com/environment/sla_callback_notification_failure_count sla_callback_notification_failure Jumlah upaya notifikasi panggilan balik SLA yang gagal.
Kegagalan pengecualian poking sensor smart composer.googleapis.com/environment/smart_sensor/exception_failures smart_sensor_operator.exception_failures Jumlah kegagalan yang disebabkan oleh pengecualian dalam loop poking sensor cerdas sebelumnya.
Kegagalan infrastruktur poking sensor cerdas composer.googleapis.com/environment/smart_sensor/infra_failures smart_sensor_operator.infra_failures Jumlah kegagalan infrastruktur dalam loop poking sensor smart sebelumnya.
Pengecualian poking sensor cerdas composer.googleapis.com/environment/smart_sensor/poked_exception smart_sensor_operator.poked_exception Jumlah pengecualian dalam loop poking sensor cerdas sebelumnya.
Sensor cerdas berhasil memicu tugas composer.googleapis.com/environment/smart_sensor/poked_success smart_sensor_operator.poked_success Jumlah tugas yang baru berhasil didorong oleh sensor smart dalam loop dorongan sebelumnya.
Tugas yang disentuh sensor cerdas composer.googleapis.com/environment/smart_sensor/poked_tasks smart_sensor_operator.poked_tasks Jumlah tugas yang didorong oleh sensor cerdas dalam loop dorongan sebelumnya.
Instance tugas yang sebelumnya berhasil composer.googleapis.com/environment/task_instance/previously_succeeded_count previously_succeeded Jumlah instance tugas yang sebelumnya berhasil.
Tugas zombie yang dihentikan composer.googleapis.com/environment/zombie_task_killed_count zombies_killed Jumlah tugas zombie yang dihentikan.
Durasi operasi DAG composer.googleapis.com/workflow/dag/run_duration dagrun.duration.success.<dag_id>, dagrun.duration.failed.<dag_id> Waktu yang diperlukan DagRun untuk mencapai status berhasil/gagal.
Durasi pemeriksaan dependensi DAG composer.googleapis.com/workflow/dependency_check_duration dagrun.dependency-check.<dag_id> Waktu yang diperlukan untuk memeriksa dependensi DAG. Metrik ini berbeda dengan metrik pemeriksaan izin dan dependensi lingkungan dan berlaku untuk DAG
Penundaan jadwal operasi DAG composer.googleapis.com/workflow/schedule_delay dagrun.schedule_delay.<dag_id> Waktu penundaan antara tanggal mulai DagRun terjadwal dan tanggal mulai DagRun yang sebenarnya.
Tugas yang sudah selesai composer.googleapis.com/workflow/task_instance/finished_count ti.finish.<dag_id>.<task_id>.<state> Jumlah tugas yang telah selesai di DAG tertentu.
Durasi pengoperasian instance tugas composer.googleapis.com/workflow/task_instance/run_duration dag.<dag_id>.<task_id>.duration Waktu yang diperlukan untuk menyelesaikan tugas.
Memulai tugas composer.googleapis.com/workflow/task_instance/started_count ti.start.<dag_id>.<task_id> Jumlah tugas yang dimulai dalam DAG tertentu.
Durasi antrean instance tugas composer.googleapis.com/workflow/task_instance/queued_duration dag.<dag_id>.<task_id>.queued_duration Waktu yang dihabiskan tugas dalam status Dalam Antrean sebelum beralih ke status Berjalan.
Tugas dihapus dari DAG composer.googleapis.com/workflow/task/removed_from_dag_count task_removed_from_dag.<dag_id> Jumlah tugas yang dihapus untuk DAG tertentu (yaitu, tugas tidak ada lagi di DAG).
Tugas dipulihkan ke DAG composer.googleapis.com/workflow/task/restored_to_dag_count task_restored_to_dag.<dag_id> Jumlah tugas yang dipulihkan untuk DAG tertentu (yaitu, instance tugas yang sebelumnya dalam status REMOVED di DB ditambahkan ke file DAG).
Penundaan jadwal tugas composer.googleapis.com/workflow/task/schedule_delay dagrun.schedule_delay.<dag_id> Waktu yang berlalu antara start_date tugas pertama dan perkiraan awal dagrun.
Jumlah total pemicu yang berjalan composer.googleapis.com/workload/triggerer/num_running_triggers triggers.running Jumlah pemicu yang berjalan per instance pemicu.
Pemicu pemblokiran composer.googleapis.com/environment/trigger/blocking_count triggers.blocked_main_thread Jumlah pemicu yang memblokir thread utama (kemungkinan karena tidak sepenuhnya asinkron).
Pemicu yang gagal composer.googleapis.com/environment/trigger/failed_count triggers.failed Jumlah pemicu yang gagal dengan error sebelum dapat memicu peristiwa.
Pemicu yang berhasil composer.googleapis.com/environment/trigger/succeeded_count triggers.succeeded Jumlah pemicu yang telah memicu setidaknya satu peristiwa.

Menggunakan Monitoring untuk lingkungan Cloud Composer

Konsol

Anda dapat menggunakan Metrics Explorer untuk menampilkan metrik yang terkait dengan lingkungan dan DAG:

  • Resource Lingkungan Cloud Composer berisi metrik untuk lingkungan.

    Untuk menampilkan metrik untuk lingkungan tertentu, filter metrik menurut label environment_name. Anda juga dapat memfilter menurut label lain, seperti lokasi lingkungan atau versi gambar.

  • Resource Alur Kerja Cloud Composer berisi metrik untuk DAG.

    Untuk menampilkan metrik untuk DAG atau tugas tertentu, filter metrik menurut label workflow_name dan task_name. Anda juga dapat memfilter menurut label lain, seperti status tugas atau nama operator Airflow.

API dan gcloud

Anda dapat membuat dan mengelola dasbor dan widget kustom melalui Cloud Monitoring API dan perintah gcloud monitoring dashboards. Untuk informasi selengkapnya, lihat Mengelola dasbor menurut API.

Untuk informasi selengkapnya tentang resource, metrik, dan filter, lihat referensi untuk Cloud Monitoring API:

Menggunakan pemberitahuan Cloud Monitoring

Anda dapat membuat kebijakan pemberitahuan untuk memantau nilai metrik dan memberi tahu Anda saat metrik tersebut melanggar ketentuan.

  1. Di konsol Google Cloud, buka halaman  Alerting:

    Buka Pemberitahuan

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. ika Anda belum membuat saluran notifikasi dan ingin menerima notifikasi, klik Edit Notification Channels dan tambahkan saluran notifikasi Anda. Kembali ke halaman Alerting setelah menambahkan saluran.
  3. Dari halaman Alerting, pilih Create policy.
  4. Untuk memilih metrik, luaskan menu Pilih metrik, lalu lakukan tindakan berikut:
    1. Untuk membatasi menu pada entri yang relevan, masukkan Cloud Composer ke kolom filter. Jika tidak ada hasil setelah memfilter menu, nonaktifkan tombol Hanya tampilkan resource & metrik aktif.
    2. Untuk Jenis resource, pilih Cloud Composer Environment atau Cloud Composer Workflow.
    3. Pilih Kategori metrik dan Metrik, lalu pilih Terapkan.
  5. Klik Berikutnya.
  6. Setelan di halaman Konfigurasi pemicu notifikasi menentukan kapan notifikasi dipicu. Pilih jenis kondisi dan, jika perlu, tentukan batasnya. Untuk informasi selengkapnya, lihat Membuat kebijakan pemberitahuan batas metrik.
  7. Klik Berikutnya.
  8. Opsional: Untuk menambahkan notifikasi ke kebijakan pemberitahuan, klik Notification channels. Dalam dialog ini, pilih satu atau beberapa saluran notifikasi dari menu, lalu klik OK.
  9. Opsional: Perbarui Incident autoclose duration. Kolom ini menentukan kapan Monitoring akan menutup insiden jika data metrik tidak ada.
  10. Opsional: Klik Documentation, lalu tambahkan informasi apa pun yang ingin Anda sertakan dalam pesan notifikasi.
  11. Klik Alert name dan masukkan nama untuk kebijakan pemberitahuan itu.
  12. Klik Create Policy.
Untuk mengetahui informasi selengkapnya, lihat Kebijakan pemberitahuan.

Langkah selanjutnya