outlier detection
在异常检测领域中,常常需要决定新观察的点是否属于与现有观察点相同的分布(则它称为inlier),或者被认为是不同的(称为outlier)。离群是异常的数据,但是不一定是错误的数据点。
在Envoy中,离群点检测是动态确定上游集群中是否有某些主机表现不正常,然后将它们从正常的负载均衡集群中删除的过程。outlier detection可以与healthy check同时/独立启用,并构成整个上游运行状况检查解决方案的基础。
此处概念不做过多的说明,具体可以参考官方文档与自行google
监测类型
- 连续的5xx
- 连续的网关错误
- 连续的本地来源错误
更多介绍参考官方文档 outlier detection
离群检测测试
说明,此处只能在单机环境测试更多还的参考与实际环境
环境准备
docker-compose 模拟后端5个节点
yaml
|
|
envoy 配置文件
text
|
|
配置说明
text
|
|
此处为了效果,将主动检测状态时间增加,主机弹出时间增加
路由
/502bad
模拟一个502的错误
运行结果
模拟一些5xx请求和200请求
text
|
|
集群已弹出 20%的节点,健康检查结果为 failed_outlier_check
请求已分配到其余三台节点
30秒后,弹出主机已回复正常
再次模拟请求
30秒后,如在时间间隔内,无新增请求,节点依旧为 failed_outlier_check
,有新增请求时恢复。