本文說明如何設定 Google Kubernetes Engine 部署作業,以便使用 Google Cloud Managed Service for Prometheus 收集 TensorFlow Serving 的指標。本文說明如何執行下列操作:
- 設定 TF Serving 回報指標。
- 在 Cloud Monitoring 中存取預先定義的資訊主頁,即可查看指標。
只有在使用 Managed Service for Prometheus 的 代管收集作業時,才適用這些操作說明。如果您使用自行部署的收集機制,請參閱 TF Serving 文件,瞭解安裝資訊。
這些操作說明僅供參考,適用於大多數 Kubernetes 環境。 如果因嚴格的安全或機構政策而無法安裝應用程式或匯出工具,建議您參閱開放原始碼文件尋求支援。
如要瞭解 TensorFlow Serving,請參閱 TF Serving。 如要瞭解如何在 Google Kubernetes Engine 上設定 TF Serving,請參閱 TF Serving 的 GKE 指南。
必要條件
如要使用 Managed Service for Prometheus 和代管收集作業,從 TF Serving 收集指標,部署作業必須符合下列規定:
- 叢集必須執行 Google Kubernetes Engine 1.28.15-gke.2475000 以上版本。
- 您必須執行 Managed Service for Prometheus,並啟用代管收集作業。詳情請參閱「 開始使用代管集合」一文。
使用 --monitoring_config_file 旗標指定包含 MonitoringConfig 通訊協定緩衝區的檔案時,TF Serving 會公開 Prometheus 格式的指標。
以下是 MonitoringConfig 通訊協定緩衝區的範例:
如果您是按照 Google Kubernetes Engine 設定指南操作,在 GKE 中使用單一 GPU 提供模型,則 MonitoringConfig 通訊協定緩衝區會定義為預設設定的一部分。
如果您要自行設定 TF Serving,請按照下列步驟指定 MonitoringConfig 通訊協定緩衝區:
在將目錄上傳至 Cloud Storage bucket 之前,請先在模型目錄中建立名為
monitoring_config.txt的檔案,其中包含 MonitoringConfig 通訊協定緩衝區。將模型目錄上傳至 Cloud Storage bucket:
gcloud storage cp MODEL_DIRECTORY gs://CLOUD_STORAGE_BUCKET_NAME --recursive
將環境變數
PATH_TO_MONITORING_CONFIG設為已上傳monitoring_config.txt檔案的路徑,例如:export PATH_TO_MONITORING_CONFIG=/data/tfserve-model-repository/monitoring_config.txt
在容器部署 YAML 檔案中,將下列標記和值新增至容器的指令:
"--monitoring_config=$PATH_TO_MONITORING_CONFIG"
舉例來說,您的指令可能如下所示:
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" ]
修改 TF Serving 設定
修改 TF Serving 設定,如以下範例所示:
您必須將以 + 符號開頭的任何行新增至設定。
如要從本機檔案套用設定變更,請執行下列指令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您也可以使用 Terraform 管理設定。
如要確認 TF Serving 是否在預期端點上發出指標,請執行下列步驟:- 使用下列指令設定通訊埠轉送:
kubectl -n NAMESPACE_NAME port-forward POD_NAME 8000
- 在另一個終端機工作階段中,使用瀏覽器或
curl公用程式存取端點localhost:8000/monitoring/prometheus/metrics。
定義 PodMonitoring 資源
如要探索目標,Managed Service for Prometheus 運算子需要與相同命名空間中的 TF Serving 對應的 PodMonitoring 資源。
您可以使用下列 PodMonitoring 設定:
如要從本機檔案套用設定變更,請執行下列指令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您也可以使用 Terraform 管理設定。
驗證設定
您可以使用 Metrics Explorer 驗證 TF Serving 設定是否正確。Cloud Monitoring 可能需要一到兩分鐘才能擷取指標。
如要確認指標已擷取,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「指標探索器」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在查詢建立工具窗格的工具列中,選取名稱為 code「PromQL」PromQL的按鈕。
- 輸入並執行下列查詢:
up{job="tfserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
查看資訊主頁
Cloud Monitoring 整合功能包含 TensorFlow Serving Prometheus 總覽資訊主頁。設定整合作業後,系統會自動安裝資訊主頁。 您也可以查看資訊主頁的靜態預覽畫面,不需安裝整合服務。
如要查看已安裝的資訊主頁,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Dashboards」(資訊主頁) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 選取「資訊主頁清單」分頁標籤。
- 選擇「整合」類別。
- 按一下資訊主頁名稱,例如「TensorFlow Serving Prometheus Overview」。
如要查看資訊主頁的靜態預覽畫面,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往
「Integrations」(整合) 頁面:如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 按一下「Kubernetes Engine」部署平台篩選器。
- 找出 TensorFlow Serving 整合功能,然後按一下「查看詳細資料」。
- 選取「資訊主頁」分頁標籤。
疑難排解
如要瞭解如何排解指標擷取問題,請參閱「 排解擷取端問題」中的「 無法從匯出工具收集資料」。