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/servicecomb-pack.git
commit 031fbff51aa00315e7b171cd41362d4341d53966 Author: Lei Zhang <[email protected]> AuthorDate: Mon Jul 15 14:08:36 2019 +0800 SCB-1372 Add query RESTful API for alpha metrics --- .../alpha/server/api/v1/MetricsController.java} | 33 +++++++++------------- .../alpha/server/fsm/FsmSagaDataController.java | 4 +-- .../pack/alpha/server/metrics/AlphaMetrics.java} | 32 +++++++++++---------- 3 files changed, 33 insertions(+), 36 deletions(-) diff --git a/alpha/alpha-spring-boot-compatibility/alpha-spring-boot-2-starter/src/main/java/org/apache/servicecomb/pack/alpha/server/actuate/endpoint/AlphaEndPoint.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/api/v1/MetricsController.java similarity index 54% copy from alpha/alpha-spring-boot-compatibility/alpha-spring-boot-2-starter/src/main/java/org/apache/servicecomb/pack/alpha/server/actuate/endpoint/AlphaEndPoint.java copy to alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/api/v1/MetricsController.java index 511daf5..c3aea5c 100644 --- a/alpha/alpha-spring-boot-compatibility/alpha-spring-boot-2-starter/src/main/java/org/apache/servicecomb/pack/alpha/server/actuate/endpoint/AlphaEndPoint.java +++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/api/v1/MetricsController.java @@ -15,30 +15,25 @@ * limitations under the License. */ -package org.apache.servicecomb.pack.alpha.server.actuate.endpoint; +package org.apache.servicecomb.pack.alpha.server.api.v1; -import org.apache.servicecomb.pack.alpha.core.NodeStatus; -import org.apache.servicecomb.pack.alpha.core.actuate.endpoint.AlphaStatus; +import org.apache.servicecomb.pack.alpha.server.metrics.AlphaMetrics; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.annotation.Endpoint; -import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; - -@Configuration -@Endpoint(id = "alpha") -public class AlphaEndPoint { - - private AlphaStatus alphaStatus = new AlphaStatus(); +@RestController +@RequestMapping("/alpha/api/v1") +public class MetricsController { @Autowired - @Lazy - private NodeStatus nodeStatus; + org.apache.servicecomb.pack.alpha.server.metrics.AlphaMetrics AlphaMetrics; - @ReadOperation - public AlphaStatus endpoint() { - alphaStatus.setNodeType(nodeStatus.getTypeEnum()); - return alphaStatus; + @GetMapping(value = "/metrics") + ResponseEntity<AlphaMetrics> metrics() { + return ResponseEntity.ok(AlphaMetrics); } + } diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java index c1976a5..3e28e42 100644 --- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java +++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java @@ -61,13 +61,13 @@ class FsmSagaDataController { List<Map> eventVos = new LinkedList<>(); SagaData data = SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData(); data.getEvents().forEach(event -> { - LOG.info(event.toString()); Map<String,String> obj = new HashMap(); obj.put("serviceName",event.getServiceName()); obj.put("type",event.getClass().getSimpleName()); eventVos.add(obj); }); - LOG.info("Get the event size " + eventVos.size()); + LOG.info("Get the event size {}",eventVos.size()); + LOG.info("Get the event data {}",eventVos); return ResponseEntity.ok(eventVos); } diff --git a/alpha/alpha-spring-boot-compatibility/alpha-spring-boot-2-starter/src/main/java/org/apache/servicecomb/pack/alpha/server/actuate/endpoint/AlphaEndPoint.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/metrics/AlphaMetrics.java similarity index 63% rename from alpha/alpha-spring-boot-compatibility/alpha-spring-boot-2-starter/src/main/java/org/apache/servicecomb/pack/alpha/server/actuate/endpoint/AlphaEndPoint.java rename to alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/metrics/AlphaMetrics.java index 511daf5..1b4a1ca 100644 --- a/alpha/alpha-spring-boot-compatibility/alpha-spring-boot-2-starter/src/main/java/org/apache/servicecomb/pack/alpha/server/actuate/endpoint/AlphaEndPoint.java +++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/metrics/AlphaMetrics.java @@ -15,30 +15,32 @@ * limitations under the License. */ -package org.apache.servicecomb.pack.alpha.server.actuate.endpoint; +package org.apache.servicecomb.pack.alpha.server.metrics; import org.apache.servicecomb.pack.alpha.core.NodeStatus; -import org.apache.servicecomb.pack.alpha.core.actuate.endpoint.AlphaStatus; +import org.apache.servicecomb.pack.alpha.core.NodeStatus.TypeEnum; +import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsBean; +import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.annotation.Endpoint; -import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; - -@Configuration -@Endpoint(id = "alpha") -public class AlphaEndPoint { - - private AlphaStatus alphaStatus = new AlphaStatus(); +@Component +public class AlphaMetrics { @Autowired @Lazy private NodeStatus nodeStatus; - @ReadOperation - public AlphaStatus endpoint() { - alphaStatus.setNodeType(nodeStatus.getTypeEnum()); - return alphaStatus; + @Autowired(required = false) + MetricsService metricsService; + + public MetricsBean getMetrics() { + return metricsService != null ? metricsService.metrics() : null; } + + public TypeEnum getNodeType(){ + return nodeStatus.getTypeEnum(); + } + }
