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:43 UTC

[incubator-servicecomb-java-chassis] 02/07: SCB-327 adjust health check package

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 928108a5516b351d5727e368cc8896e8d1afae6e
Author: zhengyangyong <ya...@huawei.com>
AuthorDate: Mon Feb 12 11:24:10 2018 +0800

    SCB-327 adjust health check package
    
    Signed-off-by: zhengyangyong <ya...@huawei.com>
---
 .../org/apache/servicecomb/demo/perf/PerfMain.java |   3 +-
 .../demo/perf/PerfMetricsFilePublisher.java        |   2 +-
 .../health}/DefaultHealthCheckerManager.java       |   9 +-
 .../{publish => health}/HealthCheckResult.java     |   2 +-
 .../metrics/{publish => health}/HealthChecker.java |   2 +-
 .../metrics/health}/HealthCheckerManager.java      |   5 +-
 .../metrics/health/TestHealthCheckerManager.java   |  62 ++++++++++++
 .../metrics/publish/TestMetricsLoader.java         |  62 ++++++++++++
 .../metrics/core/{publish => }/DataSource.java     |   2 +-
 .../core/{publish => }/DefaultDataSource.java      |   3 +-
 .../core/health}/DefaultHealthCheckExtraData.java  |   2 +-
 .../health/DefaultMicroserviceHealthChecker.java   |   5 +-
 .../publish/DefaultHealthCheckerPublisher.java     |   3 +-
 .../core/publish/DefaultMetricsPublisher.java      |   1 +
 .../metrics/core/TestEventAndRunner.java           |   1 -
 .../metrics/core/TestHealthCheckerManager.java     | 104 ---------------------
 .../metrics/core/TestHealthCheckerPublisher.java   |  67 +++++++++++--
 .../metrics/core/TestMetricsPublisher.java         |   1 -
 .../metrics/prometheus/MetricsCollector.java       |   2 +-
 .../CustomHealthCheckerAnnotation.java             |   4 +-
 .../extendhealthcheck/MySqlHealthChecker.java      |   4 +-
 .../SomeServiceWithHealthCheckerManager.java       |   2 +-
 .../samples/mwf/WriteFileInitializer.java          |   2 +-
 23 files changed, 203 insertions(+), 147 deletions(-)

diff --git a/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMain.java b/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMain.java
index 5c6a38c..f85d08d 100644
--- a/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMain.java
+++ b/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMain.java
@@ -24,7 +24,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
-import org.apache.servicecomb.metrics.core.publish.DataSource;
+import org.apache.servicecomb.metrics.core.DataSource;
 
 public class PerfMain {
 
@@ -45,5 +45,4 @@ public class PerfMain {
       consumer.runConsumer();
     }
   }
-
 }
diff --git a/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMetricsFilePublisher.java b/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMetricsFilePublisher.java
index 915b404..a56bb0b 100644
--- a/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMetricsFilePublisher.java
+++ b/demo/perf/src/main/java/org/apache/servicecomb/demo/perf/PerfMetricsFilePublisher.java
@@ -23,7 +23,7 @@ import org.apache.servicecomb.foundation.metrics.MetricsConst;
 import org.apache.servicecomb.foundation.metrics.publish.MetricNode;
 import org.apache.servicecomb.foundation.metrics.publish.MetricsLoader;
 import org.apache.servicecomb.foundation.vertx.VertxUtils;
-import org.apache.servicecomb.metrics.core.publish.DataSource;
+import org.apache.servicecomb.metrics.core.DataSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultHealthCheckerManager.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/DefaultHealthCheckerManager.java
similarity index 82%
rename from metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultHealthCheckerManager.java
rename to foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/DefaultHealthCheckerManager.java
index a20105c..9e19e84 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultHealthCheckerManager.java
+++ b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/DefaultHealthCheckerManager.java
@@ -15,9 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.metrics.core.publish;
-
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
+package org.apache.servicecomb.foundation.metrics.health;
 
 import java.util.List;
 import java.util.Map;
