模型服务响应时间异常检测
在机器学习模型生产环境中,响应时间是衡量服务健康度的核心指标。本文将构建一个基于统计分析的响应时间异常检测系统。
样本数据收集
首先采集模型API响应时间数据:
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# 模拟1小时内的响应时间数据(毫秒)
np.random.seed(42)
timestamps = [datetime.now() - timedelta(minutes=i) for i in range(60, 0, -1)]
response_times = np.random.normal(500, 50, 60) # 均值500ms,标准差50
response_times = np.clip(response_times, 200, 1500) # 限制范围
# 构造DataFrame
df = pd.DataFrame({
'timestamp': timestamps,
'response_time_ms': response_times
})
Z-Score异常检测算法
采用Z-Score方法识别异常响应时间:
from scipy import stats
# 计算Z-Score
mean_response = df['response_time_ms'].mean()
std_response = df['response_time_ms'].std()
df['z_score'] = (df['response_time_ms'] - mean_response) / std_response
# 设置阈值为3(99.7%置信度)
threshold = 3
anomalies = df[df['z_score'].abs() > threshold]
告警配置方案
配置监控告警规则:
- 一级告警:响应时间超过600ms,触发邮件通知
- 二级告警:响应时间超过800ms,自动重启服务实例
- 三级告警:连续5个样本点Z-Score绝对值>3,启动容量扩容
可复现步骤
- 运行上述数据采集代码
- 执行Z-Score计算逻辑
- 验证异常检测结果
- 配置相应告警规则并测试触发机制
该方案可集成到Prometheus + Alertmanager架构中,实现自动化监控与响应。

讨论