You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/02/26 13:33:48 UTC
[incubator-servicecomb-java-chassis] 07/07: SCB-327 improve test
case and fix pr comment
This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit f55177e19f9a907c5e14cf372c78e8d2217c44b2
Author: zhengyangyong <ya...@huawei.com>
AuthorDate: Sun Feb 25 10:40:50 2018 +0800
SCB-327 improve test case and fix pr comment
Signed-off-by: zhengyangyong <ya...@huawei.com>
---
.../foundation/common/event/TestEventBus.java | 26 ++-
.../metrics/health/TestHealthCheckerManager.java | 76 +++++++--
.../foundation/metrics/publish/TestMetricNode.java | 39 ++++-
.../metrics/publish/TestMetricsLoader.java | 17 +-
.../core/publish/HealthCheckerPublisher.java | 5 +-
.../metrics/core/TestHealthCheckerPublisher.java | 14 +-
.../metrics/core/TestMetricsPublisher.java | 4 +-
...EventAndRunner.java => TestMonitorManager.java} | 181 +++++++++++++++------
8 files changed, 275 insertions(+), 87 deletions(-)
diff --git a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/event/TestEventBus.java b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/event/TestEventBus.java
index d404508..5def0ad 100644
--- a/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/event/TestEventBus.java
+++ b/foundations/foundation-common/src/test/java/org/apache/servicecomb/foundation/common/event/TestEventBus.java
@@ -28,7 +28,31 @@ import org.junit.Test;
public class TestEventBus {
@Test
- public void test() throws InterruptedException {
+ public void checkEventReceivedAndProcessed() {
+ AtomicBoolean eventReceived = new AtomicBoolean(false);
+
+ EventListener<String> listener = new EventListener<String>() {
+ @Override
+ public Class<String> getEventClass() {
+ return String.class;
+ }
+
+ @Override
+ public void process(String data) {
+ eventReceived.set(true);
+ }
+ };
+
+ EventBus.getInstance().registerEventListener(listener);
+
+ EventBus.getInstance().triggerEvent("xxx");
+ await().atMost(1, TimeUnit.SECONDS)
+ .until(eventReceived::get);
+ Assert.assertTrue(eventReceived.get());
+ }
+
+ @Test
+ public void checkEventCanNotReceivedAfterUnregister() throws InterruptedException {
AtomicBoolean eventReceived = new AtomicBoolean(false);
EventListener<String> listener = new EventListener<String>() {
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/health/TestHealthCheckerManager.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/health/TestHealthCheckerManager.java
index bcc3a35..c8474ee 100644
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/health/TestHealthCheckerManager.java
+++ b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/health/TestHealthCheckerManager.java
@@ -24,26 +24,72 @@ import org.junit.Test;
public class TestHealthCheckerManager {
- @Test
- public void testRegistry() {
- HealthCheckerManager.getInstance().register(new HealthChecker() {
- @Override
- public String getName() {
- return "test";
- }
-
- @Override
- public HealthCheckResult check() {
- return new HealthCheckResult(false, "bad", "bad call");
- }
- });
+ private HealthChecker good = new HealthChecker() {
+ @Override
+ public String getName() {
+ return "testBad";
+ }
+
+ @Override
+ public HealthCheckResult check() {
+ return new HealthCheckResult(false, "bad", "bad component");
+ }
+ };
+
+ private HealthChecker bad = new HealthChecker() {
+ @Override
+ public String getName() {
+ return "testGood";
+ }
+
+ @Override
+ public HealthCheckResult check() {
+ return new HealthCheckResult(true, "good", "good component");
+ }
+ };
+ private void reset() {
+ HealthCheckerManager.getInstance().unregister(good.getName());
+ HealthCheckerManager.getInstance().unregister(bad.getName());
+ }
+
+ @Test
+ public void checkResultCount() {
+ reset();
Map<String, HealthCheckResult> results = HealthCheckerManager.getInstance().check();
+ Assert.assertEquals(0, results.size());
+
+ reset();
+ HealthCheckerManager.getInstance().register(good);
+ results = HealthCheckerManager.getInstance().check();
Assert.assertEquals(1, results.size());
- HealthCheckResult result = HealthCheckerManager.getInstance().check().get("test");
+ reset();
+ HealthCheckerManager.getInstance().register(good);
+ HealthCheckerManager.getInstance().register(bad);
+ results = HealthCheckerManager.getInstance().check();
+ Assert.assertEquals(2, results.size());
+ }
+
+ @Test
+ public void checkGoodResult() {
+ reset();
+ HealthCheckerManager.getInstance().register(good);
+ HealthCheckerManager.getInstance().register(bad);
+ HealthCheckResult result = HealthCheckerManager.getInstance().check().get("testGood");
+ Assert.assertEquals(true, result.isHealthy());
+ Assert.assertEquals("good", result.getInformation());
+ Assert.assertEquals("good component", result.getExtraData());
+ }
+
+ @Test
+ public void checkBadResult() {
+ reset();
+ HealthCheckerManager.getInstance().register(good);
+ HealthCheckerManager.getInstance().register(bad);
+ HealthCheckResult result = HealthCheckerManager.getInstance().check().get("testBad");
Assert.assertEquals(false, result.isHealthy());
Assert.assertEquals("bad", result.getInformation());
- Assert.assertEquals("bad call", result.getExtraData());
+ Assert.assertEquals("bad component", result.getExtraData());
}
}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricNode.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricNode.java
index 7468030..8601137 100644
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricNode.java
+++ b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricNode.java
@@ -22,11 +22,14 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.junit.Assert;
+import org.junit.BeforeClass;
import org.junit.Test;
public class TestMetricNode {
- @Test
- public void test() {
+ private static MetricsLoader loader;
+
+ @BeforeClass
+ public static void steup() {
Map<String, Double> metrics = new HashMap<>();
metrics.put("X(K1=1,K2=2,K3=3,unit=SECONDS,statistic=A)", 100.0);
metrics.put("X(K1=1,K2=2,K3=30000,unit=SECONDS,statistic=AA)", 110.0);
@@ -39,30 +42,48 @@ public class TestMetricNode {
metrics.put("Y(K1=100,K2=200,K3=300)", 700.0);
metrics.put("Y(K1=1000,K2=2000,K3=3000)", 800.0);
- MetricsLoader loader = new MetricsLoader(metrics);
+ loader = new MetricsLoader(metrics);
+ }
+
+ @Test
+ public void checkNodeMetricCount() {
MetricNode node = loader.getMetricTree("X", "K1");
MetricNode node_k1 = node.getChildrenNode("1");
-
- //check metrics list
Assert.assertEquals(3, node_k1.getMetricCount());
+ }
- //check getFirstMatchMetricValue with single Tag
+ @Test
+ public void checkGetFirstMatchMetricValueWithSingleTag() {
+ MetricNode node = loader.getMetricTree("X", "K1");
+ MetricNode node_k1 = node.getChildrenNode("1");
Assert.assertEquals(100, node_k1.getFirstMatchMetricValue("K2", "2"), 0);
Assert.assertEquals(100 * 1000, node_k1.getFirstMatchMetricValue(TimeUnit.MILLISECONDS, "K2", "2"), 0);
Assert.assertEquals(100 * 1000, node_k1.getFirstMatchMetricValue(TimeUnit.MILLISECONDS, "K2", "2"), 0);
+ }
- //check getFirstMatchMetricValue with multi Tag
+ @Test
+ public void checkGetFirstMatchMetricValueWithMultiTag() {
+ MetricNode node = loader.getMetricTree("X", "K1");
+ MetricNode node_k1 = node.getChildrenNode("1");
Assert.assertEquals(200, node_k1.getFirstMatchMetricValue("K3", "30", "K2", "20"), 0);
Assert.assertEquals(200 * 1000, node_k1.getFirstMatchMetricValue(TimeUnit.MILLISECONDS, "K3", "30", "K2", "20"), 0);
Assert.assertEquals(110.0, node_k1.getFirstMatchMetricValue("K2", "2", "K3", "30000"), 0);
Assert
.assertEquals(110 * 1000, node_k1.getFirstMatchMetricValue(TimeUnit.MILLISECONDS, "K2", "2", "K3", "30000"), 0);
+ }
- //check direct get statistic value
+ @Test
+ public void checkGetMatchStatisticMetricValue() {
+ MetricNode node = loader.getMetricTree("X", "K1");
+ MetricNode node_k1 = node.getChildrenNode("1");
Assert.assertEquals(100, node_k1.getMatchStatisticMetricValue("A"), 0);
Assert.assertEquals(100 * 1000, node_k1.getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "A"), 0);
+ }
- //check generate new MetricNode from existed MetricNode
+ @Test
+ public void checkGenerateMetricNodeFromExistedNode() {
+ MetricNode node = loader.getMetricTree("X", "K1");
+ MetricNode node_k1 = node.getChildrenNode("1");
MetricNode newNode = new MetricNode(node_k1.getMetrics(), "K2", "K3");
Assert.assertEquals(1, newNode.getChildrenNode("2").getChildrenNode("3").getMetricCount(), 0);
}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricsLoader.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricsLoader.java
index b650819..917d9e5 100644
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricsLoader.java
+++ b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricsLoader.java
@@ -21,11 +21,14 @@ import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
+import org.junit.BeforeClass;
import org.junit.Test;
public class TestMetricsLoader {
- @Test
- public void test() {
+ private static MetricsLoader loader;
+
+ @BeforeClass
+ public static void setup() {
Map<String, Double> metrics = new HashMap<>();
metrics.put("X(K1=1,K2=2,K3=3)", 100.0);
metrics.put("X(K1=1,K2=20,K3=30)", 200.0);
@@ -37,8 +40,16 @@ public class TestMetricsLoader {
metrics.put("Y(K1=100,K2=200,K3=300)", 700.0);
metrics.put("Y(K1=1000,K2=2000,K3=3000)", 800.0);
- MetricsLoader loader = new MetricsLoader(metrics);
+ loader = new MetricsLoader(metrics);
+ }
+
+ @Test
+ public void checkFirstMatchMetricValue() {
Assert.assertEquals(200.0, loader.getFirstMatchMetricValue("X", "K3", "30"), 0);
+ }
+
+ @Test
+ public void checkGetChildrenCount() {
MetricNode node = loader.getMetricTree("X", "K1");
Assert.assertEquals(2, node.getChildrenCount());
}
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/HealthCheckerPublisher.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/HealthCheckerPublisher.java
index 17679a3..fba4f44 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/HealthCheckerPublisher.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/HealthCheckerPublisher.java
@@ -17,12 +17,9 @@
package org.apache.servicecomb.metrics.core.publish;
-import java.util.List;
import java.util.Map;
-import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
import org.apache.servicecomb.foundation.metrics.health.HealthCheckResult;
-import org.apache.servicecomb.foundation.metrics.health.HealthChecker;
import org.apache.servicecomb.foundation.metrics.health.HealthCheckerManager;
import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.springframework.web.bind.annotation.CrossOrigin;
@@ -44,7 +41,7 @@ public class HealthCheckerPublisher {
return true;
}
- @RequestMapping(path = "/detail", method = RequestMethod.GET)
+ @RequestMapping(path = "/details", method = RequestMethod.GET)
@CrossOrigin
public Map<String, HealthCheckResult> checkHealthDetails() {
return HealthCheckerManager.getInstance().check();
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestHealthCheckerPublisher.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestHealthCheckerPublisher.java
index 037d3cd..613b252 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestHealthCheckerPublisher.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestHealthCheckerPublisher.java
@@ -24,12 +24,13 @@ import org.apache.servicecomb.foundation.metrics.health.HealthChecker;
import org.apache.servicecomb.foundation.metrics.health.HealthCheckerManager;
import org.apache.servicecomb.metrics.core.publish.HealthCheckerPublisher;
import org.junit.Assert;
+import org.junit.BeforeClass;
import org.junit.Test;
public class TestHealthCheckerPublisher {
- @Test
- public void test() {
+ @BeforeClass
+ public static void setup() {
HealthCheckerManager.getInstance().register(new HealthChecker() {
@Override
public String getName() {
@@ -53,13 +54,18 @@ public class TestHealthCheckerPublisher {
return new HealthCheckResult(false, "info2", "extra data 2");
}
});
+ }
+ @Test
+ public void checkHealth() {
HealthCheckerPublisher publisher = new HealthCheckerPublisher();
-
Assert.assertEquals(false, publisher.checkHealth());
+ }
+ @Test
+ public void checkHealthDetails() {
+ HealthCheckerPublisher publisher = new HealthCheckerPublisher();
Map<String, HealthCheckResult> content = publisher.checkHealthDetails();
-
Assert.assertEquals(true, content.get("test").isHealthy());
Assert.assertEquals("info", content.get("test").getInformation());
Assert.assertEquals("extra data", content.get("test").getExtraData());
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsPublisher.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsPublisher.java
index c310dd6..a38a0a9 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsPublisher.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMetricsPublisher.java
@@ -25,7 +25,9 @@ import org.junit.Test;
public class TestMetricsPublisher {
@Test
- public void test() {
+ public void testMeasure() {
+ System.getProperties().setProperty(MetricsConfig.METRICS_WINDOW_TIME, "2000");
+
MetricsPublisher publisher = new MetricsPublisher();
Map<String, Double> metrics = publisher.measure();
//10 jvm metrics get
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestEventAndRunner.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMonitorManager.java
similarity index 64%
rename from metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestEventAndRunner.java
rename to metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMonitorManager.java
index 88efd35..3f9e714 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestEventAndRunner.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestMonitorManager.java
@@ -29,13 +29,17 @@ import org.apache.servicecomb.foundation.metrics.publish.MetricNode;
import org.apache.servicecomb.foundation.metrics.publish.MetricsLoader;
import org.apache.servicecomb.swagger.invocation.InvocationType;
import org.junit.Assert;
+import org.junit.BeforeClass;
import org.junit.Test;
-public class TestEventAndRunner {
+public class TestMonitorManager {
- @Test
- public void test() throws InterruptedException {
- //init
+ private static MetricsLoader currentWindowMetricsLoader;
+
+ private static MetricsLoader nextWindowMetricsLoader;
+
+ @BeforeClass
+ public static void setup() throws InterruptedException {
System.getProperties().setProperty(MetricsConfig.METRICS_WINDOW_TIME, "2000");
//==========================================================================
@@ -74,19 +78,35 @@ public class TestEventAndRunner {
//fun4 is a PRODUCER call only started and no processing start and finished
EventBus.getInstance().triggerEvent(new InvocationStartedEvent("fun4", InvocationType.PRODUCER, System.nanoTime()));
- //==========================================================================
-
Map<String, Double> metrics = MonitorManager.getInstance().measure();
- MetricsLoader loader = new MetricsLoader(metrics);
- MetricNode node = loader
+ currentWindowMetricsLoader = new MetricsLoader(metrics);
+
+ //sim at lease one window time
+ Thread.sleep(2000);
+
+ metrics = MonitorManager.getInstance().measure();
+ nextWindowMetricsLoader = new MetricsLoader(metrics);
+ }
+
+ @Test
+ public void checkFun1WaitInQueue() {
+ MetricNode node = currentWindowMetricsLoader
.getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
MetricsConst.TAG_STAGE);
- //checkHealth ProducerMetrics
- //fun1
MetricNode node1_queue = node.getChildrenNode("fun1")
.getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
.getChildrenNode(MetricsConst.STAGE_QUEUE);
Assert.assertEquals(0, node1_queue.getMatchStatisticMetricValue("waitInQueue"), 0);
+ }
+
+ @Test
+ public void checkFun1Latency() {
+ MetricNode node = currentWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node1_queue = node.getChildrenNode("fun1")
+ .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
+ .getChildrenNode(MetricsConst.STAGE_QUEUE);
MetricNode node1_queue_status = new MetricNode(node1_queue.getMetrics(), MetricsConst.TAG_STATUS);
Assert.assertEquals(200,
node1_queue_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "latency"), 0);
@@ -110,75 +130,136 @@ public class TestEventAndRunner {
node1_whole_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "latency"), 0);
Assert.assertEquals(700,
node1_whole_status.getChildrenNode("500").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "latency"), 0);
- Assert.assertEquals(2, node1_whole_status.getChildrenNode("200").getMatchStatisticMetricValue("count"), 0);
- Assert.assertEquals(1, node1_whole_status.getChildrenNode("500").getMatchStatisticMetricValue("count"), 0);
-
- //checkHealth ConsumerMetrics
- //fun2
- MetricNode node2_whole = node.getChildrenNode("fun2")
- .getChildrenNode(String.valueOf(InvocationType.CONSUMER).toLowerCase())
- .getChildrenNode(MetricsConst.STAGE_TOTAL);
- MetricNode node2_whole_status = new MetricNode(node2_whole.getMetrics(), MetricsConst.TAG_STATUS);
- Assert.assertEquals(300,
- node2_whole_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "latency"), 0);
- Assert.assertEquals(1, node2_whole_status.getChildrenNode("200").getMatchStatisticMetricValue("count"), 0);
-
- //fun3
- MetricNode node3_queue = node.getChildrenNode("fun3")
- .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
- .getChildrenNode(MetricsConst.STAGE_QUEUE);
- Assert.assertEquals(0, node3_queue.getMatchStatisticMetricValue("waitInQueue"), 0);
+ }
- //fun4
- MetricNode node4_queue = node.getChildrenNode("fun4")
+ @Test
+ public void checkFun1Count() {
+ MetricNode node = currentWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node1_whole = node.getChildrenNode("fun1")
.getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
- .getChildrenNode(MetricsConst.STAGE_QUEUE);
- Assert.assertEquals(1, node4_queue.getMatchStatisticMetricValue("waitInQueue"), 0);
-
- //sim at lease one window time
- Thread.sleep(2000);
+ .getChildrenNode(MetricsConst.STAGE_TOTAL);
+ MetricNode node1_whole_status = new MetricNode(node1_whole.getMetrics(), MetricsConst.TAG_STATUS);
+ Assert.assertEquals(2, node1_whole_status.getChildrenNode("200").getMatchStatisticMetricValue("count"), 0);
+ Assert.assertEquals(1, node1_whole_status.getChildrenNode("500").getMatchStatisticMetricValue("count"), 0);
+ }
- metrics = MonitorManager.getInstance().measure();
- loader = new MetricsLoader(metrics);
- node = loader
+ @Test
+ public void checkFun1Max() {
+ MetricNode node = nextWindowMetricsLoader
.getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
MetricsConst.TAG_STAGE);
-
- node1_queue = node.getChildrenNode("fun1").getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
+ MetricNode node1_queue = node.getChildrenNode("fun1")
+ .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
.getChildrenNode(MetricsConst.STAGE_QUEUE);
- node1_queue_status = new MetricNode(node1_queue.getMetrics(), MetricsConst.TAG_STATUS);
+ MetricNode node1_queue_status = new MetricNode(node1_queue.getMetrics(), MetricsConst.TAG_STATUS);
Assert.assertEquals(300,
node1_queue_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
Assert.assertEquals(300,
node1_queue_status.getChildrenNode("500").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
- node1_exec = node.getChildrenNode("fun1").getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
+ MetricNode node1_exec = node.getChildrenNode("fun1")
+ .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
.getChildrenNode(MetricsConst.STAGE_EXECUTION);
- node1_exec_status = new MetricNode(node1_exec.getMetrics(), MetricsConst.TAG_STATUS);
+ MetricNode node1_exec_status = new MetricNode(node1_exec.getMetrics(), MetricsConst.TAG_STATUS);
Assert.assertEquals(400,
node1_exec_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
Assert.assertEquals(400,
node1_exec_status.getChildrenNode("500").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
- node1_whole = node.getChildrenNode("fun1").getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
+ MetricNode node1_whole = node.getChildrenNode("fun1")
+ .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
.getChildrenNode(MetricsConst.STAGE_TOTAL);
- node1_whole_status = new MetricNode(node1_whole.getMetrics(), MetricsConst.TAG_STATUS);
+ MetricNode node1_whole_status = new MetricNode(node1_whole.getMetrics(), MetricsConst.TAG_STATUS);
Assert.assertEquals(700,
node1_whole_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
Assert.assertEquals(700,
node1_whole_status.getChildrenNode("500").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
+ }
+ @Test
+ public void checkFun1Tps() {
+ MetricNode node = nextWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node1_whole = node.getChildrenNode("fun1")
+ .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
+ .getChildrenNode(MetricsConst.STAGE_TOTAL);
+ MetricNode node1_whole_status = new MetricNode(node1_whole.getMetrics(), MetricsConst.TAG_STATUS);
Assert.assertEquals(1, node1_whole_status.getChildrenNode("200").getMatchStatisticMetricValue("tps"), 0);
Assert.assertEquals(0.5, node1_whole_status.getChildrenNode("500").getMatchStatisticMetricValue("tps"), 0);
+ }
- //checkHealth ConsumerMetrics
- //fun2
- node2_whole = node.getChildrenNode("fun2").getChildrenNode(String.valueOf(InvocationType.CONSUMER).toLowerCase())
+ @Test
+ public void checkFun2Latency() {
+ MetricNode node = currentWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node2_whole = node.getChildrenNode("fun2")
+ .getChildrenNode(String.valueOf(InvocationType.CONSUMER).toLowerCase())
.getChildrenNode(MetricsConst.STAGE_TOTAL);
- node2_whole_status = new MetricNode(node2_whole.getMetrics(), MetricsConst.TAG_STATUS);
+ MetricNode node2_whole_status = new MetricNode(node2_whole.getMetrics(), MetricsConst.TAG_STATUS);
Assert.assertEquals(300,
- node2_whole_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
+ node2_whole_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "latency"), 0);
+ }
+
+ @Test
+ public void checkFun2Count() {
+ MetricNode node = currentWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node2_whole = node.getChildrenNode("fun2")
+ .getChildrenNode(String.valueOf(InvocationType.CONSUMER).toLowerCase())
+ .getChildrenNode(MetricsConst.STAGE_TOTAL);
+ MetricNode node2_whole_status = new MetricNode(node2_whole.getMetrics(), MetricsConst.TAG_STATUS);
+ Assert.assertEquals(1, node2_whole_status.getChildrenNode("200").getMatchStatisticMetricValue("count"), 0);
+ }
+ @Test
+ public void checkFun2Tps() {
+ MetricNode node = nextWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node2_whole = node.getChildrenNode("fun2")
+ .getChildrenNode(String.valueOf(InvocationType.CONSUMER).toLowerCase())
+ .getChildrenNode(MetricsConst.STAGE_TOTAL);
+ MetricNode node2_whole_status = new MetricNode(node2_whole.getMetrics(), MetricsConst.TAG_STATUS);
Assert.assertEquals(0.5, node2_whole_status.getChildrenNode("200").getMatchStatisticMetricValue("tps"), 0);
}
+
+ @Test
+ public void checkFun2Max() {
+ MetricNode node = nextWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node2_whole = node.getChildrenNode("fun2")
+ .getChildrenNode(String.valueOf(InvocationType.CONSUMER).toLowerCase())
+ .getChildrenNode(MetricsConst.STAGE_TOTAL);
+ MetricNode node2_whole_status = new MetricNode(node2_whole.getMetrics(), MetricsConst.TAG_STATUS);
+ Assert.assertEquals(300,
+ node2_whole_status.getChildrenNode("200").getMatchStatisticMetricValue(TimeUnit.MILLISECONDS, "max"), 0);
+ }
+
+ @Test
+ public void checkFun3WaitInQueue() {
+ MetricNode node = currentWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node3_queue = node.getChildrenNode("fun3")
+ .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
+ .getChildrenNode(MetricsConst.STAGE_QUEUE);
+ Assert.assertEquals(0, node3_queue.getMatchStatisticMetricValue("waitInQueue"), 0);
+ }
+
+ @Test
+ public void checkFun4WaitInQueue() {
+ MetricNode node = currentWindowMetricsLoader
+ .getMetricTree(MetricsConst.SERVICECOMB_INVOCATION, MetricsConst.TAG_OPERATION, MetricsConst.TAG_ROLE,
+ MetricsConst.TAG_STAGE);
+ MetricNode node4_queue = node.getChildrenNode("fun4")
+ .getChildrenNode(String.valueOf(InvocationType.PRODUCER).toLowerCase())
+ .getChildrenNode(MetricsConst.STAGE_QUEUE);
+ Assert.assertEquals(1, node4_queue.getMatchStatisticMetricValue("waitInQueue"), 0);
+ }
}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.