@@ -25,9 +23,6 @@ import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
 
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
-import org.apache.servicecomb.foundation.metrics.publish.HealthChecker;
-import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -61,6 +56,6 @@ public class DefaultHealthCheckerManager implements HealthCheckerManager {
     if (checker != null) {
       return checker.check();
     }
-    throw new InvocationException(BAD_REQUEST, "HealthChecker name : " + name + " unregister");
+    return null;
   }
 }
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/HealthCheckResult.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthCheckResult.java
similarity index 96%
rename from foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/HealthCheckResult.java
rename to foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthCheckResult.java
index 19bad42..fc147fb 100644
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/HealthCheckResult.java
+++ b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthCheckResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.foundation.metrics.publish;
+package org.apache.servicecomb.foundation.metrics.health;
 
 public class HealthCheckResult {
   private boolean healthy;
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/HealthChecker.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthChecker.java
similarity index 93%
rename from foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/HealthChecker.java
rename to foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthChecker.java
index 2236a5e..4dd016f 100644
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/HealthChecker.java
+++ b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthChecker.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.foundation.metrics.publish;
+package org.apache.servicecomb.foundation.metrics.health;
 
 public interface HealthChecker {
   String getName();
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/HealthCheckerManager.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthCheckerManager.java
similarity index 83%
rename from metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/HealthCheckerManager.java
rename to foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthCheckerManager.java
index 687d6c6..776b815 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/HealthCheckerManager.java
+++ b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/health/HealthCheckerManager.java
@@ -15,13 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.metrics.core.publish;
+package org.apache.servicecomb.foundation.metrics.health;
 
 import java.util.Map;
 
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
-import org.apache.servicecomb.foundation.metrics.publish.HealthChecker;
-
 
 public interface HealthCheckerManager {
   void register(HealthChecker checker);
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
new file mode 100644
index 0000000..40b653c
--- /dev/null
+++ b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/health/TestHealthCheckerManager.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicecomb.foundation.metrics.health;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TestHealthCheckerManager {
+
+  @Test
+  public void testRegistry() {
+
+    List<HealthChecker> checkers = new ArrayList<>();
+
+    HealthCheckerManager manager = new DefaultHealthCheckerManager(checkers);
+
+    manager.register(new HealthChecker() {
+      @Override
+      public String getName() {
+        return "test";
+      }
+
+      @Override
+      public HealthCheckResult check() {
+        return new HealthCheckResult(false, "bad", "bad call");
+      }
+    });
+
+    Map<String, HealthCheckResult> results = manager.check();
+
+    Assert.assertEquals(1, results.size());
+
+    HealthCheckResult result = manager.check().get("test");
+    Assert.assertEquals(false, result.isHealthy());
+    Assert.assertEquals("bad", result.getInformation());
+    Assert.assertEquals("bad call", result.getExtraData());
+
+    result = manager.check("test");
+    Assert.assertEquals(false, result.isHealthy());
+    Assert.assertEquals("bad", result.getInformation());
+    Assert.assertEquals("bad call", result.getExtraData());
+  }
+}
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
new file mode 100644
index 0000000..9d5254a
--- /dev/null
+++ b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/publish/TestMetricsLoader.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicecomb.foundation.metrics.publish;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+
+public class TestMetricsLoader {
+  @Test
+  public void test() {
+    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);
+    metrics.put("X(K1=2,K2=200,K3=300)", 300.0);
+    metrics.put("X(K1=2,K2=2000,K3=3000)", 400.0);
+
+    metrics.put("Y(K1=1,K2=2,K3=3)", 500.0);
+    metrics.put("Y(K1=10,K2=20,K3=30)", 600.0);
+    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);
+
+    Assert.assertEquals(200.0, loader.getFirstMatchMetricValue("X", "K3", "30"), 0);
+
+    MetricNode node = loader.getMetricTree("X", "K1");
+
+    Assert.assertEquals(2, node.getChildren().size());
+
+    MetricNode node_k1 = node.getChildrenNode("1");
+
+    Assert.assertEquals(200, node_k1.getFirstMatchMetricValue(
+        Lists.newArrayList("K2", "K3"),
+        Lists.newArrayList("20", "30")), 0);
+
+    Assert.assertEquals(100, node_k1.getFirstMatchMetricValue("K2", "2"), 0);
+
+    MetricNode newGroup = new MetricNode(node_k1.getMetrics(), "K2", "K3");
+
+    Assert.assertEquals(1, newGroup.getChildrenNode("2").getChildrenNode("3").getMetrics().size(), 0);
+  }
+}
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DataSource.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DataSource.java
similarity index 98%
rename from metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DataSource.java
rename to metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DataSource.java
index 89bf40e..ce21faf 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DataSource.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DataSource.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.metrics.core.publish;
+package org.apache.servicecomb.metrics.core;
 
 import java.util.List;
 import java.util.Map;
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultDataSource.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DefaultDataSource.java
similarity index 97%
rename from metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultDataSource.java
rename to metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DefaultDataSource.java
index 661cddb..30241c8 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultDataSource.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/DefaultDataSource.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.metrics.core.publish;
+package org.apache.servicecomb.metrics.core;
 
 import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
 
@@ -26,7 +26,6 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
-import org.apache.servicecomb.metrics.core.MetricsConfig;
 import org.apache.servicecomb.metrics.core.monitor.RegistryMonitor;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/DefaultHealthCheckExtraData.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/health/DefaultHealthCheckExtraData.java
similarity index 96%
rename from foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/DefaultHealthCheckExtraData.java
rename to metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/health/DefaultHealthCheckExtraData.java
index 6415927..8a78fd1 100644
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/publish/DefaultHealthCheckExtraData.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/health/DefaultHealthCheckExtraData.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.servicecomb.foundation.metrics.publish;
+package org.apache.servicecomb.metrics.core.health;
 
 public class DefaultHealthCheckExtraData {
   private String instanceId;
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/health/DefaultMicroserviceHealthChecker.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/health/DefaultMicroserviceHealthChecker.java
index d452591..fb9185d 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/health/DefaultMicroserviceHealthChecker.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/health/DefaultMicroserviceHealthChecker.java
@@ -20,9 +20,8 @@ package org.apache.servicecomb.metrics.core.health;
 import javax.ws.rs.core.Response.Status;
 
 import org.apache.servicecomb.foundation.common.utils.JsonUtils;
-import org.apache.servicecomb.foundation.metrics.publish.DefaultHealthCheckExtraData;
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
-import org.apache.servicecomb.foundation.metrics.publish.HealthChecker;
+import org.apache.servicecomb.foundation.metrics.health.HealthCheckResult;
+import org.apache.servicecomb.foundation.metrics.health.HealthChecker;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultHealthCheckerPublisher.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultHealthCheckerPublisher.java
index 70d0482..e0de808 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultHealthCheckerPublisher.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultHealthCheckerPublisher.java
@@ -19,7 +19,8 @@ package org.apache.servicecomb.metrics.core.publish;
 
 import java.util.Map;
 
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
+import org.apache.servicecomb.foundation.metrics.health.HealthCheckResult;
+import org.apache.servicecomb.foundation.metrics.health.HealthCheckerManager;
 import org.apache.servicecomb.provider.rest.common.RestSchema;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.PathVariable;
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultMetricsPublisher.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultMetricsPublisher.java
index 57bd6f9..5d8385a 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultMetricsPublisher.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultMetricsPublisher.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.metrics.core.publish;
 
 import java.util.Map;
 
+import org.apache.servicecomb.metrics.core.DataSource;
 import org.apache.servicecomb.provider.rest.common.RestSchema;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
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/TestEventAndRunner.java
index f4e2ff8..b6ee521 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/TestEventAndRunner.java
@@ -39,7 +39,6 @@ import org.apache.servicecomb.foundation.metrics.publish.MetricsLoader;
 import org.apache.servicecomb.metrics.core.event.DefaultEventListenerManager;
 import org.apache.servicecomb.metrics.core.monitor.DefaultSystemMonitor;
 import org.apache.servicecomb.metrics.core.monitor.RegistryMonitor;
-import org.apache.servicecomb.metrics.core.publish.DefaultDataSource;
 import org.apache.servicecomb.swagger.invocation.InvocationType;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestHealthCheckerManager.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestHealthCheckerManager.java
deleted file mode 100644
index 506d215..0000000
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestHealthCheckerManager.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.servicecomb.metrics.core;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.servicecomb.foundation.common.utils.JsonUtils;
-import org.apache.servicecomb.foundation.metrics.publish.DefaultHealthCheckExtraData;
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
-import org.apache.servicecomb.foundation.metrics.publish.HealthChecker;
-import org.apache.servicecomb.metrics.core.health.DefaultMicroserviceHealthChecker;
-import org.apache.servicecomb.metrics.core.publish.DefaultHealthCheckerManager;
-import org.apache.servicecomb.metrics.core.publish.HealthCheckerManager;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
-import mockit.Expectations;
-
-public class TestHealthCheckerManager {
-
-  @Test
-  public void testRegistry() throws IOException {
-
-    Microservice microservice = new Microservice();
-    microservice.setAppId("appId");
-    microservice.setServiceName("serviceName");
-    microservice.setVersion("0.0.1");
-
-    MicroserviceInstance microserviceInstance = new MicroserviceInstance();
-    microserviceInstance.setEndpoints(Lists.newArrayList("127.0.0.1", "192.168.0.100"));
-    microserviceInstance.setInstanceId("001");
-    microserviceInstance.setHostName("localhost");
-
-    new Expectations(RegistryUtils.class) {
-      {
-        RegistryUtils.getMicroservice();
-        result = microservice;
-      }
-    };
-
-    new Expectations(RegistryUtils.class) {
-      {
-        RegistryUtils.getMicroserviceInstance();
-        result = microserviceInstance;
-      }
-    };
-
-    List<HealthChecker> checkers = new ArrayList<>();
-    checkers.add(new DefaultMicroserviceHealthChecker());
-
-    HealthCheckerManager manager = new DefaultHealthCheckerManager(checkers);
-
-    manager.register(new HealthChecker() {
-      @Override
-      public String getName() {
-        return "test";
-      }
-
-      @Override
-      public HealthCheckResult check() {
-        return new HealthCheckResult(false, "bad", "bad");
-      }
-    });
-
-    Map<String, HealthCheckResult> results = manager.check();
-
-    Assert.assertEquals(true, results.get("default").isHealthy());
-
-    DefaultHealthCheckExtraData data = JsonUtils.OBJ_MAPPER
-        .readValue(results.get("default").getExtraData(), DefaultHealthCheckExtraData.class);
-    Assert.assertEquals("appId", data.getAppId());
-    Assert.assertEquals("serviceName", data.getServiceName());
-    Assert.assertEquals("0.0.1", data.getServiceVersion());
-    Assert.assertEquals("001", data.getInstanceId());
-    Assert.assertEquals("localhost", data.getHostName());
-    Assert.assertEquals("127.0.0.1,192.168.0.100", data.getEndpoints());
-
-    HealthCheckResult result = manager.check("test");
-    Assert.assertEquals(false, result.isHealthy());
-  }
-}
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 8f91d33..1764e52 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
@@ -20,36 +20,83 @@ package org.apache.servicecomb.metrics.core;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.servicecomb.foundation.common.utils.JsonUtils;
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
+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.metrics.core.health.DefaultHealthCheckExtraData;
+import org.apache.servicecomb.metrics.core.health.DefaultMicroserviceHealthChecker;
 import org.apache.servicecomb.metrics.core.publish.DefaultHealthCheckerPublisher;
-import org.apache.servicecomb.metrics.core.publish.HealthCheckerManager;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
+import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
+import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
 import org.junit.Assert;
 import org.junit.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
+import com.google.common.collect.Lists;
+
+import mockit.Expectations;
 
 public class TestHealthCheckerPublisher {
 
   @Test
-  public void testPublisher() throws JsonProcessingException {
+  public void testPublisher() throws IOException {
+    Microservice microservice = new Microservice();
+    microservice.setAppId("appId");
+    microservice.setServiceName("serviceName");
+    microservice.setVersion("0.0.1");
+
+    MicroserviceInstance microserviceInstance = new MicroserviceInstance();
+    microserviceInstance.setEndpoints(Lists.newArrayList("127.0.0.1", "192.168.0.100"));
+    microserviceInstance.setInstanceId("001");
+    microserviceInstance.setHostName("localhost");
+
+    new Expectations(RegistryUtils.class) {
+      {
+        RegistryUtils.getMicroservice();
+        result = microservice;
+      }
+    };
+
+    new Expectations(RegistryUtils.class) {
+      {
+        RegistryUtils.getMicroserviceInstance();
+        result = microserviceInstance;
+      }
+    };
+
     HealthCheckerManager manager = mock(HealthCheckerManager.class);
 
     Map<String, HealthCheckResult> results = new HashMap<>();
-    HealthCheckResult result = new HealthCheckResult(true, "ok", "extra");
-    results.put("default", result);
+    HealthChecker result = new DefaultMicroserviceHealthChecker();
+    results.put("default", result.check());
 
     when(manager.check()).thenReturn(results);
-    when(manager.check("default")).thenReturn(result);
+    when(manager.check("default")).thenReturn(result.check());
 
     DefaultHealthCheckerPublisher publisher = new DefaultHealthCheckerPublisher(manager);
     Map<String, HealthCheckResult> content = publisher.health();
-    Assert.assertEquals(JsonUtils.writeValueAsString(result), JsonUtils.writeValueAsString(content.get("default")));
 
-    HealthCheckResult checkResult = publisher.healthWithName("default");
-    Assert.assertEquals(JsonUtils.writeValueAsString(result), JsonUtils.writeValueAsString(checkResult));
+    DefaultHealthCheckExtraData data = JsonUtils.OBJ_MAPPER
+        .readValue(content.get("default").getExtraData(), DefaultHealthCheckExtraData.class);
+    Assert.assertEquals("appId", data.getAppId());
+    Assert.assertEquals("serviceName", data.getServiceName());
+    Assert.assertEquals("0.0.1", data.getServiceVersion());
+    Assert.assertEquals("001", data.getInstanceId());
+    Assert.assertEquals("localhost", data.getHostName());
+    Assert.assertEquals("127.0.0.1,192.168.0.100", data.getEndpoints());
+
+    data = JsonUtils.OBJ_MAPPER
+        .readValue(publisher.healthWithName("default").getExtraData(), DefaultHealthCheckExtraData.class);
+    Assert.assertEquals("appId", data.getAppId());
+    Assert.assertEquals("serviceName", data.getServiceName());
+    Assert.assertEquals("0.0.1", data.getServiceVersion());
+    Assert.assertEquals("001", data.getInstanceId());
+    Assert.assertEquals("localhost", data.getHostName());
+    Assert.assertEquals("127.0.0.1,192.168.0.100", data.getEndpoints());
   }
 }
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 1a6bc0e..096e2da 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
@@ -21,7 +21,6 @@ import java.util.Map;
 
 import org.apache.servicecomb.metrics.core.monitor.DefaultSystemMonitor;
 import org.apache.servicecomb.metrics.core.monitor.RegistryMonitor;
-import org.apache.servicecomb.metrics.core.publish.DefaultDataSource;
 import org.apache.servicecomb.metrics.core.publish.DefaultMetricsPublisher;
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/MetricsCollector.java b/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/MetricsCollector.java
index 08e5135..10cbd36 100644
--- a/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/MetricsCollector.java
+++ b/metrics/metrics-integration/metrics-prometheus/src/main/java/org/apache/servicecomb/metrics/prometheus/MetricsCollector.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 import org.apache.servicecomb.foundation.metrics.MetricsConst;
-import org.apache.servicecomb.metrics.core.publish.DataSource;
+import org.apache.servicecomb.metrics.core.DataSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
diff --git a/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/CustomHealthCheckerAnnotation.java b/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/CustomHealthCheckerAnnotation.java
index c0ac13d..27688d0 100644
--- a/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/CustomHealthCheckerAnnotation.java
+++ b/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/CustomHealthCheckerAnnotation.java
@@ -17,8 +17,8 @@
 
 package org.apache.servicecomb.samples.metrics.extendhealthcheck;
 
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
-import org.apache.servicecomb.foundation.metrics.publish.HealthChecker;
+import org.apache.servicecomb.foundation.metrics.health.HealthCheckResult;
+import org.apache.servicecomb.foundation.metrics.health.HealthChecker;
 import org.springframework.stereotype.Component;
 
 //this health check will auto register because spring bean annotation
diff --git a/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/MySqlHealthChecker.java b/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/MySqlHealthChecker.java
index a1465e3..6e11578 100644
--- a/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/MySqlHealthChecker.java
+++ b/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/MySqlHealthChecker.java
@@ -21,8 +21,8 @@ import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 
-import org.apache.servicecomb.foundation.metrics.publish.HealthCheckResult;
-import org.apache.servicecomb.foundation.metrics.publish.HealthChecker;
+import org.apache.servicecomb.foundation.metrics.health.HealthCheckResult;
+import org.apache.servicecomb.foundation.metrics.health.HealthChecker;
 
 
 //this is a demo health checker for mysql
diff --git a/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/SomeServiceWithHealthCheckerManager.java b/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/SomeServiceWithHealthCheckerManager.java
index eee7129..42e3064 100644
--- a/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/SomeServiceWithHealthCheckerManager.java
+++ b/samples/metrics-extend-healthcheck/src/main/java/org/apache/servicecomb/samples/metrics/extendhealthcheck/SomeServiceWithHealthCheckerManager.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.samples.metrics.extendhealthcheck;
 
-import org.apache.servicecomb.metrics.core.publish.HealthCheckerManager;
+import org.apache.servicecomb.foundation.metrics.health.HealthCheckerManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
diff --git a/samples/metrics-write-file-sample/metrics-write-file/src/main/java/org/apache/servicecomb/samples/mwf/WriteFileInitializer.java b/samples/metrics-write-file-sample/metrics-write-file/src/main/java/org/apache/servicecomb/samples/mwf/WriteFileInitializer.java
index f97d255..7837a65 100644
--- a/samples/metrics-write-file-sample/metrics-write-file/src/main/java/org/apache/servicecomb/samples/mwf/WriteFileInitializer.java
+++ b/samples/metrics-write-file-sample/metrics-write-file/src/main/java/org/apache/servicecomb/samples/mwf/WriteFileInitializer.java
@@ -24,8 +24,8 @@ import java.util.concurrent.Executors;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.foundation.common.net.NetUtils;
+import org.apache.servicecomb.metrics.core.DataSource;
 import org.apache.servicecomb.metrics.core.MetricsConfig;
-import org.apache.servicecomb.metrics.core.publish.DataSource;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.springframework.beans.factory.annotation.Autowired;

-- 
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.