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 + + +