我正在尝试在我的spring项目中实施ApplicationInsights。如果我使用的是ApplicationInsights.xml,则工作正常。但是,如果我要删除它,则可以使用工具密钥第一次很好地初始化WebRequestTrackingFilter,而当我尝试发出请求时,由于未执行该请求,因此未初始化WebRequestTrackingFilter。
实现与在Microsoft网站上建议的实现相同:
@Configuration
@ComponentScan("com.microsoft.applicationinsights.web.spring")
public class AppInsightsConfig {
@Value("${azure.application-insights.instrumentation-key}")
private String appInsightKey;
//Initialize AI TelemetryConfiguration via Spring Beans
@Bean
public String telemetryConfig() {
if (appInsightKey != null) {
TelemetryConfiguration.getActive().setInstrumentationKey(appInsightKey);
}
return appInsightKey;
}
@Bean(name = "appInsightsWebRequestTrackingFilter")
public Filter appInsightsWebRequestTrackingFilter() {
return new WebRequestTrackingFilter("Service provider");
}
}
然后:
http.***..addFilterBefore(appInsightsWebRequestTrackingFilter,UsernamePasswordAuthenticationFilter.class)
与
@Autowired
private Filter appInsightsWebRequestTrackingFilter;
在这种情况下,统计信息不会发送到Azure?使用XML配置,它可以正常工作,通过设置环境变量,它可以正常工作,但是我需要通过代码设置密钥。 谢谢! 附言这不是spring-boot应用程序