SGLang

本文档介绍如何配置 Google Kubernetes Engine 部署 以便使用 Google Cloud Managed Service for Prometheus 从 SGLang 收集指标。本页面介绍如何完成以下任务:

以下说明仅在您将 代管式收集功能 与 Managed Service for Prometheus 搭配使用时适用。 如果您使用的是自行部署的收集功能,请参阅 SGLang 文档 了解安装信息。

这些说明仅作为示例提供,应该适用于大多数 Kubernetes 环境。 如果您因为限制性安全或组织政策而无法安装应用或导出器,则我们建议您查阅开源文档以获取支持。

如需了解 SGLang,请参阅 SGLang。

前提条件

如需使用 Managed Service for Prometheus 和代管式收集功能从 SGLang 收集指标,您的部署必须 满足以下要求:

  • 您的集群必须运行 Google Kubernetes Engine 1.28.15-gke.2475000 或更高版本。
  • 您必须运行 Managed Service for Prometheus,并启用代管式收集功能。如需了解详情,请参阅 代管式收集功能使用入门。

使用 --enable-metrics 标志启动时,SGLang 会公开 Prometheus 格式的指标;您无需单独安装导出器。 如需验证 SGLang 是否在预期的 端点上发出指标,请执行以下操作:

  1. 使用以下命令设置端口转发:
    kubectl -n NAMESPACE_NAME port-forward POD_NAME 30000
    
  2. 在另一个终端会话中使用浏览器或 curl 实用程序访问 localhost:30000/metrics 端点。

使用自动应用监控

SGLang 支持使用 自动应用监控。 使用自动应用监控时,Google Kubernetes Engine 会执行以下操作:

  • 检测已部署的 SGLang 工作负载实例。
  • 为每个检测到的工作负载实例部署 PodMonitoring 资源。
  • 为 SGLang 指标安装 Cloud Monitoring 信息中心。

如需使用自动应用监控,您必须在 GKE 集群上启用该功能。您可以使用 Google Cloud 控制台、 Google Cloud CLI(版本 492.0.0 或更高版本)或 GKE API。如需了解详情,请参阅 启用自动 应用监控。

定义 PodMonitoring 资源

对于目标发现,Managed Service for Prometheus Operator 需要与同一命名空间中的 SGLang 对应的 PodMonitoring 资源。

您可以使用以下 PodMonitoring 配置:


apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: sglang
  labels:
    app.kubernetes.io/name: sglang
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  endpoints:
  - port: 30000
    scheme: http
    interval: 15s
    path: /metrics
  selector:
    matchLabels:
      app: sglang-server

确保 port 和 matchLabels 字段的值与要监控的 SGLang pod 的值相匹配。

如需从本地文件应用配置更改,请运行以下命令:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

您还可以使用 Terraform 管理您的配置。

验证配置

您可以使用 Metrics Explorer 验证您是否正确配置了 SGLang。Cloud Monitoring 可能需要一两分钟时间来注入您的指标。

要验证指标是否已注入,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Metrics Explorer 页面:

    进入 Metrics Explorer

    如果您使用搜索栏查找此页面,请选择子标题为监控 的结果。

  2. 在查询构建器窗格的工具栏中,选择名为  PromQL 的按钮。
  3. 输入并运行以下查询:
    up{job=~"sglang|gke-ac-.*", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

问题排查

如需了解如何排查指标注入问题,请参阅 排查注入端问题中的 从导出器收集的问题。