是否可以提供类似于本文中的示例的有效JAVA示例? View POST request body in Application Insights
感谢支持
答案 0 :(得分:1)
TelemetryModule跟踪带有HTTP请求的各种数据,并将其作为RequestTelemetry发送到AI服务器。为了跟踪任何自定义HTTP参数,必须通过实现Web InsightsModule和SDK中的WebTelemetryModule和TelemetryModule接口来创建新的TelemetryModule。
这是示例实现。
WebTelemetry模块是可以在Request生命周期中访问HttpRequest和HttpResponse对象的模块。基本上,AI通过注册一个Servlet适配程序来收集请求遥测信息,在处理实际请求之前调用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门户中。
TelemetryModule按ApplicationInsights.xml文件中定义的顺序执行。
集成App Insight非常简单,有关此内容的相关文档可以在此处找到。
https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-get-started
希望有帮助。