我已经为Spring Boot应用程序配置了azure app-insights,当我在application.properties文件中添加属性 azure.application-insights.instrumentation-key = 时,它可以正常工作。
但是我需要为不同的配置文件(dev,qa,prod)进行配置。
我的配置如下,
在application-dev.properties文件中
server.azure.application-insights.instrumentation-key=<key>
在application-ks.yml文件中
spring:
profiles:dev
server:
telemetryKey: <key>
azure.application-insights.instrumentation-key: <key>
在ConfigClass中
@Autowired
ServerProperties properties;
@Bean
public String telemetryConfig() {
String telemetryKey = properties.getTelemetryKey();
if (telemetryKey != null) {
TelemetryConfiguration.getActive().setInstrumentationKey(telemetryKey);
}
return telemetryKey;
}
@Bean
public FilterRegistrationBean aiFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter());
registration.addUrlPatterns("/**");
registration.setOrder(1);
return registration;
}
@Bean(name = "WebRequestTrackingFilter")
public Filter WebRequestTrackingFilter() {
return new com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter();
}
然后在应用程序启动时引发其抛出异常
- Bean method 'telemetryClient' not loaded because @ConditionalOnProperty (azure.application-insights.instrumentation-key) did not find property 'azure.application-insights.instrumentation-key'
我们如何配置?我错过了什么吗?
我已经在使用属性获取遥测密钥
String telemetryKey = properties.getTelemetryKey();
我们需要在何处配置此属性 azure.application-insights.instrumentation-key ?