1 回答
TA贡献1906条经验 获得超3个赞
TelemetryModules 跟踪 HTTP 请求中的各种数据,并将其作为 RequestTelemetry 发送到 AI 服务器。为了跟踪任何自定义 HTTP 参数,必须通过实现 WebTelemetryModule 和 TelemetryModule 接口来创建一个新的 TelemetryModule,该接口是应用洞察 SDK 的一部分。
这是示例实现。
WebTelemetry 模块是可以在请求生命周期中访问 HttpRequest 和 HttpResponse 对象的模块。基本上,AI 通过注册 Servlet fitler 来收集请求遥测数据,并且在处理实际请求之前调用 onBeginRequest,在处理请求之后调用 onEndRequest。
现在在 ApplicationInsights.xml 文件中注册模块
<TelemetryModules>
<Add type="com.ai.demo.CustomHttpTelemetryModule"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebRequestTrackingTelemetryModule"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebSessionTrackingTelemetryModule"/>
<Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebUserTrackingTelemetryModule"/>
</TelemetryModules>
请注意,我已经在所有默认遥测之前注册了 TelemetryModule,因为如果您在 WebRequestTelemetryModule 之后注册遥测,那么您在 OnEndRequest 中设置的任何内容都不会被传递,因为 WebRequestTelemetryModule 在其 onEndRequest 方法中生成 trackRequest。在 trackRequest() 调用后所做的任何更改都不会反映在 AI 门户中。
TelemetryModules 按照它们在 ApplicationInsights.xml 文件中定义的顺序执行。
集成 App Insights 非常简单,相关文档可以在此处找到。
https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-get-started
希望能帮助到你。
添加回答
举报