Merge pull request #12287 from Gary Russell

* gh-12287:
  Polish "Remove redundant auto-configuration of SI Micrometer metrics"
  Remove redundant auto-configuration of SI Micrometer metrics
pull/14847/head
Andy Wilkinson 7 years ago
commit 6f06422d2d

@ -1,53 +0,0 @@
/*
* Copyright 2012-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.integration;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.config.EnableIntegration;
import org.springframework.integration.support.management.micrometer.MicrometerMetricsFactory;
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Integration Micrometer
* support.
*
* @author Phillip Webb
* @author Gary Russell
* @since 2.0.0
*/
@Configuration
@ConditionalOnClass({ EnableIntegration.class, MeterRegistry.class })
@AutoConfigureAfter({ IntegrationAutoConfiguration.class,
SimpleMetricsExportAutoConfiguration.class })
@ConditionalOnBean(MeterRegistry.class)
public class IntegrationMetricsAutoConfiguration {
@Bean
public MicrometerMetricsFactory integrationMicrometerMetricsFactory(
MeterRegistry meterRegistry) {
return new MicrometerMetricsFactory(meterRegistry);
}
}

@ -1,20 +0,0 @@
/*
* Copyright 2012-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Actuator support for Spring Integration metrics.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.integration;

@ -49,7 +49,6 @@ org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx.SignalFxM
org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration,\
org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront.WavefrontMetricsExportAutoConfiguration,\
org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration,\
org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration,\
org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsAutoConfiguration,\
org.springframework.boot.actuate.autoconfigure.metrics.web.reactive.WebFluxMetricsAutoConfiguration,\
org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration,\

@ -1,96 +0,0 @@
/*
* Copyright 2012-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.integration;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
import org.junit.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.integration.support.management.AbstractMessageChannelMetrics;
import org.springframework.integration.support.management.DefaultMetricsFactory;
import org.springframework.integration.support.management.MetricsFactory;
import org.springframework.messaging.Message;
import org.springframework.messaging.SubscribableChannel;
import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for {@link IntegrationMetricsAutoConfiguration}.
*
* @author Phillip Webb
*/
public class IntegrationMetricsAutoConfigurationTests {
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(IntegrationAutoConfiguration.class,
IntegrationMetricsAutoConfiguration.class))
.withUserConfiguration(BaseConfiguration.class)
.withPropertyValues("spring.jmx.enabled=false");
@Test
public void autoConfiguredIntegrationIsInstrumented() {
this.contextRunner.run((context) -> {
Message<?> message = MessageBuilder.withPayload("hello").build();
SubscribableChannel channel = context.getBean("errorChannel",
SubscribableChannel.class);
channel.send(message);
MeterRegistry registry = context.getBean(MeterRegistry.class);
registry.get("errorChannel.timer").timer();
registry.get("errorChannel.errorCounter").counter();
});
}
@Test
public void autoConfigurationBacksOffWhenHasMetricsFactory() {
this.contextRunner.withUserConfiguration(LegacyConfiguration.class)
.run((context) -> {
SubscribableChannel channel = context.getBean("errorChannel",
SubscribableChannel.class);
AbstractMessageChannelMetrics metrics = (AbstractMessageChannelMetrics) ReflectionTestUtils
.getField(channel, "channelMetrics");
assertThat(metrics.getTimer()).isNull();
});
}
@Configuration
static class BaseConfiguration {
@Bean
public SimpleMeterRegistry simpleMeterRegistry() {
return new SimpleMeterRegistry();
}
}
@Configuration
static class LegacyConfiguration {
@Bean
public MetricsFactory legacyMetricsFactory() {
return new DefaultMetricsFactory();
}
}
}
Loading…
Cancel
Save