wu-sheng closed pull request #838: "getTopNSlowService" service, change the 
attribute name from TPS to callsPerSec.
URL: https://github.com/apache/incubator-skywalking/pull/838
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/dao/ui/IServiceMetricUIDAO.java
 
b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/dao/ui/IServiceMetricUIDAO.java
index d97396ddc..94bd6fcfa 100644
--- 
a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/dao/ui/IServiceMetricUIDAO.java
+++ 
b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/dao/ui/IServiceMetricUIDAO.java
@@ -40,6 +40,6 @@
     List<Node> getServicesMetric(Step step, long startTime, long endTime,
         MetricSource metricSource, Collection<Integer> serviceIds);
 
-    List<ServiceMetric> getSlowService(int applicationId, Step step, long 
start, long end,
-        Integer top, MetricSource metricSource);
+    List<ServiceMetric> getSlowService(int applicationId, Step step, long 
startTimeBucket, long endTimeBucket,
+        Integer topN, MetricSource metricSource);
 }
diff --git 
a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/ui/service/ServiceMetric.java
 
b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/ui/service/ServiceMetric.java
index 7db67f8b4..9993d88bf 100644
--- 
a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/ui/service/ServiceMetric.java
+++ 
b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/ui/service/ServiceMetric.java
@@ -24,8 +24,9 @@
 public class ServiceMetric {
     private int id;
     private String name;
+    private long calls;
     private int avgResponseTime;
-    private int tps;
+    private int callsPerSec;
 
     public int getId() {
         return id;
@@ -51,11 +52,19 @@ public void setAvgResponseTime(int avgResponseTime) {
         this.avgResponseTime = avgResponseTime;
     }
 
-    public int getTps() {
-        return tps;
+    public int getCallsPerSec() {
+        return callsPerSec;
     }
 
-    public void setTps(int tps) {
-        this.tps = tps;
+    public void setCallsPerSec(int callsPerSec) {
+        this.callsPerSec = callsPerSec;
+    }
+
+    public long getCalls() {
+        return calls;
+    }
+
+    public void setCalls(long calls) {
+        this.calls = calls;
     }
 }
diff --git 
a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java
 
b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java
index 96ad55993..111355240 100644
--- 
a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java
+++ 
b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java
@@ -175,7 +175,9 @@ public ServiceMetricEsUIDAO(ElasticSearchClient client) {
         return nodes;
     }
 
-    @Override public List<ServiceMetric> getSlowService(int applicationId, 
Step step, long start, long end, Integer top,
+    @Override
+    public List<ServiceMetric> getSlowService(int applicationId, Step step, 
long startTimeBucket, long endTimeBucket,
+        Integer topN,
         MetricSource metricSource) {
         String tableName = TimePyramidTableNameBuilder.build(step, 
ServiceMetricTable.TABLE);
 
@@ -184,7 +186,7 @@ public ServiceMetricEsUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        
boolQuery.must().add(QueryBuilders.rangeQuery(ServiceMetricTable.COLUMN_TIME_BUCKET).gte(start).lte(end));
+        
boolQuery.must().add(QueryBuilders.rangeQuery(ServiceMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
         if (applicationId != 0) {
             
boolQuery.must().add(QueryBuilders.termQuery(ServiceMetricTable.COLUMN_APPLICATION_ID,
 applicationId));
         }
@@ -193,7 +195,7 @@ public ServiceMetricEsUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = 
AggregationBuilders.terms(ServiceMetricTable.COLUMN_SERVICE_ID).field(ServiceMetricTable.COLUMN_SERVICE_ID).size(top);
+        TermsAggregationBuilder aggregationBuilder = 
AggregationBuilders.terms(ServiceMetricTable.COLUMN_SERVICE_ID).field(ServiceMetricTable.COLUMN_SERVICE_ID).size(topN);
         
aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceMetricTable.COLUMN_TRANSACTION_CALLS).field(ServiceMetricTable.COLUMN_TRANSACTION_CALLS));
         
aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS).field(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
         
aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM).field(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
@@ -221,7 +223,9 @@ public ServiceMetricEsUIDAO(ElasticSearchClient client) {
 
             ServiceMetric serviceMetric = new ServiceMetric();
             InternalSimpleValue simpleValue = 
serviceIdTerm.getAggregations().get(AVG_DURATION);
+            Sum calls = 
serviceIdTerm.getAggregations().get(ServiceMetricTable.COLUMN_TRANSACTION_CALLS);
 
+            serviceMetric.setCalls((long)calls.getValue());
             serviceMetric.setId(serviceId);
             serviceMetric.setAvgResponseTime((int)simpleValue.getValue());
             serviceMetrics.add(serviceMetric);
diff --git 
a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java
 
b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java
index d21b39196..247283b86 100644
--- 
a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java
+++ 
b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java
@@ -116,7 +116,7 @@ public ServiceMetricH2UIDAO(H2Client client) {
         return null;
     }
 
-    @Override public List<ServiceMetric> getSlowService(int applicationId, 
Step step, long start, long end, Integer top,
+    @Override public List<ServiceMetric> getSlowService(int applicationId, 
Step step, long startTimeBucket, long endTimeBucket, Integer topN,
         MetricSource metricSource) {
         return null;
     }
diff --git 
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/query/OverViewLayerQuery.java
 
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/query/OverViewLayerQuery.java
index 0503e504b..d9d856d6f 100644
--- 
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/query/OverViewLayerQuery.java
+++ 
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/query/OverViewLayerQuery.java
@@ -146,10 +146,13 @@ public ConjecturalAppBrief getConjecturalApps(Duration 
duration) throws ParseExc
     }
 
     public List<ServiceMetric> getTopNSlowService(Duration duration, int topN) 
throws ParseException {
-        long start = 
DurationUtils.INSTANCE.exchangeToTimeBucket(duration.getStart());
-        long end = 
DurationUtils.INSTANCE.exchangeToTimeBucket(duration.getEnd());
+        long startTimeBucket = 
DurationUtils.INSTANCE.exchangeToTimeBucket(duration.getStart());
+        long endTimeBucket = 
DurationUtils.INSTANCE.exchangeToTimeBucket(duration.getEnd());
+
+        long startSecondTimeBucket = 
DurationUtils.INSTANCE.durationToSecondTimeBucket(duration.getStep(), 
duration.getStart());
+        long endSecondTimeBucket = 
DurationUtils.INSTANCE.durationToSecondTimeBucket(duration.getStep(), 
duration.getEnd());
 
-        return getServiceNameService().getSlowService(duration.getStep(), 
start, end, topN);
+        return getServiceNameService().getSlowService(duration.getStep(), 
startTimeBucket, endTimeBucket, startSecondTimeBucket, endSecondTimeBucket, 
topN);
     }
 
     public List<ApplicationTPS> getTopNApplicationThroughput(Duration duration,
diff --git 
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationService.java
 
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationService.java
index 13ddaaf4d..81804f714 100644
--- 
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationService.java
+++ 
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ApplicationService.java
@@ -75,7 +75,7 @@ public ApplicationService(ModuleManager moduleManager) {
         slowServices.forEach(slowService -> {
             
slowService.setName(serviceNameCacheService.get(slowService.getId()).getServiceName());
             //TODO
-            slowService.setTps(1);
+            slowService.setCallsPerSec(1);
         });
         return slowServices;
     }
diff --git 
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameService.java
 
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameService.java
index 52061a754..30cb8b6b6 100644
--- 
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameService.java
+++ 
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameService.java
@@ -27,6 +27,7 @@
 import org.apache.skywalking.apm.collector.storage.dao.ui.IServiceMetricUIDAO;
 import 
org.apache.skywalking.apm.collector.storage.dao.ui.IServiceNameServiceUIDAO;
 import org.apache.skywalking.apm.collector.storage.table.MetricSource;
+import org.apache.skywalking.apm.collector.storage.table.register.ServiceName;
 import org.apache.skywalking.apm.collector.storage.ui.common.ResponseTimeTrend;
 import org.apache.skywalking.apm.collector.storage.ui.common.SLATrend;
 import org.apache.skywalking.apm.collector.storage.ui.common.Step;
@@ -35,20 +36,26 @@
 import org.apache.skywalking.apm.collector.storage.ui.service.ServiceMetric;
 import org.apache.skywalking.apm.collector.storage.utils.DurationPoint;
 import org.apache.skywalking.apm.collector.ui.utils.DurationUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
 public class ServiceNameService {
 
+    private final Logger logger = 
LoggerFactory.getLogger(ServiceNameService.class);
+
     private final IServiceNameServiceUIDAO serviceNameServiceUIDAO;
     private final IServiceMetricUIDAO serviceMetricUIDAO;
     private final ServiceNameCacheService serviceNameCacheService;
+    private final SecondBetweenService secondBetweenService;
 
     public ServiceNameService(ModuleManager moduleManager) {
         this.serviceNameServiceUIDAO = 
moduleManager.find(StorageModule.NAME).getService(IServiceNameServiceUIDAO.class);
         this.serviceMetricUIDAO = 
moduleManager.find(StorageModule.NAME).getService(IServiceMetricUIDAO.class);
         this.serviceNameCacheService = 
moduleManager.find(CacheModule.NAME).getService(ServiceNameCacheService.class);
+        this.secondBetweenService = new SecondBetweenService(moduleManager);
     }
 
     public int getCount() {
@@ -85,13 +92,18 @@ public SLATrend getServiceSLATrend(int serviceId, Step 
step, long start, long en
         return slaTrend;
     }
 
-    public List<ServiceMetric> getSlowService(Step step, long start, long end,
-        Integer top) throws ParseException {
-        List<ServiceMetric> slowServices = 
serviceMetricUIDAO.getSlowService(0, step, start, end, top, 
MetricSource.Callee);
+    public List<ServiceMetric> getSlowService(Step step, long startTimeBucket, 
long endTimeBucket,
+        long startSecondTimeBucket, long endSecondTimeBucket,
+        Integer topN) throws ParseException {
+        List<ServiceMetric> slowServices = 
serviceMetricUIDAO.getSlowService(0, step, startTimeBucket, endTimeBucket, 
topN, MetricSource.Callee);
         slowServices.forEach(slowService -> {
-            
slowService.setName(serviceNameCacheService.get(slowService.getId()).getServiceName());
-            //TODO
-            slowService.setTps(1);
+            ServiceName serviceName = 
serviceNameCacheService.get(slowService.getId());
+            slowService.setName(serviceName.getServiceName());
+            try {
+                slowService.setCallsPerSec((int)(slowService.getCalls() / 
secondBetweenService.calculate(serviceName.getApplicationId(), 
startSecondTimeBucket, endSecondTimeBucket)));
+            } catch (ParseException e) {
+                logger.error(e.getMessage(), e);
+            }
         });
         return slowServices;
     }
diff --git 
a/apm-protocol/apm-ui-protocol/src/main/resources/ui-graphql/service-layer.graphqls
 
b/apm-protocol/apm-ui-protocol/src/main/resources/ui-graphql/service-layer.graphqls
index cf4b73ee8..3e33feebf 100644
--- 
a/apm-protocol/apm-ui-protocol/src/main/resources/ui-graphql/service-layer.graphqls
+++ 
b/apm-protocol/apm-ui-protocol/src/main/resources/ui-graphql/service-layer.graphqls
@@ -21,7 +21,7 @@ type ServiceMetric {
     name: String
     # The unit is millisecond.
     avgResponseTime: Int!
-    tps: Int!
+    callsPerSec: Int!
 }
 
 type TraceItem {


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to