可观测性#

为了使您的 AIBrix 部署具有可观测性,我们提供了涵盖关键系统组件的内置 Grafana 控制面板

  1. 控制平面运行时控制面板 - 监控控制器运行时性能、协调行为以及控制平面的健康状态。

  2. Envoy 网关控制面板 - 可视化流量指标,包括请求计数、延迟和外部处理统计信息。

  3. 模型服务控制面板 - 跟踪每个模型服务的指标,例如请求 QPS、提示和输出长度、TTFT/TPOT 和停止原因等。

先决条件#

在启用指标和控制面板之前,请确保您的集群中已安装 kube-prometheus-stack。这提供了 Prometheus、Grafana 以及用于抓取指标所需的 CRD(如 ServiceMonitor)。

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack --namespace prometheus

指标启用步骤#

要激活每个组件的指标收集

  1. 控制平面运行时 - 默认的控制器管理器安装已经公开了指标。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app.kubernetes.io/managed-by: kubectl
    app.kubernetes.io/name: aibrix
    app.kubernetes.io/version: nightly
    control-plane: controller-manager
  name: aibrix-controller-manager-metrics-monitor
  namespace: aibrix-system
spec:
  endpoints:
  - path: /metrics
    port: http
    scheme: http
  selector:
    matchLabels:
      control-plane: controller-manager
  1. Envoy 网关 - 除了 ServiceMonitor 之外,您还必须部署一个辅助指标服务,该服务将 Envoy 的管理接口指标(例如,/stats/prometheus)公开给 Prometheus。

apiVersion: v1
kind: Service
metadata:
  name: envoy-admin-metrics
  namespace: envoy-gateway-system
  labels:
    app.kubernetes.io/name: envoy
    app.kubernetes.io/component: proxy
    app.kubernetes.io/managed-by: envoy-gateway
spec:
  ports:
  - name: metrics
    port: 19001
    targetPort: 19001
    protocol: TCP
  selector:
    app.kubernetes.io/name: envoy
    app.kubernetes.io/component: proxy
    app.kubernetes.io/managed-by: envoy-gateway
  type: ClusterIP
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: envoy-metrics-monitor
  namespace: envoy-gateway-system
  labels:
    release: prometheus
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: envoy
  namespaceSelector:
    matchNames:
    - envoy-gateway-system
  endpoints:
  - port: metrics
    path: /stats/prometheus
    scheme: http
    interval: 30s
  1. 模型服务 - 我们提供了一个示例 ServiceMonitor 作为参考,您可以根据您的模型设置更改定义。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    release: prometheus
  name: test-service-monitor
  namespace: default
spec:
  endpoints:
  - interval: 15s
    path: /metrics
    port: metrics
  namespaceSelector:
    matchNames:
    - default
  selector:
    matchLabels:
      prometheus-discovery: "true"

导入 Grafana 控制面板#

为了进行生产监控,我们提供了预构建的 Grafana 控制面板,用于可视化控制平面、Envoy 网关和模型服务的指标。这些控制面板提供了系统性能、请求模式、错误率等方面的洞察。您可以通过上传相应的 JSON 文件将它们导入到您的 Grafana 实例中。在导入之前,请确保您的 Prometheus 数据源已正确配置。导入后,只要 ServiceMonitor 资源已正确设置且 kube-prometheus 堆栈正在主动抓取数据,控制面板就会开始显示实时指标。

生产监控#

待办事项:将很快添加截图和视觉示例,以说明关键视图和使用模式。