Application Insights:排查非HTTP操作失败问题
后台工作者中Application Insights操作失败标记与查询方案
问题根源
HTTP场景下Application Insights(AI)会自动绑定请求上下文并同步操作状态,但后台工作者无内置请求链路,需手动关联操作实例与异常,才能让AI正确标记操作失败状态。
解决操作标记失败的步骤
正确创建并管理操作生命周期
务必使用using块包裹操作实例,确保AI能自动处理操作的开始与结束:using (var operation = _telemetryClient.StartOperation<OperationTelemetry>("后台任务标识名")) { try { // 执行后台业务逻辑 } catch (Exception ex) { _telemetryClient.TrackException(ex); // 直接在操作实例中标记失败 operation.Telemetry.Success = false; } }若不使用
using块,需在finally中手动调用operation.Stop(),触发AI提交操作状态。强化异常与操作的关联
可在TrackException时添加操作ID作为自定义属性,确保异常与操作强关联:_telemetryClient.TrackException(ex, new Dictionary<string, string> { { "OperationId", operation.Telemetry.Id } });
查询失败操作列表的方法
在AI门户中按以下步骤操作:
- 进入事务搜索模块
- 添加筛选条件:选择
操作结果等于失败 - 补充筛选
操作名称为你的后台任务标识名,即可展示所有标记为失败的操作记录
内容的提问来源于stack exchange,提问作者user1797859
相关产品推荐
相关产品推荐

