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.