本文档介绍如何配置 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.21.4-gke.300 或更高版本。
- 您必须运行 Managed Service for Prometheus,并启用代管式收集功能。如需了解详情,请参阅代管式收集功能使用入门。
当使用 --monitoring_config_file
标志指定包含 MonitoringConfig 协议缓冲区的文件时,TF Serving 会公开 Prometheus 格式的指标。
以下是一个 MonitoringConfig 协议缓冲区示例:
如果您遵循 Google Kubernetes Engine 设置指南在 GKE 中使用单个 GPU 提供模型,则 MonitoringConfig 协议缓冲区会作为默认设置的一部分进行定义。
如果您自行设置 TF Serving,请执行以下操作以指定 MonitoringConfig 协议缓冲区:
在将模型目录上传到 Cloud Storage 存储桶之前,在模型目录中创建一个名为
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 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在查询构建器窗格的工具栏中,选择名为 code MQL 或 code PromQL 的按钮。
- 验证已在PromQL 切换开关中选择 PromQL。语言切换开关位于同一工具栏中,用于设置查询的格式。
- 输入并运行以下查询:
up{job="tfserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
查看信息中心
Cloud Monitoring 集成包括 TensorFlow Serving Prometheus 概览信息中心。当您配置集成时,系统会自动安装信息中心。您还可以在不安装集成的情况下查看信息中心的静态预览。
如需查看已安装的信息中心,请执行以下操作:
-
在 Google Cloud 控制台中,转到
信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 选择信息中心列表标签页。
- 选择集成类别。
- 点击信息中心的名称,例如 TensorFlow Serving Prometheus 概览。
如需查看信息中心的静态预览,请执行以下操作:
-
在 Google Cloud 控制台中,转到
集成页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 点击 Kubernetes Engine 部署平台过滤条件。
- 找到 TensorFlow Serving 集成,然后点击查看详情。
- 选择信息中心标签页。
问题排查
如需了解如何排查指标注入问题,请参阅排查注入端问题中的从导出器收集的问题。