Dokumen ini menjelaskan cara mengonfigurasi deployment Google Kubernetes Engine agar Anda dapat menggunakan Layanan Terkelola Google Cloud untuk Prometheus guna mengumpulkan metrik dari TensorFlow Serving. Dokumen ini menunjukkan cara melakukan hal berikut:
- Siapkan TF Serving untuk melaporkan metrik.
- Konfigurasikan resource PodMonitoring untuk Managed Service for Prometheus guna mengumpulkan metrik yang diekspor.
- Akses dasbor di Cloud Monitoring untuk melihat metrik.
Petunjuk ini hanya berlaku jika Anda menggunakan koleksi terkelola dengan Managed Service for Prometheus. Jika Anda menggunakan koleksi yang di-deploy sendiri, lihat dokumentasi TF Serving untuk informasi penginstalan.
Petunjuk ini diberikan sebagai contoh dan diharapkan berfungsi di sebagian besar lingkungan Kubernetes. Jika Anda mengalami masalah saat menginstal aplikasi atau eksportir karena kebijakan organisasi atau keamanan yang membatasi, sebaiknya konsultasikan dokumentasi open source untuk mendapatkan dukungan.
Untuk informasi tentang TensorFlow Serving, lihat TF Serving. Untuk informasi tentang cara menyiapkan TF Serving di Google Kubernetes Engine, lihat panduan GKE untuk TF Serving.
Prasyarat
Untuk mengumpulkan metrik dari TF Serving dengan menggunakan Managed Service for Prometheus dan koleksi terkelola, deployment Anda harus memenuhi persyaratan berikut:
- Cluster Anda harus menjalankan Google Kubernetes Engine versi 1.21.4-gke.300 atau yang lebih baru.
- Anda harus menjalankan Managed Service for Prometheus dengan pengumpulan terkelola diaktifkan. Untuk informasi selengkapnya, lihat Mulai menggunakan koleksi terkelola.
TF Serving mengekspos metrik berformat Prometheus saat flag --monitoring_config_file
digunakan untuk menentukan file yang berisi buffering protokol MonitoringConfig.
Berikut adalah contoh buffering protokol MonitoringConfig:
Jika Anda mengikuti panduan penyiapan Google Kubernetes Engine, Menayangkan model dengan satu GPU di GKE, buffer protokol MonitoringConfig akan ditentukan sebagai bagian dari penyiapan default.
Jika Anda menyiapkan TF Serving sendiri, lakukan hal berikut untuk menentukan buffering protokol MonitoringConfig:
Buat file bernama
monitoring_config.txt
yang berisi buffer protokol MonitoringConfig di direktori model, sebelum mengupload direktori ke bucket Cloud Storage.Upload direktori model ke bucket Cloud Storage:
gcloud storage cp MODEL_DIRECTORY gs://CLOUD_STORAGE_BUCKET_NAME --recursive
Tetapkan variabel lingkungan
PATH_TO_MONITORING_CONFIG
ke jalur filemonitoring_config.txt
yang diupload, misalnya:export PATH_TO_MONITORING_CONFIG=/data/tfserve-model-repository/monitoring_config.txt
Tambahkan tanda dan nilai berikut ke perintah penampung dalam file YAML deployment penampung Anda:
"--monitoring_config=$PATH_TO_MONITORING_CONFIG"
Misalnya, perintah Anda mungkin terlihat seperti berikut:
command: [ "tensorflow_model_server", "--model_name=$MODEL_NAME", "--model_base_path=/data/tfserve-model-repository/$MODEL_NAME", "--rest_api_port=8000", "--monitoring_config_file=$PATH_TO_MONITORING_CONFIG" ]
Mengubah konfigurasi TF Serving
Ubah konfigurasi TF Serving seperti yang ditunjukkan dalam contoh berikut:
Anda harus menambahkan baris yang diawali dengan simbol +
ke konfigurasi Anda.
Untuk menerapkan perubahan konfigurasi dari file lokal, jalankan perintah berikut:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Anda juga dapat menggunakan Terraform untuk mengelola konfigurasi.
Untuk memverifikasi bahwa TF Serving memunculkan metrik di endpoint yang diharapkan, lakukan hal berikut:- Siapkan penerusan port menggunakan perintah berikut:
kubectl -n NAMESPACE_NAME port-forward POD_NAME 8000
- Akses endpoint
localhost:8000/monitoring/prometheus/metrics
menggunakan browser atau utilitascurl
di sesi terminal lain.
Menentukan resource PodMonitoring
Untuk penemuan target, Operator Managed Service for Prometheus memerlukan resource PodMonitoring yang sesuai dengan TF Serving di namespace yang sama.
Anda dapat menggunakan konfigurasi PodMonitoring berikut:
Untuk menerapkan perubahan konfigurasi dari file lokal, jalankan perintah berikut:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Anda juga dapat menggunakan Terraform untuk mengelola konfigurasi.
Memverifikasi konfigurasi
Anda dapat menggunakan Metrics Explorer untuk memverifikasi bahwa Anda telah mengonfigurasi Penayangan TF dengan benar. Mungkin perlu waktu satu atau dua menit agar Cloud Monitoring dapat menyerap metrik Anda.
Untuk memverifikasi bahwa metrik telah diserap, lakukan tindakan berikut:
-
Di konsol Google Cloud, buka halaman leaderboard Metrics explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Di toolbar panel pembuat kueri, pilih tombol yang namanya adalah code MQL atau code PromQL.
- Pastikan PromQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.
- Masukkan dan jalankan kueri berikut:
up{job="tfserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
Melihat dasbor
Integrasi Cloud Monitoring mencakup dasbor Ringkasan Prometheus TensorFlow Serving. Dasbor akan otomatis diinstal saat Anda mengonfigurasi integrasi. Anda juga dapat melihat pratinjau statis dasbor tanpa menginstal integrasi.
Untuk melihat dasbor yang terinstal, lakukan tindakan berikut:
-
Di konsol Google Cloud, buka halaman
Dasbor:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Pilih tab Daftar Dasbor.
- Pilih kategori Integrasi.
- Klik nama dasbor, misalnya, Ringkasan Prometheus TensorFlow Serving.
Untuk melihat pratinjau statis dasbor, lakukan tindakan berikut:
-
Di konsol Google Cloud, buka halaman
Integrations:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Klik filter platform deployment Kubernetes Engine.
- Temukan integrasi TensorFlow Serving, lalu klik Lihat Detail.
- Pilih tab Dasbor.
Pemecahan masalah
Untuk informasi tentang cara memecahkan masalah penyerapan metrik, lihat Masalah terkait pengumpulan dari eksportir di Memecahkan masalah sisi penyerapan.