本文說明如何設定 Google Kubernetes Engine 部署作業,以便使用 Google Cloud Managed Service for Prometheus 收集 TensorFlow Serving 的指標。本文將說明如何執行下列操作:
- 設定 TF Serving 回報指標。
- 為 Managed Service for Prometheus 設定 PodMonitoring 資源,以收集匯出的指標。
- 在 Cloud Monitoring 中存取資訊主頁,即可查看指標。
只有在使用 Managed Service for Prometheus 的 代管收集作業時,才適用這些操作說明。如果您使用自行部署的收集作業,請參閱 TF Serving 文件,瞭解安裝資訊。
這些操作說明僅供參考,適用於大多數 Kubernetes 環境。 如果因安全或機構政策限制而無法安裝應用程式或匯出工具,建議您參閱開放原始碼文件尋求支援。
如要瞭解 TensorFlow Serving,請參閱 TF Serving。 如要瞭解如何在 Google Kubernetes Engine 上設定 TF Serving,請參閱 GKE TF Serving 指南。
必要條件
如要使用 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 值區:
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 Operator 需要與相同命名空間中的 TF Serving 對應的 PodMonitoring 資源。
您可以使用下列 PodMonitoring 設定:
如要套用本機檔案的設定變更,請執行下列指令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您也可以使用 Terraform 管理設定。
驗證設定
您可以使用 Metrics Explorer 確認是否已正確設定 TF Serving。Cloud Monitoring 可能需要一到兩分鐘才能擷取指標。
如要確認指標已擷取,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在查詢建構工具窗格的工具列中,選取名稱為 code MQL 或 code PromQL 的按鈕。
- 確認已在「Language」(語言) 切換按鈕中選取「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 整合功能,然後按一下「查看詳細資料」。
- 選取「資訊主頁」分頁標籤。
疑難排解
如要瞭解如何排解指標擷取問題,請參閱「 排解擷取端問題」一文中的「 收集匯出工具資料時發生問題」一節。