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 bc662532f2efb1748cf8162d54d4fda8b6edd60b Author: zhengyangyong <[email protected]> AuthorDate: Wed Jan 17 09:22:49 2018 +0800 SCB-12 fix pr comment Signed-off-by: zhengyangyong <[email protected]> --- .../metrics/core/custom/WindowCounterService.java | 4 +-- .../metrics/core/TestHealthCheckerManager.java | 16 ++++++------ .../metrics/core/TestHealthCheckerPublisher.java | 6 ++--- .../servicecomb/metrics/core/TestPublisher.java | 2 +- .../samples/metrics/custom/ShopDemoService.java | 16 ++++++++++-- .../src/main/resources/microservice.yaml | 30 ++++++++++++++++++++++ 6 files changed, 57 insertions(+), 17 deletions(-) diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/custom/WindowCounterService.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/custom/WindowCounterService.java index e510047..26ba380 100644 --- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/custom/WindowCounterService.java +++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/custom/WindowCounterService.java @@ -18,10 +18,10 @@ package org.apache.servicecomb.metrics.core.custom; /** - GaugeService is complex service for manage Window Time-related Step Counter, + WindowCounterService is complex service for manage Window Time-related Step Counter, It will output total,count,tps,rate,average,max and min examples: - if record three time in one window,and window time = 2000 (2 seconds), like : + if record four time in one window,and window time = 2000 (2 seconds), like : record("Order Amount",100) record("Order Amount",200) record("Order Amount",300) 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 index 1d25569..507ff77 100644 --- 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 @@ -87,18 +87,18 @@ public class TestHealthCheckerManager { Map<String, HealthCheckResult> results = manager.check(); - Assert.assertTrue(results.get("default").isHealthy()); + Assert.assertEquals(true,results.get("default").isHealthy()); DefaultHealthCheckExtraData data = JsonUtils.OBJ_MAPPER .readValue(results.get("default").getExtraData(), DefaultHealthCheckExtraData.class); - Assert.assertTrue(data.getAppId().equals("appId")); - Assert.assertTrue(data.getServiceName().equals("serviceName")); - Assert.assertTrue(data.getServiceVersion().equals("0.0.1")); - Assert.assertTrue(data.getInstanceId().equals("001")); - Assert.assertTrue(data.getHostName().equals("localhost")); - Assert.assertTrue(data.getEndpoints().equals("127.0.0.1,192.168.0.100")); + 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.assertTrue(!result.isHealthy()); + 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 bef712e..3fb16e6 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 @@ -48,11 +48,9 @@ public class TestHealthCheckerPublisher { HealthCheckerPublisher publisher = new DefaultHealthCheckerPublisher(manager); Map<String, HealthCheckResult> content = publisher.health(); - Assert.assertTrue(JsonUtils.writeValueAsString(content.get("default")) - .equals(JsonUtils.writeValueAsString(result))); + Assert.assertEquals(JsonUtils.writeValueAsString(result),JsonUtils.writeValueAsString(content.get("default"))); HealthCheckResult checkResult = publisher.healthWithName("default"); - Assert.assertTrue(JsonUtils.writeValueAsString(checkResult) - .equals(JsonUtils.writeValueAsString(result))); + Assert.assertEquals(JsonUtils.writeValueAsString(result),JsonUtils.writeValueAsString(checkResult)); } } diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestPublisher.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestPublisher.java index 1586b46..8650fc5 100644 --- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestPublisher.java +++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestPublisher.java @@ -54,7 +54,7 @@ public class TestPublisher { Assert.assertEquals(31, metricsMap.size()); List<Long> appliedWindowTime = publisher.getAppliedWindowTime(); - Assert.assertEquals(appliedWindowTime.size(), 3); + Assert.assertEquals(3, appliedWindowTime.size()); Assert.assertThat(appliedWindowTime, containsInAnyOrder(Arrays.asList(1000L, 2000L, 3000L).toArray())); } } diff --git a/samples/custom-business-metrics/src/main/java/org/apache/servicecomb/samples/metrics/custom/ShopDemoService.java b/samples/custom-business-metrics/src/main/java/org/apache/servicecomb/samples/metrics/custom/ShopDemoService.java index 1245339..6e5faec 100644 --- a/samples/custom-business-metrics/src/main/java/org/apache/servicecomb/samples/metrics/custom/ShopDemoService.java +++ b/samples/custom-business-metrics/src/main/java/org/apache/servicecomb/samples/metrics/custom/ShopDemoService.java @@ -42,6 +42,8 @@ public class ShopDemoService { this.counterService = counterService; this.gaugeService = gaugeService; this.windowCounterService = windowCounterService; + + login(null,null); } public void login(String name, String password) { @@ -60,16 +62,18 @@ public class ShopDemoService { //sim record order process time windowCounterService.record("Order Latency", System.currentTimeMillis() - start); + //plus one windowCounterService.record("Order Count", 1); - //only support long,please do unit convert ,$99.00 -> $9900 , $59.99 -> 5999 + //only support long,please do unit convert ,$99.00 dollar -> $9900 cent, $59.99 dollar -> $5999 cent windowCounterService.record("Order Amount", (long) round(amount * 100, 0)); } public void discount(double value) { //make a discount to Levis Jeans - gaugeService.update("Levis Jeans", value); + //record current Levis Jeans Discount + gaugeService.update("Levis Jeans Discount", value); } private double round(double value, int places) { @@ -79,4 +83,12 @@ public class ShopDemoService { } return 0; } + + /* Output of RegistryMetric.customMetrics : + * Active User + * Order Latency (total,count,tps,rate,average,max,min) + * Order Count (total,count,tps,rate,average,max,min) + * Order Amount (total,count,tps,rate,average,max,min) + * Levis Jeans Discount + */ } diff --git a/samples/custom-business-metrics/src/main/resources/microservice.yaml b/samples/custom-business-metrics/src/main/resources/microservice.yaml new file mode 100644 index 0000000..c1c9226 --- /dev/null +++ b/samples/custom-business-metrics/src/main/resources/microservice.yaml @@ -0,0 +1,30 @@ +# +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +# all interconnected microservices must belong to an application wth the same ID +APPLICATION_ID: metrics +service_description: +# name of the declaring microservice + name: metricsCustom + version: 0.0.1 +cse: + service: + registry: + address: http://127.0.0.1:30100 + rest: + address: 0.0.0.0:7777 \ No newline at end of file -- To stop receiving notification emails like this one, please contact [email protected].
