为何调用TelemetryClient.StartOperation()后数据出现在Dependencies而非Operations面板?
问题原因分析
你用StartOperation<DependencyTelemetry>("Processing")生成的遥测数据之所以出现在Dependencies面板而非Operations面板,核心原因是你指定的遥测类型是DependencyTelemetry——Application Insights会根据遥测的类型自动归类到对应的面板:
DependencyTelemetry类型的遥测默认会被归类到Dependencies面板,这类遥测原本是用来记录应用对外部资源的依赖调用(比如数据库查询、第三方API请求等)- Operations面板对应的是
RequestTelemetry或OperationTelemetry类型的遥测,这类遥测用于标记应用自身的业务操作流程
如果想让"Processing"显示在Operations面板,只需把泛型类型换成RequestTelemetry即可,示例代码如下:
using (myTelemetryClient.StartOperation<RequestTelemetry>("Processing")) { try { ... } catch (Exception exception) { myTelemetryClient.TrackException(exception); } }
另外需要注意,StartOperation方法的作用是创建带上下文的操作范围,它会根据传入的遥测类型决定操作的归类属性。如果需要更精细的自定义,也可以手动设置遥测的OperationName和ItemType属性,但最直接的方式还是匹配对应的遥测类型。
内容的提问来源于stack exchange,提问作者Pine Code
相关产品推荐
相关产品推荐

