根据配置文件为SpringBoot配置Azure AppInsight

时间:2018-07-29 08:21:41

标签: java azure spring-boot azure-application-insights

我已经为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

0 个答案:

没有答案