Halaman ini menunjukkan cara mengonfigurasi Google Kubernetes Engine (GKE) untuk mengumpulkan log dan metrik untuk cluster Ray yang berjalan di Google Kubernetes Engine (GKE), serta cara melihat log dan metrik Ray di Cloud Logging dan Cloud Monitoring.
Untuk mengetahui informasi selengkapnya tentang Ray dan KubeRay, lihat Ringkasan Ray di Google Kubernetes Engine (GKE).
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah
gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang dijalankan dalam dokumen ini.
Persyaratan dan batasan
- Anda harus mengaktifkan logging sistem dan workload di cluster GKE yang ada sebelum mengaktifkan pengumpulan log untuk cluster Ray.
- Jika Anda mengaktifkan pengumpulan log untuk cluster Ray di cluster GKE yang ada, GKE hanya akan mengumpulkan log dari Pod Ray yang baru dibuat, bukan dari Pod Ray yang ada.
- Untuk cluster GKE Standard, Anda harus mengaktifkan Google Cloud Managed Service for Prometheus untuk mengaktifkan pengumpulan metrik untuk cluster Ray. Untuk cluster Autopilot, Google Cloud Managed Service for Prometheus diaktifkan secara default.
- Anda tidak boleh menentukan volume bernama
ray-logsdi container Ray mana pun di cluster Ray. Jika tidak, GKE tidak akan mengumpulkan log. - Logging JSON tersedia di GKE versi v1.35.1-gke.1616000 dan yang lebih baru. Untuk mengaktifkan logging JSON terstruktur, konfigurasikan variabel lingkungan tertentu dalam spesifikasi container Ray Anda.
Mengaktifkan pengumpulan log untuk cluster Ray
Anda dapat mengaktifkan pengumpulan log untuk cluster Ray dengan cluster GKE Autopilot atau Standard yang baru atau yang sudah ada. Log Ray yang dikumpulkan GKE dari cluster Ray diklasifikasikan sebagai log container. Hal ini mencakup semua log yang dihasilkan oleh node header dan pekerja cluster Ray.
Anda dapat mengaktifkan pengumpulan log untuk cluster Ray menggunakan Google Cloud konsol atau gcloud CLI.
Konsol
Buka halaman Google Kubernetes Engine di Google Cloud konsol.
Klik Buat , lalu di bagian Standard atau Autopilot, klik Konfigurasi.
Dari panel navigasi, pada bagian Cluster, klik Fitur.
Di bagian Operasi, pastikan kotak centang Sistem dan Workload dicentang.
Di bagian AI dan Machine Learning , pilih Aktifkan Operator Ray , lalu pilih Aktifkan pengumpulan log untuk cluster Ray.
Klik Buat.
Untuk cluster Standard, Anda juga harus mengaktifkan Google Cloud Managed Service for Prometheus.
gcloud
Buat cluster menggunakan opsi --addons=RayOperator dan opsi --enable-ray-cluster-logging:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--addons=RayOperator \
--enable-ray-cluster-logging
Ganti kode berikut:
CLUSTER_NAME: nama cluster baru.LOCATION: lokasi cluster baru, misalnya, us-central1.
Anda dapat mengaktifkan pengumpulan log untuk cluster Ray di cluster yang ada dengan
menggunakan
gcloud container clusters update
perintah dengan opsi --addons=RayOperator dan opsi
--enable-ray-cluster-logging.
Melihat log Ray
Anda dapat melihat log yang dikumpulkan dari cluster Ray yang berjalan di GKE menggunakan Logging.
Buka halaman Cloud Logging di Google Cloud konsol.
Buka editor kueri dan tempelkan ekspresi Anda ke editor kueri
Klik Run query
Anda dapat menggunakan contoh kueri berikut di Logs Explorer:
| Nama kueri/filter | Ekspresi |
|---|---|
| Semua log Ray | resource.type="k8s_container" labels."k8s-pod/ray_io/is-ray-node"="yes" |
| Semua log head Ray | resource.type="k8s_container" labels."k8s-pod/ray_io/node-type"="head" |
| Semua log di cluster Ray | resource.type="k8s_container" labels."k8s-pod/ray_io/cluster"="RAY_CLUSTER_NAME" |
| Semua log driver dari tugas Ray | resource.type="k8s_container" jsonPayload.ray_submission_id="RAY_JOB_SUBMISSION_ID" |
| Semua log pekerja dari tugas Ray | resource.type="k8s_container" labels."k8s-pod/ray_io/cluster"="RAY_CLUSTER_NAME" labels."k8s-pod/ray_io/node-type"="worker" jsonPayload.filename=~"/tmp/ray/session_latest/logs/worker-(.*).out" |
Mengaktifkan logging terstruktur yang ditingkatkan (direkomendasikan)
Logging terstruktur yang ditingkatkan tersedia untuk GKE versi v1.35.1-gke.1616000 dan yang lebih baru.
Secara default, log Ray diambil sebagai string teks tidak terstruktur dalam kolom jsonPayload.log di Cloud Logging. Untuk meningkatkan kueri, analisis, dan kemampuan observasi, Anda dapat mengonfigurasi cluster Ray untuk menghasilkan log dalam format JSON terstruktur. Format yang ditingkatkan ini mengurai log menjadi pasangan nilai kunci yang mendetail, sehingga memungkinkan kueri berbasis kolom yang lebih cepat pada atribut seperti task_id dan job_id. Logging terstruktur yang ditingkatkan memberikan pelabelan tingkat keparahan yang benar, mencegah pemisahan log multi-baris, dan terintegrasi dengan lancar dengan fitur Cloud Logging untuk analisis dan proses debug yang lebih baik.
Untuk mengaktifkan output JSON terstruktur, selesaikan langkah-langkah berikut:
- Aktifkan pengumpulan log untuk cluster Ray Anda
Tetapkan variabel lingkungan berikut dalam spesifikasi container Ray Anda di manifes YAML
RayCluster:RAY_LOGGING_CONFIG_ENCODING="JSON": mengonfigurasi log aplikasi Ray (Ray Core, aktor, dan tugas) untuk menggunakan encoding JSON terstruktur.RAY_BACKEND_LOG_JSON="1": mengonfigurasi log sistem Ray (seperti dari server GCS dan Raylet) agar dibuat dalam format JSON terstruktur.
Misalnya, manifes RayCluster berikut menyertakan bagian env untuk semua container Ray, dalam spesifikasi headGroupSpec dan workerGroupSpecs:
# Example snippet for a RayCluster manifest apiVersion: ray.io/v1 kind: RayCluster metadata: name: raycluster-structured spec: headGroupSpec: template: spec: containers: - name: ray-head image: rayproject/ray:2.54.0 # Replace with your desired Ray image # ... other container settings env: - name: RAY_LOGGING_CONFIG_ENCODING value: "JSON" - name: RAY_BACKEND_LOG_JSON value: "1" workerGroupSpecs: - groupName: small-group replicas: 1 minReplicas: 1 maxReplicas: 5 template: spec: containers: - name: ray-worker image: rayproject/ray:2.54.0 # Replace with your desired Ray image # ... other container settings env: - name: RAY_LOGGING_CONFIG_ENCODING value: "JSON" - name: RAY_BACKEND_LOG_JSON value: "1"Terapkan manifes RayCluster yang diupdate:
kubectl apply -f your-raycluster.yaml
Kueri untuk log terstruktur
| Nama kueri/filter | Ekspresi |
|---|---|
| Semua log error untuk ID Tugas Ray tertentu | resource.type="k8s_container" labels."k8s-pod/ray_io/is-ray-node"="yes" severity=ERROR jsonPayload.job_id="YOUR_JOB_ID" |
| Log untuk ID proses pekerja Ray tertentu | resource.type="k8s_container" labels."k8s-pod/ray_io/is-ray-node"="yes" jsonPayload.worker_id="YOUR_WORKER_ID" |
| Log error untuk ID Tugas tertentu di Pod pekerja tertentu | resource.type="k8s_container" resource.labels.pod_name="YOUR_WORKER_POD_NAME" labels."k8s-pod/ray_io/is-ray-node"="yes" severity=ERROR jsonPayload.task_id="YOUR_TASK_ID" |
Mengaktifkan pengumpulan metrik untuk cluster Ray
Anda dapat mengaktifkan pengumpulan metrik untuk cluster Ray dengan cluster GKE Autopilot atau Standard yang baru atau yang sudah ada.
Setelah Anda mengaktifkan pengumpulan metrik untuk cluster Ray, GKE akan mengumpulkan metrik dari cluster Ray yang ada dan cluster Ray baru. GKE mengumpulkan semua metrik sistem yang diekspor oleh Ray dalam format Prometheus.
Anda dapat mengaktifkan pengumpulan metrik untuk cluster Ray menggunakan Google Cloud konsol atau gcloud CLI.
Konsol
Buka halaman Google Kubernetes Engine di Google Cloud konsol.
Klik Buat , lalu di bagian Standard atau Autopilot, klik Konfigurasi.
Dari panel navigasi, pada bagian Cluster, klik Fitur.
Di bagian Operasi, pastikan kotak centang Sistem dan Workload dicentang.
Di bagian AI dan Machine Learning , pilih Aktifkan Operator Ray , lalu pilih Aktifkan pengumpulan metrik untuk cluster Ray.
Klik Buat.
Untuk cluster Standard, Anda juga harus mengaktifkan Google Cloud Managed Service for Prometheus.
gcloud
Buat cluster menggunakan opsi --addons=RayOperator dan opsi --enable-ray-cluster-monitoring:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--addons=RayOperator \
--enable-ray-cluster-monitoring
Ganti kode berikut:
CLUSTER_NAME: nama cluster baru.LOCATION: lokasi cluster baru, misalnya, us-central1.
Anda dapat mengaktifkan pengumpulan log untuk cluster Ray di cluster yang ada dengan
menggunakan
gcloud container clusters update
perintah dengan opsi --addons=RayOperator dan opsi
--enable-ray-cluster-monitoring.
Melihat metrik Ray
Google Cloud Managed Service for Prometheus menyediakan dasbor Ringkasan Ray di GKE yang telah dikonfigurasi sebelumnya dan menawarkan tampilan terpusat metrik Ray utama. Ini adalah cara yang direkomendasikan untuk memulai pemantauan cluster Ray Anda di GKE dengan cepat.
Buka dasbor Ringkasan Ray di GKE
Dasbor akan otomatis diisi saat Anda mengaktifkan pengumpulan metrik untuk cluster Ray.
Atau, jika Anda ingin menjelajahi metrik individual yang dikumpulkan dari cluster Ray yang berjalan di GKE, ikuti langkah-langkah berikut:
Buka halaman Metrics Explorer di Google Cloud konsol.
Di kolom Select a metric, Anda dapat menelusuri metrik khusus Ray. Metrik ini biasanya diawali dengan
prometheus/ray_. Contohnya mencakupprometheus/ray_worker_cpu_seconds_totalatauprometheus/ray_memory_bytes_max.Anda dapat lebih menyempurnakan penelusuran dengan memilih jenis resource yang sesuai (misalnya,
k8s_pod,k8s_container) dan memfilter berdasarkan label yang relevan dengan cluster Ray Anda (misalnya,ray.io/cluster).
Langkah berikutnya
- Pelajari tentang Ray di Kubernetes.
- Pelajari dokumentasi KubeRay.