GH-2803: Deprecate legacy metrics
Resolves https://github.com/spring-projects/spring-integration/issues/2803 * Polishing - PR Comments * More PR Comments * Missed one comment
This commit is contained in:
committed by
Artem Bilan
parent
43d03c35b1
commit
6c3ffcb1d5
@@ -34,12 +34,6 @@ import org.springframework.integration.support.management.AbstractMessageChannel
|
||||
import org.springframework.integration.support.management.AbstractMessageHandlerMetrics;
|
||||
import org.springframework.integration.support.management.DefaultMessageChannelMetrics;
|
||||
import org.springframework.integration.support.management.DefaultMessageHandlerMetrics;
|
||||
import org.springframework.integration.support.management.ExponentialMovingAverage;
|
||||
import org.springframework.integration.support.management.ExponentialMovingAverageRate;
|
||||
import org.springframework.integration.support.management.ExponentialMovingAverageRatio;
|
||||
import org.springframework.integration.support.management.MessageChannelMetrics;
|
||||
import org.springframework.integration.support.management.MessageHandlerMetrics;
|
||||
import org.springframework.integration.support.management.MetricsFactory;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
@@ -56,6 +50,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
@ContextConfiguration
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@DirtiesContext
|
||||
@SuppressWarnings("deprecation")
|
||||
public class MBeanExporterParserTests {
|
||||
|
||||
@Autowired
|
||||
@@ -72,38 +67,42 @@ public class MBeanExporterParserTests {
|
||||
assertThat(properties.containsKey("bar")).isTrue();
|
||||
assertThat(exporter.getServer()).isEqualTo(server);
|
||||
assertThat(TestUtils.getPropertyValue(exporter, "namingStrategy")).isSameAs(context.getBean("keyNamer"));
|
||||
MessageChannelMetrics metrics = context.getBean("foo", MessageChannelMetrics.class);
|
||||
org.springframework.integration.support.management.MessageChannelMetrics metrics =
|
||||
context.getBean("foo", org.springframework.integration.support.management.MessageChannelMetrics.class);
|
||||
assertThat(metrics.isCountsEnabled()).isTrue();
|
||||
assertThat(metrics.isStatsEnabled()).isFalse();
|
||||
checkCustomized(metrics);
|
||||
MessageHandlerMetrics handlerMetrics = context.getBean("transformer.handler", MessageHandlerMetrics.class);
|
||||
org.springframework.integration.support.management.MessageHandlerMetrics handlerMetrics =
|
||||
context.getBean("transformer.handler",
|
||||
org.springframework.integration.support.management.MessageHandlerMetrics.class);
|
||||
checkCustomized(handlerMetrics);
|
||||
metrics = context.getBean("bar", MessageChannelMetrics.class);
|
||||
metrics = context.getBean("bar", org.springframework.integration.support.management.MessageChannelMetrics.class);
|
||||
assertThat(metrics.isCountsEnabled()).isTrue();
|
||||
assertThat(metrics.isStatsEnabled()).isFalse();
|
||||
metrics = context.getBean("baz", MessageChannelMetrics.class);
|
||||
metrics = context.getBean("baz", org.springframework.integration.support.management.MessageChannelMetrics.class);
|
||||
assertThat(metrics.isCountsEnabled()).isFalse();
|
||||
assertThat(metrics.isStatsEnabled()).isFalse();
|
||||
metrics = context.getBean("qux", MessageChannelMetrics.class);
|
||||
metrics = context.getBean("qux", org.springframework.integration.support.management.MessageChannelMetrics.class);
|
||||
assertThat(metrics.isCountsEnabled()).isFalse();
|
||||
assertThat(metrics.isStatsEnabled()).isFalse();
|
||||
metrics = context.getBean("fiz", MessageChannelMetrics.class);
|
||||
metrics = context.getBean("fiz", org.springframework.integration.support.management.MessageChannelMetrics.class);
|
||||
assertThat(metrics.isCountsEnabled()).isTrue();
|
||||
assertThat(metrics.isStatsEnabled()).isTrue();
|
||||
metrics = context.getBean("buz", MessageChannelMetrics.class);
|
||||
metrics = context.getBean("buz", org.springframework.integration.support.management.MessageChannelMetrics.class);
|
||||
assertThat(metrics.isCountsEnabled()).isTrue();
|
||||
assertThat(metrics.isStatsEnabled()).isTrue();
|
||||
metrics = context.getBean("!excluded", MessageChannelMetrics.class);
|
||||
metrics = context.getBean("!excluded", org.springframework.integration.support.management.MessageChannelMetrics.class);
|
||||
assertThat(metrics.isCountsEnabled()).isFalse();
|
||||
assertThat(metrics.isStatsEnabled()).isFalse();
|
||||
checkCustomized(metrics);
|
||||
MetricsFactory factory = context.getBean(MetricsFactory.class);
|
||||
org.springframework.integration.support.management.MetricsFactory factory =
|
||||
context.getBean(org.springframework.integration.support.management.MetricsFactory.class);
|
||||
IntegrationManagementConfigurer configurer = context.getBean(IntegrationManagementConfigurer.class);
|
||||
assertThat(TestUtils.getPropertyValue(configurer, "metricsFactory")).isSameAs(factory);
|
||||
exporter.destroy();
|
||||
}
|
||||
|
||||
private void checkCustomized(MessageChannelMetrics metrics) {
|
||||
private void checkCustomized(org.springframework.integration.support.management.MessageChannelMetrics metrics) {
|
||||
assertThat(metrics.isLoggingEnabled()).isFalse();
|
||||
assertThat(TestUtils.getPropertyValue(metrics, "channelMetrics.sendDuration.window")).isEqualTo(20);
|
||||
assertThat(TestUtils.getPropertyValue(metrics, "channelMetrics.sendDuration.factor", Double.class))
|
||||
@@ -125,26 +124,30 @@ public class MBeanExporterParserTests {
|
||||
.isCloseTo(.001 / 140000, Offset.offset(.01));
|
||||
}
|
||||
|
||||
private void checkCustomized(MessageHandlerMetrics metrics) {
|
||||
private void checkCustomized(org.springframework.integration.support.management.MessageHandlerMetrics metrics) {
|
||||
assertThat(TestUtils.getPropertyValue(metrics, "handlerMetrics.duration.window")).isEqualTo(20);
|
||||
assertThat(TestUtils.getPropertyValue(metrics, "handlerMetrics.duration.factor", Double.class))
|
||||
.isCloseTo(1000000., Offset.offset(.01));
|
||||
}
|
||||
|
||||
public static class CustomMetrics implements MetricsFactory {
|
||||
public static class CustomMetrics implements org.springframework.integration.support.management.MetricsFactory {
|
||||
|
||||
@Override
|
||||
public AbstractMessageChannelMetrics createChannelMetrics(String name) {
|
||||
return new DefaultMessageChannelMetrics(name,
|
||||
new ExponentialMovingAverage(20, 1000000.),
|
||||
new ExponentialMovingAverageRate(2000, 120000, 30, true),
|
||||
new ExponentialMovingAverageRatio(130000, 40, true),
|
||||
new ExponentialMovingAverageRate(3000, 140000, 50, true));
|
||||
new org.springframework.integration.support.management.ExponentialMovingAverage(20, 1000000.),
|
||||
new org.springframework.integration.support.management.ExponentialMovingAverageRate(2000, 120000,
|
||||
30, true),
|
||||
new org.springframework.integration.support.management.ExponentialMovingAverageRatio(130000, 40,
|
||||
true),
|
||||
new org.springframework.integration.support.management.ExponentialMovingAverageRate(3000, 140000,
|
||||
50, true));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbstractMessageHandlerMetrics createHandlerMetrics(String name) {
|
||||
return new DefaultMessageHandlerMetrics(name, new ExponentialMovingAverage(20, 1000000.));
|
||||
return new DefaultMessageHandlerMetrics(name,
|
||||
new org.springframework.integration.support.management.ExponentialMovingAverage(20, 1000000.));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -40,8 +40,6 @@ import org.springframework.integration.config.EnableIntegrationManagement;
|
||||
import org.springframework.integration.config.IntegrationManagementConfigurer;
|
||||
import org.springframework.integration.jmx.config.EnableIntegrationMBeanExport;
|
||||
import org.springframework.integration.monitor.IntegrationMBeanExporter;
|
||||
import org.springframework.integration.support.management.DefaultMetricsFactory;
|
||||
import org.springframework.integration.support.management.MetricsFactory;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
import org.springframework.jmx.support.MBeanServerFactoryBean;
|
||||
import org.springframework.mock.env.MockEnvironment;
|
||||
@@ -71,8 +69,9 @@ public class EnableMBeanExportTests {
|
||||
@Autowired
|
||||
private IntegrationManagementConfigurer configurer;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Autowired
|
||||
private MetricsFactory myMetricsFactory;
|
||||
private org.springframework.integration.support.management.MetricsFactory myMetricsFactory;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Test
|
||||
@@ -142,9 +141,10 @@ public class EnableMBeanExportTests {
|
||||
return new QueueChannel();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Bean
|
||||
public MetricsFactory myMetricsFactory() {
|
||||
return new DefaultMetricsFactory();
|
||||
public org.springframework.integration.support.management.MetricsFactory myMetricsFactory() {
|
||||
return new org.springframework.integration.support.management.DefaultMetricsFactory();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.integration.support.management.MessageHandlerMetrics;
|
||||
import org.springframework.integration.support.management.BaseHandlerMetrics;
|
||||
import org.springframework.messaging.MessageChannel;
|
||||
import org.springframework.messaging.MessageDeliveryException;
|
||||
import org.springframework.messaging.PollableChannel;
|
||||
@@ -54,6 +54,7 @@ public class ChannelIntegrationTests {
|
||||
@Autowired
|
||||
private IntegrationMBeanExporter messageChannelsMonitor;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Test
|
||||
public void testMessageChannelStatistics() throws Exception {
|
||||
|
||||
@@ -76,7 +77,7 @@ public class ChannelIntegrationTests {
|
||||
try {
|
||||
requests.send(new GenericMessage<String>("foo"));
|
||||
}
|
||||
catch (MessageDeliveryException e) {
|
||||
catch (@SuppressWarnings("unused") MessageDeliveryException e) {
|
||||
}
|
||||
|
||||
assertThat(messageChannelsMonitor.getChannelSendCount(intermediateChannelName)).isEqualTo(3);
|
||||
@@ -85,10 +86,11 @@ public class ChannelIntegrationTests {
|
||||
|
||||
assertThat(messageChannelsMonitor.getChannelMetrics(intermediateChannelName)).isSameAs(intermediate);
|
||||
|
||||
MessageHandlerMetrics handlerMetrics = messageChannelsMonitor.getHandlerMetrics("bridge");
|
||||
BaseHandlerMetrics handlerMetrics = messageChannelsMonitor
|
||||
.getHandlerMetrics("bridge");
|
||||
|
||||
assertThat(handlerMetrics.getHandleCount()).isEqualTo(3);
|
||||
assertThat(handlerMetrics.getErrorCount()).isEqualTo(1);
|
||||
assertThat(handlerMetrics.handleCount()).isEqualTo(3);
|
||||
assertThat(handlerMetrics.errorCount()).isEqualTo(1);
|
||||
|
||||
assertThat(this.sourceChannel.receive(10000)).isNotNull();
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@ import org.springframework.integration.core.MessagingTemplate;
|
||||
import org.springframework.integration.endpoint.AbstractMessageSource;
|
||||
import org.springframework.integration.handler.AbstractReplyProducingMessageHandler;
|
||||
import org.springframework.integration.support.management.DefaultMessageChannelMetrics;
|
||||
import org.springframework.integration.support.management.MetricsContext;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
@@ -75,6 +74,7 @@ public class MonitorTests {
|
||||
private NullChannel nullChannel;
|
||||
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Test
|
||||
public void testStats() throws InterruptedException {
|
||||
final CountDownLatch afterSendLatch = new CountDownLatch(1);
|
||||
@@ -87,7 +87,9 @@ public class MonitorTests {
|
||||
Object result = invocation.callRealMethod();
|
||||
afterSendLatch.countDown();
|
||||
return result;
|
||||
}).when(channelMetrics).afterSend(Mockito.any(MetricsContext.class), Mockito.eq(Boolean.TRUE));
|
||||
}).when(channelMetrics)
|
||||
.afterSend(Mockito.any(org.springframework.integration.support.management.MetricsContext.class),
|
||||
Mockito.eq(Boolean.TRUE));
|
||||
|
||||
new DirectFieldAccessor(this.next).setPropertyValue("channelMetrics", channelMetrics);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user