AIBrix与Prometheus/Grafana集成:构建LLM推理性能监控仪表盘
AIBrix作为开源的大语言模型(LLM)推理加速框架,提供了张量操作、元数据处理等核心功能,可显著提升LLM部署的性能与效率。在生产环境中,实时监控推理服务的性能指标(如吞吐量、延迟、GPU利用率)对保障服务稳定性至关重要。本文将详细介绍如何通过Prometheus(指标收集)和Grafana(可视化仪表盘)构建AIBrix的全链路监控系统,覆盖控制平面、网关和推理引擎三个核心组件。
监控架构概览
AIBrix的监控体系基于Prometheus的ServiceMonitor自定义资源实现指标采集,并通过Grafana预置仪表盘可视化关键指标。整体架构包含三个层级:
- 控制平面监控:跟踪控制器管理器的运行状态和资源使用
- Envoy网关监控:采集请求流量、路由效率及延迟数据
- 推理引擎监控:聚焦vLLM等引擎的吞吐量、KVCache利用率等核心指标
官方文档:docs/source/index.rst
监控配置目录:config/prometheus/
前置条件
在部署监控前需确保以下组件已就绪:
- Kubernetes集群(v1.24+)及AIBrix部署(参考getting_started/quickstart.rst)
- kube-prometheus-stack安装(提供Prometheus和Grafana):
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
- AIBrix监控组件:
- 指标暴露:pkg/metrics/metrics.go定义了推理引擎核心指标(如TTFT、TPOT)
- 预置仪表盘:observability/grafana/提供4类场景化仪表盘
核心监控组件部署
1. 控制平面监控
控制平面通过controller-manager暴露运行时指标,需部署ServiceMonitor资源实现自动发现:
# [observability/monitor/service_monitor_controller_manager.yaml](https://link.gitcode.com/i/6d51f33de3f0c51bb1b559c183480cb4)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: aibrix-controller-manager-metrics-monitor
namespace: aibrix-system
spec:
endpoints:
- path: /metrics
port: http
selector:
matchLabels:
control-plane: controller-manager
关键监控指标:
reconcile_duration_seconds:控制器调和周期workqueue_queue_duration_seconds:任务队列延迟cpu_usage_seconds_total:控制平面CPU利用率
2. Envoy网关监控
Envoy网关作为流量入口,需通过辅助指标服务暴露Prometheus格式指标:
# [observability/monitor/envoy_metrics_service.yaml](https://link.gitcode.com/i/0570de49aaa3a3f4496e50c1516e4960)
apiVersion: v1
kind: Service
metadata:
name: envoy-metrics-service
namespace: envoy-gateway-system
spec:
selector:
app.kubernetes.io/name: envoy
ports:
- name: metrics
port: 9000
targetPort: 9000
配合ServiceMonitor采集流量指标:
# [observability/monitor/service_monitor_gateway.yaml](https://link.gitcode.com/i/1689d335257a36f6b8d5dbbefcb8f1eb)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: envoy-metrics-monitor
namespace: envoy-gateway-system
spec:
endpoints:
- path: /stats/prometheus
port: metrics
interval: 30s
selector:
matchLabels:
app.kubernetes.io/name: envoy
核心指标包括:
envoy_http_requests_total:请求吞吐量(按路由/状态码聚合)envoy_http_downstream_rq_time:下游请求延迟分布envoy_cluster_upstream_cx_active:活跃后端连接数
3. 推理引擎监控(以vLLM为例)
推理引擎通过standalone/vllm/部署,需配置ServiceMonitor采集推理指标:
# [observability/monitor/service_monitor_vllm.yaml](https://link.gitcode.com/i/afaead966c810433a58d55fd8bc4c53b)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: test-service-monitor
namespace: default
spec:
endpoints:
- path: /metrics
port: metrics
interval: 15s
selector:
matchLabels:
prometheus-discovery: "true"
关键推理指标(定义于pkg/metrics/metrics.go):
| 指标名称 | 类型 | 说明 |
|---|---|---|
vllm:time_to_first_token_seconds | Histogram | 首 token 生成延迟(TTFT) |
vllm:time_per_output_token_seconds | Histogram | 输出 token 平均耗时(TPOT) |
vllm:gpu_cache_usage_perc | Gauge | GPU KVCache 利用率 |
vllm:avg_generation_throughput_toks_per_s | Gauge | 生成阶段吞吐量(tokens/s) |
Grafana仪表盘配置
AIBrix提供4类预置仪表盘,覆盖不同监控场景:
1. vLLM引擎仪表盘
仪表盘文件:observability/grafana/AIBrix_vLLM_Engine_Dashboard.json
核心视图:
- 请求概览:成功/失败请求数、完成原因分布(stop/length)
- 延迟分析:E2E延迟P99/P95线图、TTFT热力图
- 资源利用:GPU/CPU缓存利用率、内存使用趋势
2. Envoy网关仪表盘
仪表盘文件:observability/grafana/AIBrix_Envoy_Gateway_Dashboard.json
重点监控:
- 流量拓扑:请求路由分布、模型服务QPS
- 性能瓶颈:下游服务5xx错误率、超时请求占比
- 插件指标:路由插件执行耗时、认证通过率
3. 控制平面仪表盘
通过observability/grafana/AIBrix_Control_Plane_Runtime_Dashboard.json监控控制器健康状态:
- 资源调和成功率
- 自定义资源(如ModelAdapter、KVCache)状态分布
- 事件处理延迟
高级监控实践
1. 自定义PromQL查询
基于采集的原始指标创建业务视图,例如:
- 5分钟内P95 TTFT:
histogram_quantile(0.95, sum by(le) (rate(vllm:time_to_first_token_seconds_bucket[5m]))) - GPU缓存使用率告警阈值:
vllm:gpu_cache_usage_perc{job="pods"} > 85
2. 异构GPU监控
AIBrix支持多类型GPU调度,可通过标签筛选不同型号指标:
avg by(gpu_type) (vllm:avg_generation_throughput_toks_per_s)
3. KVCache优化监控
通过observability/grafana/AIBrix_Envoy_Gateway_Plugins_Dashboard.json分析KVCache复用效果:
- KV命中率(
kv_cache_hit_ratio) - 跨请求KV复用次数(
kv_reuse_count) - 内存/磁盘KV缓存延迟对比
部署验证与常见问题
验证步骤
-
检查ServiceMonitor状态:
kubectl get servicemonitor -n aibrix-system -
验证指标采集:在Prometheus UI查询
vllm:request_success_total -
导入仪表盘:Grafana导入JSON文件(如AIBrix_vLLM_Engine_Dashboard.json)
常见问题
- 指标缺失:检查Pod标签是否匹配ServiceMonitor selector(参考config/prometheus/monitor.yaml)
- 仪表盘无数据:确认Prometheus数据源名称与仪表盘变量
DS_PROMETHEUS一致 - TTFT指标异常:排查GPU资源分配(参考config/gpu-optimizer/)
总结
通过Prometheus与Grafana的集成,AIBrix实现了LLM推理服务的全链路可观测性。核心价值包括:
- 性能瓶颈定位:通过TTFT/TPOT指标优化推理效率
- 资源优化:基于GPU利用率动态调整算力分配
- SLO保障:通过延迟和吞吐量基线设置告警阈值
后续可扩展方向:
- 集成分布式追踪(如Jaeger)定位跨服务延迟
- 基于监控数据实现自适应扩缩容(参考config/standalone/autoscaler-controller/)
- 构建RAG应用专用监控仪表盘
完整监控文档:docs/source/production/observability.rst
社区贡献指南:CONTRIBUTING.md
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




