模型服务可用性指标的阈值设定
在机器学习模型监控中,可用性是核心指标之一。本文基于实际生产环境经验,提供具体的可用性监控指标阈值设定方案。
核心监控指标
1. 服务响应时间(P95)
- 阈值:>200ms(正常),>500ms(告警)
- 监控代码示例:
from prometheus_client import Histogram
import time
response_time = Histogram('model_response_seconds', 'Model response time')
with response_time.time():
# 模型推理逻辑
result = model.predict(input_data)
2. 请求成功率
- 阈值:>95%(正常),<90%(告警)
- 通过Prometheus指标收集:
1 - rate(model_requests_total{status="error"}[5m]) / rate(model_requests_total[5m])
3. 服务可用率
- 阈值:>99.5%(正常),<99%(告警)
- 实现方式:
from prometheus_client import Counter
requests_total = Counter('model_requests_total', 'Total requests')
requests_error = Counter('model_requests_error', 'Error requests')
try:
result = model.predict(input_data)
requests_total.inc()
except Exception as e:
requests_error.inc()
requests_total.inc()
告警配置方案
告警级别设置:
- P0(紧急):响应时间>500ms或可用率<99%
- P1(重要):响应时间>300ms或成功率<90%
- P2(一般):响应时间>200ms或可用率<99.5%
告警规则配置:
rule_files:
- model_alerts.yml
groups:
- name: model_availability
rules:
- alert: HighResponseTime
expr: histogram_quantile(0.95, rate(model_response_seconds_bucket[5m])) > 0.5
for: 2m
labels:
severity: page

讨论