You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2018/06/28 23:02:31 UTC
[incubator-skywalking] branch master updated: [Collector] Add
application id into service metric for UI (#1406)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 621ed2c [Collector] Add application id into service metric for UI (#1406)
621ed2c is described below
commit 621ed2c0e38ec08a6446d1a1c32e4a81a96e82c8
Author: 彭勇升 pengys <80...@qq.com>
AuthorDate: Fri Jun 29 07:02:27 2018 +0800
[Collector] Add application id into service metric for UI (#1406)
* #1405
Add application id into service metric for the page jump from overview page to service page.
* Fixed test case error.
---
.../collector/storage/ui/service/ServiceMetric.java | 19 +++++++------------
.../storage/es/dao/ui/ServiceMetricEsUIDAO.java | 3 ++-
.../dao/ui/ServiceMetricShardingjdbcUIDAO.java | 3 ++-
.../apm/collector/ui/service/ApplicationService.java | 6 ++++--
.../apm/collector/ui/service/ServiceNameService.java | 6 ++++--
.../collector/ui/service/ApplicationServiceTest.java | 7 ++++---
.../collector/ui/service/ServiceNameServiceTest.java | 18 +++++++++++++++---
.../main/resources/ui-graphql/service-layer.graphqls | 3 +--
8 files changed, 39 insertions(+), 26 deletions(-)
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 bb420b9..caf7575 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
@@ -22,26 +22,21 @@ package org.apache.skywalking.apm.collector.storage.ui.service;
* @author peng-yongsheng
*/
public class ServiceMetric {
- private int id;
- private String name;
+ private ServiceInfo service;
private long calls;
private int avgResponseTime;
private int cpm;
- public int getId() {
- return id;
+ public ServiceMetric() {
+ this.service = new ServiceInfo();
}
- public void setId(int id) {
- this.id = id;
+ public ServiceInfo getService() {
+ return service;
}
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
+ public void setService(ServiceInfo service) {
+ this.service = service;
}
public int getAvgResponseTime() {
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 9f9c17b..3ff8597 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
@@ -208,7 +208,8 @@ public class ServiceMetricEsUIDAO extends EsDAO implements IServiceMetricUIDAO {
int serviceId = ((Number)searchHit.getSource().get(ServiceMetricTable.SERVICE_ID.getName())).intValue();
if (!serviceIds.contains(serviceId)) {
ServiceMetric serviceMetric = new ServiceMetric();
- serviceMetric.setId(serviceId);
+ serviceMetric.getService().setId(serviceId);
+ serviceMetric.getService().setApplicationId(serviceId);
serviceMetric.setCalls(((Number)searchHit.getSource().get(ServiceMetricTable.TRANSACTION_CALLS.getName())).longValue());
serviceMetric.setAvgResponseTime(((Number)searchHit.getSource().get(ServiceMetricTable.TRANSACTION_AVERAGE_DURATION.getName())).intValue());
serviceMetrics.add(serviceMetric);
diff --git a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/ServiceMetricShardingjdbcUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/ServiceMetricShardingjdbcUIDAO.java
index 348de86..a1b0233 100644
--- a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/ServiceMetricShardingjdbcUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/ServiceMetricShardingjdbcUIDAO.java
@@ -208,7 +208,8 @@ public class ServiceMetricShardingjdbcUIDAO extends ShardingjdbcDAO implements I
int serviceId = rs.getInt(ServiceMetricTable.SERVICE_ID.getName());
if (!serviceIds.contains(serviceId)) {
ServiceMetric serviceMetric = new ServiceMetric();
- serviceMetric.setId(serviceId);
+ serviceMetric.getService().setId(serviceId);
+ serviceMetric.getService().setApplicationId(applicationId);
serviceMetric.setCalls(rs.getLong(ServiceMetricTable.TRANSACTION_CALLS.getName()));
serviceMetric.setAvgResponseTime(rs.getInt(ServiceMetricTable.TRANSACTION_AVERAGE_DURATION.getName()));
serviceMetrics.add(serviceMetric);
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 8dc09e7..36cfb25 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
@@ -86,14 +86,16 @@ public class ApplicationService {
long startSecondTimeBucket, long endSecondTimeBucket, Integer topN) {
List<ServiceMetric> slowServices = serviceMetricUIDAO.getSlowService(applicationId, step, startTimeBucket, endTimeBucket, topN, MetricSource.Callee);
slowServices.forEach(slowService -> {
- ServiceName serviceName = serviceNameCacheService.get(slowService.getId());
+ ServiceName serviceName = serviceNameCacheService.get(slowService.getService().getId());
try {
slowService.setCpm((int)(slowService.getCalls() / dateBetweenService.minutesBetween(serviceName.getApplicationId(), startSecondTimeBucket, endSecondTimeBucket)));
} catch (ParseException e) {
logger.error(e.getMessage(), e);
}
- slowService.setName(serviceName.getServiceName());
+ slowService.getService().setApplicationId(serviceName.getApplicationId());
+ slowService.getService().setApplicationName(applicationCacheService.getApplicationById(serviceName.getApplicationId()).getApplicationCode());
+ slowService.getService().setName(serviceName.getServiceName());
});
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 94fda5f..8f2fa22 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
@@ -109,8 +109,10 @@ public class ServiceNameService {
long startSecondTimeBucket, long endSecondTimeBucket, Integer topN) {
List<ServiceMetric> slowServices = serviceMetricUIDAO.getSlowService(0, step, startTimeBucket, endTimeBucket, topN, MetricSource.Callee);
slowServices.forEach(slowService -> {
- ServiceName serviceName = serviceNameCacheService.get(slowService.getId());
- slowService.setName(serviceName.getServiceName());
+ ServiceName serviceName = serviceNameCacheService.get(slowService.getService().getId());
+ slowService.getService().setName(serviceName.getServiceName());
+ slowService.getService().setApplicationId(serviceName.getApplicationId());
+ slowService.getService().setApplicationName(applicationCacheService.getApplicationById(serviceName.getApplicationId()).getApplicationCode());
try {
slowService.setCpm((int)(slowService.getCalls() / dateBetweenService.minutesBetween(serviceName.getApplicationId(), startSecondTimeBucket, endSecondTimeBucket)));
} catch (ParseException e) {
diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ApplicationServiceTest.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ApplicationServiceTest.java
index 64a38b1..c02ea58 100644
--- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ApplicationServiceTest.java
+++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ApplicationServiceTest.java
@@ -115,9 +115,9 @@ public class ApplicationServiceTest {
when(serviceMetricUIDAO.getSlowService(anyInt(), anyObject(), anyLong(), anyLong(), anyInt(), anyObject())).then(invocation -> {
ServiceMetric serviceMetric = new ServiceMetric();
serviceMetric.setCalls(200900);
- serviceMetric.setName("test");
+ serviceMetric.getService().setName("test");
serviceMetric.setAvgResponseTime(100);
- serviceMetric.setId(1);
+ serviceMetric.getService().setId(1);
return Collections.singletonList(serviceMetric);
});
when(serviceNameCacheService.get(anyInt())).then(invocation -> {
@@ -125,8 +125,9 @@ public class ApplicationServiceTest {
serviceName.setServiceName("serviceName");
return serviceName;
});
+ mockCache();
when(dateBetweenService.minutesBetween(anyInt(), anyLong(), anyLong())).then(invocation -> 20L);
- List<ServiceMetric> slowService = applicationService.getSlowService(-1, duration.getStep(), startTimeBucket, endTimeBucket, startSecondTimeBucket, endSecondTimeBucket, 10);
+ List<ServiceMetric> slowService = applicationService.getSlowService(1, duration.getStep(), startTimeBucket, endTimeBucket, startSecondTimeBucket, endSecondTimeBucket, 10);
Assert.assertTrue(slowService.get(0).getCpm() > 0);
}
diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameServiceTest.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameServiceTest.java
index 3a01925..358c92a 100644
--- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameServiceTest.java
+++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/test/java/org/apache/skywalking/apm/collector/ui/service/ServiceNameServiceTest.java
@@ -19,7 +19,7 @@ package org.apache.skywalking.apm.collector.ui.service;
import java.text.ParseException;
import java.util.*;
-import org.apache.skywalking.apm.collector.cache.service.ServiceNameCacheService;
+import org.apache.skywalking.apm.collector.cache.service.*;
import org.apache.skywalking.apm.collector.core.module.*;
import org.apache.skywalking.apm.collector.storage.dao.ui.*;
import org.apache.skywalking.apm.collector.storage.table.register.ServiceName;
@@ -42,6 +42,7 @@ public class ServiceNameServiceTest {
private IServiceNameServiceUIDAO serviceNameServiceUIDAO;
private IServiceMetricUIDAO serviceMetricUIDAO;
private ServiceNameCacheService serviceNameCacheService;
+ private ApplicationCacheService applicationCacheService;
private DateBetweenService dateBetweenService;
private ServiceNameService serverNameService;
private Duration duration;
@@ -56,9 +57,11 @@ public class ServiceNameServiceTest {
when(moduleManager.find(anyString())).then(invocation -> new MockModule());
serverNameService = new ServiceNameService(moduleManager);
serviceNameCacheService = mock(ServiceNameCacheService.class);
+ applicationCacheService = mock(ApplicationCacheService.class);
serviceMetricUIDAO = mock(IServiceMetricUIDAO.class);
dateBetweenService = mock(DateBetweenService.class);
Whitebox.setInternalState(serverNameService, "serviceNameCacheService", serviceNameCacheService);
+ Whitebox.setInternalState(serverNameService, "applicationCacheService", applicationCacheService);
Whitebox.setInternalState(serverNameService, "serviceMetricUIDAO", serviceMetricUIDAO);
Whitebox.setInternalState(serverNameService, "dateBetweenService", dateBetweenService);
duration = new Duration();
@@ -106,9 +109,10 @@ public class ServiceNameServiceTest {
when(serviceMetricUIDAO.getSlowService(anyInt(), anyObject(), anyLong(), anyLong(), anyInt(), anyObject())).then(invocation -> {
ServiceMetric serviceMetric = new ServiceMetric();
serviceMetric.setCalls(200901);
- serviceMetric.setName("test");
+ serviceMetric.getService().setName("test");
serviceMetric.setAvgResponseTime(100);
- serviceMetric.setId(1);
+ serviceMetric.getService().setApplicationId(1);
+ serviceMetric.getService().setId(1);
return Collections.singletonList(serviceMetric);
});
when(dateBetweenService.minutesBetween(anyInt(), anyLong(), anyLong())).then(invocation -> 20L);
@@ -121,7 +125,15 @@ public class ServiceNameServiceTest {
Mockito.when(serviceNameCacheService.get(anyInt())).then(invocation -> {
ServiceName serviceName = new ServiceName();
serviceName.setServiceName("test_name");
+ serviceName.setApplicationId(1);
return serviceName;
});
+
+ Mockito.when(applicationCacheService.getApplicationById(anyInt())).then(invocation -> {
+ org.apache.skywalking.apm.collector.storage.table.register.Application application = new org.apache.skywalking.apm.collector.storage.table.register.Application();
+ application.setApplicationId(1);
+ application.setApplicationCode("test");
+ return application;
+ });
}
}
\ No newline at end of file
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 40ab994..330328c 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
@@ -35,8 +35,7 @@ type ServiceInfo {
}
type ServiceMetric {
- id: ID!
- name: String
+ service: ServiceInfo!
# The unit is millisecond.
avgResponseTime: Int!
cpm: Int!