请说明在企业级 AI 网关项目中,采用 Prometheus 与 Grafana 组合来监控自定义业务指标的完整方案。具体包括指标选型、采集路径、告警规则以及可视化设计等环节。
考察说明
考查候选人利用 Prometheus 和 Grafana 构建业务可观测性的实战能力,包括指标定义、采集、存储、查询与告警的闭环设计。
回答思路
- 【回答框架 1】业务指标监控的核心是先明确指标类型。对于 AI 网关,常见自定义业务指标包括:请求量(QPS)、延迟(P99/P95)、错误率、令牌桶限流丢弃数、模型调用次数、模型响应耗时、缓存命中率等。使用 Prometheus 的 Counter(累计值)和 Histogram(分布)合理表示这些指标。
- 【回答框架 2】采集路径上,应用需通过 Prometheus 客户端库暴露 /metrics 端点,由 Prometheus Server 以 Pull 模式定时抓取。对于 AI 网关,可采用 Prometheus Java/Go 客户端,并利用标签(如网关路由、模型名、状态码)细化维度,注意标签基数控制,避免高基数导致性能问题。
- 【回答框架 3】在 Grafana 中构建仪表盘,通过 PromQL 查询指标。例如,网关总 QPS 用 sum(rate(gateway_requests_total[1m])),P99 延迟用 histogram_quantile(0.99, sum(rate(gateway_request_duration_seconds_bucket[1m])) by (le))。仪表盘应分区展示流量、延迟、错误和资源使用,便于快速定位。
- 【回答框架 4】告警方面,基于 Prometheus Alertmanager 配置规则,如错误率超过 5% 持续 5 分钟告警、P99 延迟超过 200ms 告警。告警应包含明确的路由和严重级别,并联动下游通知渠道。
- 【回答框架 5】实际落地时需注意:指标命名遵循规范,添加命名空间;监控系统自身的高可用,避免因监控故障影响业务;数据保留策略与存储容量规划。
- 【关键点 1】使用 Counter 表示累计值,Histogram 表示延迟分布,Gauge 表示当前状态。
- 【关键点 2】Pull 模式采集,应用暴露 /metrics 端点,由 Prometheus 定期抓取。
- 【关键点 3】通过标签细化维度,控制基数。
- 【关键点 4】PromQL 常用函数:rate/irate、histogram_quantile、sum、avg 等。
- 【关键点 5】结合 Alertmanager 实现条件告警,并联动通知。
- 【易错点 1】标签基数过高导致 Prometheus 存储膨胀和性能下降。
- 【易错点 2】使用 Gauge 表示单调递增的计数值,导致重复计数错误。
- 【易错点 3】直方图桶边界设置不合理影响延迟分布精度。