之前快速测试中失败的端点仍然显示响应时间(几十毫秒),但实际上这些端点不应该被选中使用。
现在快速测试会清楚地区分成功和失败的情况:
成功的测试:
level=DEBUG msg="⚡ Fast test completed successfully" endpoint=hk status_code=200 response_time_ms=120 success=true
网络错误:
level=WARN msg="❌ Fast test failed with network error" endpoint=cn2 response_time_ms=45 error="connection refused" reason="Network or connection error"
HTTP状态错误:
level=WARN msg="❌ Fast test failed with bad status" endpoint=sg status_code=503 response_time_ms=230 success=false reason="Invalid HTTP status code"
现在会显示所有测试结果的总结:
{
"msg": "⚡ Fast test results summary:"
}
{
"msg": "🧪 Fast test result",
"test_order": 1,
"endpoint": "hk",
"response_time_ms": 120,
"success": true,
"status": "SUCCESS",
"emoji": "✅"
}
{
"msg": "🧪 Fast test result",
"test_order": 2,
"endpoint": "cn2",
"response_time_ms": 45,
"success": false,
"status": "FAILED",
"emoji": "❌"
}
{
"msg": "📊 Fast test summary",
"total_tested": 4,
"successful": 2,
"failed": 2
}只显示通过测试的端点:
{
"msg": "🏆 Final endpoint ranking (successful only):"
}
{
"msg": "🥇 Ranked endpoint",
"final_rank": 1,
"endpoint": "hk",
"response_time_ms": 120
}- 所有端点都失败: 回退到健康检查结果
- 部分端点失败: 只使用通过测试的端点
- 失败原因显示: 区分网络错误和HTTP状态错误
现在当你看到日志时,能清楚地知道:
- ✅ 哪些端点测试成功
- ❌ 哪些端点测试失败
- 🔄 失败的具体原因
- 📊 测试成功率
- 🥇 最终选择的端点排名
几十毫秒的响应时间如果伴随着错误信息,说明是快速失败(如连接拒绝、DNS解析失败等),这些端点不会被选中使用。