Azure App Insights中‘Faulted’结果码含义及故障排查咨询
Azure Application Insights中‘Faulted’结果码解析及排查方案
一、‘Faulted’结果码的含义
faulted标记代表发起请求的微服务在调用目标服务的过程中未完成完整的请求生命周期,并非Application Insights自身的问题,主要对应两类场景:
- 客户端代码异常:比如请求发送前的参数校验失败、本地代码抛出未捕获的异常(如空指针、序列化错误),导致请求根本没发出去
- 网络层故障:请求已尝试发送,但在到达目标服务前出现中断,比如DNS解析失败、防火墙拦截、网络链路中断、目标服务端口未开放等
二、未到达目标服务的请求排查步骤
1. 排查客户端侧的追踪与异常
- 找到该请求的
operation_id,在发起方微服务的traces表中搜索该ID,查看请求发送前后的日志,确认是否有错误提示 - 关联
exceptions表中同一operation_id的记录,检查是否存在未捕获的代码异常,这类异常会直接终止请求发送流程
2. 验证网络连通性
- 在客户端微服务所在环境执行端口连通性测试:使用
telnet <目标服务IP> <端口>或Test-NetConnection -ComputerName <目标服务IP> -Port <端口>命令,确认网络链路是否畅通 - 检查防火墙规则:确认客户端所在子网到目标服务子网的出站规则、目标服务的入站规则是否允许对应端口的流量
- 验证DNS解析:在客户端环境执行
nslookup <目标服务域名>,确认解析出的IP地址与目标服务实际IP一致
3. 分析AppInsights依赖项数据
- 在
dependencies表中查询该请求记录,查看duration和success字段:如果duration极短且success为false,大概率是客户端未成功发送请求;如果duration较长,可能是网络传输中出现中断 - 查看
customDimensions字段中的请求上下文信息(如请求头、参数),确认请求构造是否符合目标服务的要求
4. 检查目标服务的系统日志
- 查看目标服务所在服务器的系统日志(如Linux的
/var/log/syslog、Windows事件查看器的系统日志),确认是否有客户端请求的连接记录,判断是否存在数据包到达后被拒绝的情况
内容的提问来源于stack exchange,提问作者Piotrek
相关产品推荐
相关产品推荐

