asp.net - 使用 App Insights 将关联 ID 添加到自动生成的遥测数据

标签 asp.net asp.net-web-api azure-application-insights

我是 Application Insights 的新手,我正在考虑将它用于我计划使用 asp.net webapi 实现的一组服务。我能够非常轻松地启动和运行基本遥测(右键单击 VS 上的项目,添加 Application Insights),但后来我遇到了障碍。我计划在调用下游服务的请求 header 中设置相关 ID,并且我想用相同的相关 ID 标记与一个外部调用相关的所有遥测数据。

到目前为止,我发现有一种方法可以配置 TelemetryInitializer,但如果我理解正确的话,这是在我访问请求之前运行的,这意味着我无法检查是否我应该附加一个相关 ID。

所以我想可能有两种方法可以解决这个问题:1) 如果我能以某种方式在初始化程序之前实际访问请求 header ,那显然可以解决问题,或者 2) 以某种方式获取 TelemetryClient 实例用于报告自动生成的遥测数据。

也许最后的办法是关闭所有自动操作并手动完成所有操作,当然我可以控制在 TelemetryClient 上设置哪些属性。但这会增加很多工作量,所以我更愿意寻找其他解决方案。

最佳答案

您说应该使用 TelemetryInitializer 是对的。当对任何遥测项调用 Track 方法时,将调用所有 TelemetryInitializers。自动生成的请求遥测在请求 OnEnd 时被“跟踪”,此时您应该可以使用所有自定义 header 。

关于asp.net - 使用 App Insights 将关联 ID 添加到自动生成的遥测数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32171747/

相关文章:

c# - 从 webAPI 访问调用 GetSecretAsync 时偶尔出现 500 错误

asp.net-web-api - 使用 Autofac 和 ASP.Net Identity 将 ApplicationUserManager 传递给 ApplicationOAuthProvider

azure - 如何从连接字符串确定 Application Insights 实例?

ASP.NET MVC 母版页变量范围

javascript - 如何通过属性JQuery查找列表元素内部

c# - Web Api 的 CreateResponse<Content>() 和 CreateResponse() 之间有什么区别吗?

.net - 云服务应用程序洞察 ETW 问题

azure - 使用 azure cli 创建应用程序见解

asp.net - 确定 ASP.NET Chart 控件使用的颜色

asp.net - Jquery 验证插件与服务器端回退相结合