This is an automated email from the ASF dual-hosted git repository.
songxiaosheng pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new c9f8ae90d9 Add test for metadata metrics (#12162)
c9f8ae90d9 is described below
commit c9f8ae90d9cd1bf51d39f616ebe4b2638ae9ee59
Author: namelessssssssssss
<[email protected]>
AuthorDate: Tue Apr 25 19:15:03 2023 +0800
Add test for metadata metrics (#12162)
Co-authored-by: songxiaosheng <[email protected]>
---
.../metadata/MetadataMetricsCollectorTest.java | 78 +++++++++++++++++-----
1 file changed, 61 insertions(+), 17 deletions(-)
diff --git
a/dubbo-metrics/dubbo-metrics-metadata/src/test/java/org/apache/dubbo/metrics/metadata/MetadataMetricsCollectorTest.java
b/dubbo-metrics/dubbo-metrics-metadata/src/test/java/org/apache/dubbo/metrics/metadata/MetadataMetricsCollectorTest.java
index dd2662db64..1496d427e4 100644
---
a/dubbo-metrics/dubbo-metrics-metadata/src/test/java/org/apache/dubbo/metrics/metadata/MetadataMetricsCollectorTest.java
+++
b/dubbo-metrics/dubbo-metrics-metadata/src/test/java/org/apache/dubbo/metrics/metadata/MetadataMetricsCollectorTest.java
@@ -22,14 +22,13 @@ import org.apache.dubbo.metrics.event.MetricsDispatcher;
import org.apache.dubbo.metrics.event.MetricsEventBus;
import org.apache.dubbo.metrics.metadata.collector.MetadataMetricsCollector;
import org.apache.dubbo.metrics.metadata.event.MetadataEvent;
+import org.apache.dubbo.metrics.model.TimePair;
import org.apache.dubbo.metrics.model.key.MetricsKey;
import org.apache.dubbo.metrics.model.key.MetricsKeyWrapper;
-import org.apache.dubbo.metrics.model.TimePair;
import org.apache.dubbo.metrics.model.sample.GaugeMetricSample;
import org.apache.dubbo.metrics.model.sample.MetricSample;
import org.apache.dubbo.rpc.model.ApplicationModel;
import org.apache.dubbo.rpc.model.FrameworkModel;
-
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -37,19 +36,20 @@ import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Map;
+import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.stream.Collectors;
import static
org.apache.dubbo.common.constants.MetricsConstants.TAG_APPLICATION_NAME;
-import static
org.apache.dubbo.metrics.metadata.MetadataMetricsConstants.OP_TYPE_PUSH;
-import static
org.apache.dubbo.metrics.metadata.MetadataMetricsConstants.OP_TYPE_STORE_PROVIDER_INTERFACE;
-import static
org.apache.dubbo.metrics.metadata.MetadataMetricsConstants.OP_TYPE_SUBSCRIBE;
+import static org.apache.dubbo.metrics.metadata.MetadataMetricsConstants.*;
class MetadataMetricsCollectorTest {
private ApplicationModel applicationModel;
+ private MetadataMetricsCollector collector;
+
@BeforeEach
public void setup() {
FrameworkModel frameworkModel = FrameworkModel.defaultModel();
@@ -58,7 +58,10 @@ class MetadataMetricsCollectorTest {
config.setName("MockMetrics");
applicationModel.getApplicationConfigManager().setApplication(config);
+
applicationModel.getBeanFactory().getOrRegisterBean(MetricsDispatcher.class);
+ collector =
applicationModel.getBeanFactory().getOrRegisterBean(MetadataMetricsCollector.class);
+ collector.setCollectEnabled(true);
}
@AfterEach
@@ -68,10 +71,7 @@ class MetadataMetricsCollectorTest {
@Test
void testPushMetrics() {
-
-
applicationModel.getBeanFactory().getOrRegisterBean(MetricsDispatcher.class);
- MetadataMetricsCollector collector =
applicationModel.getBeanFactory().getOrRegisterBean(MetadataMetricsCollector.class);
- collector.setCollectEnabled(true);
+// MetadataMetricsCollector collector = getCollector();
MetadataEvent pushEvent = MetadataEvent.toPushEvent(applicationModel);
MetricsEventBus.post(pushEvent,
@@ -129,10 +129,7 @@ class MetadataMetricsCollectorTest {
@Test
void testSubscribeMetrics() {
-
-
applicationModel.getBeanFactory().getOrRegisterBean(MetricsDispatcher.class);
- MetadataMetricsCollector collector =
applicationModel.getBeanFactory().getOrRegisterBean(MetadataMetricsCollector.class);
- collector.setCollectEnabled(true);
+// MetadataMetricsCollector collector = getCollector();
MetadataEvent subscribeEvent =
MetadataEvent.toSubscribeEvent(applicationModel);
MetricsEventBus.post(subscribeEvent,
@@ -191,10 +188,7 @@ class MetadataMetricsCollectorTest {
@Test
void testStoreProviderMetadataMetrics() {
-
-
applicationModel.getBeanFactory().getOrRegisterBean(MetricsDispatcher.class);
- MetadataMetricsCollector collector =
applicationModel.getBeanFactory().getOrRegisterBean(MetadataMetricsCollector.class);
- collector.setCollectEnabled(true);
+// MetadataMetricsCollector collector = getCollector();
String serviceKey = "store.provider.test";
MetadataEvent metadataEvent =
MetadataEvent.toServiceSubscribeEvent(applicationModel, serviceKey);
@@ -252,4 +246,54 @@ class MetadataMetricsCollectorTest {
Assertions.assertEquals(sampleMap.get(new
MetricsKeyWrapper(MetricsKey.METRIC_RT_SUM,
OP_TYPE_STORE_PROVIDER_INTERFACE).targetKey()), c1 + c2);
}
+ @Test
+ void testMetadataPushNum() {
+
+ for (int i = 0; i < 10; i++) {
+ MetadataEvent event = MetadataEvent.toPushEvent(applicationModel);
+ if(i %2 ==0 ) {
+ MetricsEventBus.post(event,() -> true, r -> r);
+ }else {
+ MetricsEventBus.post(event,() -> false, r -> r);
+ }
+ }
+
+ List<MetricSample> samples = collector.collect();
+
+ GaugeMetricSample<?> totalNum =
getSample(MetricsKey.METADATA_PUSH_METRIC_NUM.getName(), samples);
+ GaugeMetricSample<?> succeedNum =
getSample(MetricsKey.METADATA_PUSH_METRIC_NUM_SUCCEED.getName(), samples);
+ GaugeMetricSample<?> failedNum =
getSample(MetricsKey.METADATA_PUSH_METRIC_NUM_FAILED.getName(), samples);
+
+ Assertions.assertEquals(10,totalNum.applyAsLong());
+ Assertions.assertEquals(5,succeedNum.applyAsLong());
+ Assertions.assertEquals(5,failedNum.applyAsLong());
+ }
+
+ @Test
+ void testSubscribeSum(){
+
+ for (int i = 0; i < 10; i++) {
+ MetadataEvent event =
MetadataEvent.toSubscribeEvent(applicationModel);
+ if(i %2 ==0 ) {
+ MetricsEventBus.post(event,() -> true, r -> r);
+ }else {
+ MetricsEventBus.post(event,() -> false, r -> r);
+ }
+ }
+
+ List<MetricSample> samples = collector.collect();
+
+ GaugeMetricSample<?> totalNum =
getSample(MetricsKey.METADATA_SUBSCRIBE_METRIC_NUM.getName(), samples);
+ GaugeMetricSample<?> succeedNum =
getSample(MetricsKey.METADATA_SUBSCRIBE_METRIC_NUM_SUCCEED.getName(), samples);
+ GaugeMetricSample<?> failedNum =
getSample(MetricsKey.METADATA_SUBSCRIBE_METRIC_NUM_FAILED.getName(), samples);
+
+ Assertions.assertEquals(10,totalNum.applyAsLong());
+ Assertions.assertEquals(5,succeedNum.applyAsLong());
+ Assertions.assertEquals(5,failedNum.applyAsLong());
+ }
+
+ GaugeMetricSample<?> getSample(String name, List<MetricSample> samples) {
+ return (GaugeMetricSample<?>) samples.stream().filter(metricSample ->
metricSample.getName().equals(name)).findFirst().orElseThrow(NoSuchElementException::new);
+ }
+
}