diff --git a/apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/AdminServiceHealthIndicator.java b/apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/AdminServiceHealthIndicator.java
new file mode 100644
index 0000000000000000000000000000000000000000..55597162762aaa459b7008a60abe5766fc48cdc5
--- /dev/null
+++ b/apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/AdminServiceHealthIndicator.java
@@ -0,0 +1,32 @@
+package com.ctrip.apollo.adminservice;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.actuate.health.Health;
+import org.springframework.boot.actuate.health.HealthIndicator;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Component;
+
+import com.ctrip.apollo.biz.service.AppService;
+
+@Component
+public class AdminServiceHealthIndicator implements HealthIndicator {
+
+ @Autowired
+ private AppService appService;
+
+ @Override
+ public Health health() {
+ int errorCode = check();
+ if (errorCode != 0) {
+ return Health.down().withDetail("Error Code", errorCode).build();
+ }
+ return Health.up().build();
+ }
+
+ private int check() {
+ PageRequest pageable = new PageRequest(0, 1);
+ appService.findAll(pageable);
+ return 0;
+ }
+
+}
diff --git a/apollo-biz/pom.xml b/apollo-biz/pom.xml
index d07ae27bca1e5348a56bb522b6347642f8cbcb32..735d863feb6b046797b5b34de489fdd3802649a5 100644
--- a/apollo-biz/pom.xml
+++ b/apollo-biz/pom.xml
@@ -16,6 +16,10 @@
com.ctrip.apollo
apollo-core
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
org.springframework.boot
spring-boot-starter-data-jpa
diff --git a/apollo-biz/src/main/java/com/ctrip/apollo/biz/service/AdminService.java b/apollo-biz/src/main/java/com/ctrip/apollo/biz/service/AdminService.java
index 1b0d3528758b91643ad9325598495ad2bce33693..e5dfa37996f0d627dd29a215c996fc1d39bfd045 100644
--- a/apollo-biz/src/main/java/com/ctrip/apollo/biz/service/AdminService.java
+++ b/apollo-biz/src/main/java/com/ctrip/apollo/biz/service/AdminService.java
@@ -1,6 +1,7 @@
package com.ctrip.apollo.biz.service;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.actuate.metrics.CounterService;
import org.springframework.stereotype.Service;
import com.ctrip.apollo.biz.entity.App;
@@ -27,8 +28,12 @@ public class AdminService {
@Autowired
private ClusterRepository clusterRepository;
+ @Autowired
+ private CounterService counter;
+
public App createNewApp(String appId, String appName, String ownerName, String ownerEmail,
String namespace) {
+ counter.increment("admin.createNewApp.start");
App app = new App();
app.setAppId(appId);
app.setName(appName);
@@ -51,7 +56,7 @@ public class AdminService {
ns.setClusterName(cluster.getName());
ns.setNamespaceName(namespace);
namespaceRepository.save(ns);
-
+ counter.increment("admin.createNewApp.success");
return app;
}
}
diff --git a/apollo-configservice/src/main/java/com/ctrip/apollo/configservice/ConfigServiceHealthIndicator.java b/apollo-configservice/src/main/java/com/ctrip/apollo/configservice/ConfigServiceHealthIndicator.java
new file mode 100644
index 0000000000000000000000000000000000000000..8390b965d0d5bbb1ab910e0461d54453e1ea7100
--- /dev/null
+++ b/apollo-configservice/src/main/java/com/ctrip/apollo/configservice/ConfigServiceHealthIndicator.java
@@ -0,0 +1,32 @@
+package com.ctrip.apollo.configservice;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.actuate.health.Health;
+import org.springframework.boot.actuate.health.HealthIndicator;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Component;
+
+import com.ctrip.apollo.biz.service.AppService;
+
+@Component
+public class ConfigServiceHealthIndicator implements HealthIndicator {
+
+ @Autowired
+ private AppService appService;
+
+ @Override
+ public Health health() {
+ int errorCode = check();
+ if (errorCode != 0) {
+ return Health.down().withDetail("Error Code", errorCode).build();
+ }
+ return Health.up().build();
+ }
+
+ private int check() {
+ PageRequest pageable = new PageRequest(0, 1);
+ appService.findAll(pageable);
+ return 0;
+ }
+
+}
diff --git a/apollo-portal/pom.xml b/apollo-portal/pom.xml
index e824ed2e3c2f512459c4be91865eb51a0c16c7ee..530ebe18b74528fe4a1d44c170aaa70666b43e0d 100644
--- a/apollo-portal/pom.xml
+++ b/apollo-portal/pom.xml
@@ -1,50 +1,31 @@
-
- com.ctrip.apollo
- apollo
- 0.0.1-SNAPSHOT
- ../pom.xml
-
- 4.0.0
- apollo-portal
- Apollo Portal
-
-
- com.ctrip.apollo
- apollo-core
-
-
- org.springframework.cloud
- spring-cloud-starter-eureka
-
-
- org.springframework.boot
- spring-boot-devtools
- true
-
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
- com.h2database
- h2
-
-
- mysql
- mysql-connector-java
- runtime
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ com.ctrip.apollo
+ apollo
+ 0.0.1-SNAPSHOT
+ ../pom.xml
+
+ 4.0.0
+ apollo-portal
+ Apollo Portal
+
+
+ com.ctrip.apollo
+ apollo-core
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+