可观测性#
为了使您的 AIBrix 部署具有可观测性,我们提供了涵盖关键系统组件的内置 Grafana 控制面板。
控制平面运行时控制面板 - 监控控制器运行时性能、协调行为以及控制平面的健康状态。
Envoy 网关控制面板 - 可视化流量指标,包括请求计数、延迟和外部处理统计信息。
模型服务控制面板 - 跟踪每个模型服务的指标,例如请求 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
指标启用步骤#
要激活每个组件的指标收集
控制平面运行时 - 默认的控制器管理器安装已经公开了指标。
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
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
模型服务 - 我们提供了一个示例 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 堆栈正在主动抓取数据,控制面板就会开始显示实时指标。
生产监控#
待办事项:将很快添加截图和视觉示例,以说明关键视图和使用模式。