我是 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/