From 75a9283d241d8de370276df07c243c91197aaa52 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Sat, 3 Mar 2018 00:15:10 +0800 Subject: [PATCH] 1. Add application code into instance table. 2. Search server by application code by searchServer method. --- .../register/InstanceRegisterSerialWorker.java | 3 +++ .../register/provider/service/InstanceIDService.java | 12 ++++++++++++ .../collector/storage/table/register/Instance.java | 9 +++++++++ .../storage/table/register/InstanceTable.java | 1 + .../es/dao/register/InstanceRegisterEsDAO.java | 1 + .../collector/storage/es/dao/ui/InstanceEsUIDAO.java | 1 + .../es/define/register/InstanceEsTableDefine.java | 3 ++- .../h2/dao/register/InstanceRegisterH2DAO.java | 1 + .../h2/define/register/InstanceH2TableDefine.java | 1 + .../apm/collector/ui/service/ServerService.java | 4 +--- 10 files changed, 32 insertions(+), 4 deletions(-) diff --git a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/InstanceRegisterSerialWorker.java b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/InstanceRegisterSerialWorker.java index e51a4cd500..12f8fd7ba9 100644 --- a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/InstanceRegisterSerialWorker.java +++ b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/InstanceRegisterSerialWorker.java @@ -73,6 +73,7 @@ public class InstanceRegisterSerialWorker extends AbstractLocalAsyncWorker instanceRegisterGraph; private IInstanceRegisterDAO instanceRegisterDAO; + private ApplicationCacheService applicationCacheService; public InstanceIDService(ModuleManager moduleManager) { this.moduleManager = moduleManager; @@ -71,6 +73,13 @@ public class InstanceIDService implements IInstanceIDService { return instanceRegisterDAO; } + private ApplicationCacheService getApplicationCacheService() { + if (ObjectUtils.isEmpty(applicationCacheService)) { + this.applicationCacheService = moduleManager.find(CacheModule.NAME).getService(ApplicationCacheService.class); + } + return applicationCacheService; + } + @Override public int getOrCreateByAgentUUID(int applicationId, String agentUUID, long registerTime, String osInfo) { logger.debug("get or getOrCreate instance id by agent UUID, application id: {}, agentUUID: {}, registerTime: {}, osInfo: {}", applicationId, agentUUID, registerTime, osInfo); int instanceId = getInstanceCacheService().getInstanceIdByAgentUUID(applicationId, agentUUID); @@ -79,6 +88,7 @@ public class InstanceIDService implements IInstanceIDService { Instance instance = new Instance(); instance.setId("0"); instance.setApplicationId(applicationId); + instance.setApplicationCode(getApplicationCacheService().getApplicationById(applicationId).getApplicationCode()); instance.setAgentUUID(agentUUID); instance.setRegisterTime(registerTime); instance.setHeartBeatTime(registerTime); @@ -100,6 +110,7 @@ public class InstanceIDService implements IInstanceIDService { Instance instance = new Instance(); instance.setId("0"); instance.setApplicationId(applicationId); + instance.setApplicationCode(getApplicationCacheService().getApplicationById(applicationId).getApplicationCode()); instance.setAgentUUID(Const.EMPTY_STRING); instance.setRegisterTime(registerTime); instance.setHeartBeatTime(registerTime); @@ -118,6 +129,7 @@ public class InstanceIDService implements IInstanceIDService { Instance instance = new Instance(); instance.setId(String.valueOf(instanceId)); instance.setApplicationId(applicationId); + instance.setApplicationCode(getApplicationCacheService().getApplicationById(applicationId).getApplicationCode()); instance.setAgentUUID(""); instance.setRegisterTime(registerTime); instance.setHeartBeatTime(registerTime); diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java index cc4ce39a8d..8efe7dcffe 100644 --- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java +++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java @@ -32,6 +32,7 @@ public class Instance extends StreamData { new Column(InstanceTable.COLUMN_ID, new NonOperation()), new Column(InstanceTable.COLUMN_AGENT_UUID, new CoverOperation()), new Column(InstanceTable.COLUMN_OS_INFO, new CoverOperation()), + new Column(InstanceTable.COLUMN_APPLICATION_CODE, new CoverOperation()), }; private static final Column[] LONG_COLUMNS = { @@ -118,6 +119,14 @@ public class Instance extends StreamData { setDataString(2, osInfo); } + public String getApplicationCode() { + return getDataString(3); + } + + public void setApplicationCode(String applicationCode) { + setDataString(3, applicationCode); + } + public int getAddressId() { return getDataInteger(2); } diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java index 10779e7621..fcf4d8cb35 100644 --- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java +++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java @@ -26,6 +26,7 @@ import org.apache.skywalking.apm.collector.core.data.CommonTable; public class InstanceTable extends CommonTable { public static final String TABLE = "instance"; public static final String COLUMN_APPLICATION_ID = "application_id"; + public static final String COLUMN_APPLICATION_CODE = "application_code"; public static final String COLUMN_AGENT_UUID = "agent_uuid"; public static final String COLUMN_REGISTER_TIME = "register_time"; public static final String COLUMN_INSTANCE_ID = "instance_id"; diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java index 98bf29c082..074ec584d2 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java @@ -57,6 +57,7 @@ public class InstanceRegisterEsDAO extends EsDAO implements IInstanceRegisterDAO Map source = new HashMap<>(); source.put(InstanceTable.COLUMN_INSTANCE_ID, instance.getInstanceId()); source.put(InstanceTable.COLUMN_APPLICATION_ID, instance.getApplicationId()); + source.put(InstanceTable.COLUMN_APPLICATION_CODE, instance.getApplicationCode()); source.put(InstanceTable.COLUMN_AGENT_UUID, instance.getAgentUUID()); source.put(InstanceTable.COLUMN_REGISTER_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getRegisterTime())); source.put(InstanceTable.COLUMN_HEARTBEAT_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getHeartBeatTime())); diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java index 8c0e0c6949..8a08047d20 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java @@ -249,6 +249,7 @@ public class InstanceEsUIDAO extends EsDAO implements IInstanceUIDAO { for (SearchHit searchHit : searchHits) { AppServerInfo appServerInfo = new AppServerInfo(); appServerInfo.setId(((Number)searchHit.getSource().get(InstanceTable.COLUMN_INSTANCE_ID)).intValue()); + appServerInfo.setApplicationId(((Number)searchHit.getSource().get(InstanceTable.COLUMN_APPLICATION_ID)).intValue()); appServerInfo.setOsInfo((String)searchHit.getSource().get(InstanceTable.COLUMN_OS_INFO)); appServerInfos.add(appServerInfo); } diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java index e16d082963..ec545715ac 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java @@ -37,11 +37,12 @@ public class InstanceEsTableDefine extends ElasticSearchTableDefine { @Override public void initialize() { addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name())); + addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_APPLICATION_CODE, ElasticSearchColumnDefine.Type.Text.name())); addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_AGENT_UUID, ElasticSearchColumnDefine.Type.Keyword.name())); addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_REGISTER_TIME, ElasticSearchColumnDefine.Type.Long.name())); addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name())); addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_HEARTBEAT_TIME, ElasticSearchColumnDefine.Type.Long.name())); - addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_OS_INFO, ElasticSearchColumnDefine.Type.Keyword.name())); + addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_OS_INFO, ElasticSearchColumnDefine.Type.Text.name())); addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name())); addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_IS_ADDRESS, ElasticSearchColumnDefine.Type.Integer.name())); } diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java index e1042f5dc3..5f35369ac5 100644 --- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java +++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java @@ -58,6 +58,7 @@ public class InstanceRegisterH2DAO extends H2DAO implements IInstanceRegisterDAO source.put(InstanceTable.COLUMN_ID, instance.getId()); source.put(InstanceTable.COLUMN_INSTANCE_ID, instance.getInstanceId()); source.put(InstanceTable.COLUMN_APPLICATION_ID, instance.getApplicationId()); + source.put(InstanceTable.COLUMN_APPLICATION_CODE, instance.getApplicationCode()); source.put(InstanceTable.COLUMN_AGENT_UUID, instance.getAgentUUID()); source.put(InstanceTable.COLUMN_REGISTER_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getRegisterTime())); source.put(InstanceTable.COLUMN_HEARTBEAT_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getHeartBeatTime())); diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java index 2b763d17f8..54789fa01a 100644 --- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java +++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java @@ -34,6 +34,7 @@ public class InstanceH2TableDefine extends H2TableDefine { @Override public void initialize() { addColumn(new H2ColumnDefine(InstanceTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name())); addColumn(new H2ColumnDefine(InstanceTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name())); + addColumn(new H2ColumnDefine(InstanceTable.COLUMN_APPLICATION_CODE, H2ColumnDefine.Type.Varchar.name())); addColumn(new H2ColumnDefine(InstanceTable.COLUMN_AGENT_UUID, H2ColumnDefine.Type.Varchar.name())); addColumn(new H2ColumnDefine(InstanceTable.COLUMN_REGISTER_TIME, H2ColumnDefine.Type.Bigint.name())); addColumn(new H2ColumnDefine(InstanceTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name())); diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServerService.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServerService.java index 81a1c66b73..93528977ac 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServerService.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/ServerService.java @@ -163,9 +163,7 @@ public class ServerService { private void buildAppServerInfo(List serverInfos) { serverInfos.forEach(serverInfo -> { - int applicationId = instanceCacheService.getApplicationId(serverInfo.getId()); - serverInfo.setApplicationId(applicationId); - serverInfo.setApplicationCode(applicationCacheService.getApplicationById(applicationId).getApplicationCode()); + serverInfo.setApplicationCode(applicationCacheService.getApplicationById(serverInfo.getApplicationId()).getApplicationCode()); if (StringUtils.isNotEmpty(serverInfo.getOsInfo())) { JsonObject osInfoJson = gson.fromJson(serverInfo.getOsInfo(), JsonObject.class); if (osInfoJson.has("osName")) { -- GitLab