1. Add application code into instance table.
2. Search server by application code by searchServer method.
This commit is contained in:
parent
fc5f67f084
commit
75a9283d24
|
|
@ -73,6 +73,7 @@ public class InstanceRegisterSerialWorker extends AbstractLocalAsyncWorker<Insta
|
|||
userInstance.setId(String.valueOf(Const.NONE_INSTANCE_ID));
|
||||
userInstance.setInstanceId(Const.NONE_INSTANCE_ID);
|
||||
userInstance.setApplicationId(Const.NONE_APPLICATION_ID);
|
||||
userInstance.setApplicationCode(Const.USER_CODE);
|
||||
userInstance.setAgentUUID(Const.USER_CODE);
|
||||
userInstance.setHeartBeatTime(System.currentTimeMillis());
|
||||
userInstance.setOsInfo(Const.EMPTY_STRING);
|
||||
|
|
@ -85,6 +86,7 @@ public class InstanceRegisterSerialWorker extends AbstractLocalAsyncWorker<Insta
|
|||
newInstance.setId("2");
|
||||
newInstance.setInstanceId(2);
|
||||
newInstance.setApplicationId(instance.getApplicationId());
|
||||
newInstance.setApplicationCode(instance.getApplicationCode());
|
||||
newInstance.setAgentUUID(instance.getAgentUUID());
|
||||
newInstance.setHeartBeatTime(instance.getHeartBeatTime());
|
||||
newInstance.setOsInfo(instance.getOsInfo());
|
||||
|
|
@ -96,6 +98,7 @@ public class InstanceRegisterSerialWorker extends AbstractLocalAsyncWorker<Insta
|
|||
newInstance.setId(String.valueOf(max + 1));
|
||||
newInstance.setInstanceId(max + 1);
|
||||
newInstance.setApplicationId(instance.getApplicationId());
|
||||
newInstance.setApplicationCode(instance.getApplicationCode());
|
||||
newInstance.setAgentUUID(instance.getAgentUUID());
|
||||
newInstance.setHeartBeatTime(instance.getHeartBeatTime());
|
||||
newInstance.setOsInfo(instance.getOsInfo());
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ package org.apache.skywalking.apm.collector.analysis.register.provider.service;
|
|||
import org.apache.skywalking.apm.collector.analysis.register.define.graph.GraphIdDefine;
|
||||
import org.apache.skywalking.apm.collector.analysis.register.define.service.IInstanceIDService;
|
||||
import org.apache.skywalking.apm.collector.cache.CacheModule;
|
||||
import org.apache.skywalking.apm.collector.cache.service.ApplicationCacheService;
|
||||
import org.apache.skywalking.apm.collector.cache.service.InstanceCacheService;
|
||||
import org.apache.skywalking.apm.collector.core.graph.Graph;
|
||||
import org.apache.skywalking.apm.collector.core.graph.GraphManager;
|
||||
|
|
@ -45,6 +46,7 @@ public class InstanceIDService implements IInstanceIDService {
|
|||
private InstanceCacheService instanceCacheService;
|
||||
private Graph<Instance> 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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ public class InstanceRegisterEsDAO extends EsDAO implements IInstanceRegisterDAO
|
|||
Map<String, Object> 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()));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -163,9 +163,7 @@ public class ServerService {
|
|||
|
||||
private void buildAppServerInfo(List<AppServerInfo> 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")) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue