diff --git a/apm-collector/apm-collector-agentregister/pom.xml b/apm-collector/apm-collector-agentregister/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e704f264e4abdfaea2bd0d23667017d82c9e504d --- /dev/null +++ b/apm-collector/apm-collector-agentregister/pom.xml @@ -0,0 +1,32 @@ + + + + apm-collector + org.skywalking + 3.2-2017 + + 4.0.0 + + apm-collector-agentregister + jar + + + + org.skywalking + apm-collector-cluster + ${project.version} + + + org.skywalking + apm-collector-server + ${project.version} + + + org.skywalking + apm-network + ${project.version} + + + \ No newline at end of file diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleContext.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleContext.java new file mode 100644 index 0000000000000000000000000000000000000000..0bea80ed0da5252e75754a1c835140f4e62bb289 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleContext.java @@ -0,0 +1,12 @@ +package org.skywalking.apm.collector.agentregister; + +import org.skywalking.apm.collector.core.framework.Context; + +/** + * @author pengys5 + */ +public class AgentRegisterModuleContext extends Context { + public AgentRegisterModuleContext(String groupName) { + super(groupName); + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleDefine.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleDefine.java new file mode 100644 index 0000000000000000000000000000000000000000..976e784721f4449aebaa4cf49fe5cb5e38581d07 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleDefine.java @@ -0,0 +1,51 @@ +package org.skywalking.apm.collector.agentregister; + +import java.util.List; +import java.util.Map; +import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; +import org.skywalking.apm.collector.core.client.Client; +import org.skywalking.apm.collector.core.client.ClientException; +import org.skywalking.apm.collector.core.client.DataMonitor; +import org.skywalking.apm.collector.core.cluster.ClusterDataListenerDefine; +import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; +import org.skywalking.apm.collector.core.config.ConfigParseException; +import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.framework.Handler; +import org.skywalking.apm.collector.core.module.ModuleDefine; +import org.skywalking.apm.collector.core.server.Server; +import org.skywalking.apm.collector.core.server.ServerException; +import org.skywalking.apm.collector.core.server.ServerHolder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author pengys5 + */ +public abstract class AgentRegisterModuleDefine extends ModuleDefine implements ClusterDataListenerDefine { + + private final Logger logger = LoggerFactory.getLogger(AgentRegisterModuleDefine.class); + + @Override + public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { + try { + configParser().parse(config); + Server server = server(); + serverHolder.holdServer(server, handlerList()); + + ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); + } catch (ConfigParseException | ServerException e) { + throw new AgentRegisterModuleException(e.getMessage(), e); + } + } + + @Override protected final Client createClient(DataMonitor dataMonitor) { + throw new UnsupportedOperationException(""); + } + + @Override public final boolean defaultModule() { + return true; + } + + public abstract List handlerList(); +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleException.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleException.java new file mode 100644 index 0000000000000000000000000000000000000000..061937a7eee764c5d340f72f863c2e339dbec880 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleException.java @@ -0,0 +1,16 @@ +package org.skywalking.apm.collector.agentregister; + +import org.skywalking.apm.collector.core.module.ModuleException; + +/** + * @author pengys5 + */ +public class AgentRegisterModuleException extends ModuleException { + public AgentRegisterModuleException(String message) { + super(message); + } + + public AgentRegisterModuleException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleGroupDefine.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleGroupDefine.java new file mode 100644 index 0000000000000000000000000000000000000000..d59aa5b858cf14a0a2de39c7f3399275ae524e7d --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleGroupDefine.java @@ -0,0 +1,25 @@ +package org.skywalking.apm.collector.agentregister; + +import org.skywalking.apm.collector.core.framework.Context; +import org.skywalking.apm.collector.core.module.ModuleGroupDefine; +import org.skywalking.apm.collector.core.module.ModuleInstaller; + +/** + * @author pengys5 + */ +public class AgentRegisterModuleGroupDefine implements ModuleGroupDefine { + + public static final String GROUP_NAME = "agent_register"; + + @Override public String name() { + return GROUP_NAME; + } + + @Override public Context groupContext() { + return new AgentRegisterModuleContext(GROUP_NAME); + } + + @Override public ModuleInstaller moduleInstaller() { + return new AgentRegisterModuleInstaller(); + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleInstaller.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleInstaller.java new file mode 100644 index 0000000000000000000000000000000000000000..0bf2218d1e35188787b443cfc18b973cedfa8d10 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/AgentRegisterModuleInstaller.java @@ -0,0 +1,36 @@ +package org.skywalking.apm.collector.agentregister; + +import java.util.Iterator; +import java.util.Map; +import org.skywalking.apm.collector.core.client.ClientException; +import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.module.ModuleDefine; +import org.skywalking.apm.collector.core.module.ModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerHolder; +import org.skywalking.apm.collector.core.util.ObjectUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author pengys5 + */ +public class AgentRegisterModuleInstaller implements ModuleInstaller { + + private final Logger logger = LoggerFactory.getLogger(AgentRegisterModuleInstaller.class); + + @Override public void install(Map moduleConfig, + Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { + logger.info("beginning agent register module install"); + + AgentRegisterModuleContext context = new AgentRegisterModuleContext(AgentRegisterModuleGroupDefine.GROUP_NAME); + CollectorContextHelper.INSTANCE.putContext(context); + + Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator(); + while (moduleDefineEntry.hasNext()) { + ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); + logger.info("module {} initialize", moduleDefine.getClass().getName()); + moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); + } + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCConfig.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..2d2ad6bc7a2ff9af0653346001ccb823cffad27e --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCConfig.java @@ -0,0 +1,9 @@ +package org.skywalking.apm.collector.agentregister.grpc; + +/** + * @author pengys5 + */ +public class AgentRegisterGRPCConfig { + public static String HOST; + public static int PORT; +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCConfigParser.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCConfigParser.java new file mode 100644 index 0000000000000000000000000000000000000000..cf59cd8ef3097c0710b5b0ebe5f4aa0f265c49d9 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCConfigParser.java @@ -0,0 +1,27 @@ +package org.skywalking.apm.collector.agentregister.grpc; + +import java.util.Map; +import org.skywalking.apm.collector.core.config.ConfigParseException; +import org.skywalking.apm.collector.core.module.ModuleConfigParser; +import org.skywalking.apm.collector.core.util.ObjectUtils; +import org.skywalking.apm.collector.core.util.StringUtils; + +/** + * @author pengys5 + */ +public class AgentRegisterGRPCConfigParser implements ModuleConfigParser { + + private static final String HOST = "host"; + private static final String PORT = "port"; + + @Override public void parse(Map config) throws ConfigParseException { + if (ObjectUtils.isEmpty(config) || StringUtils.isEmpty(config.get(HOST))) { + AgentRegisterGRPCConfig.HOST = "localhost"; + } + if (ObjectUtils.isEmpty(config) || StringUtils.isEmpty(config.get(PORT))) { + AgentRegisterGRPCConfig.PORT = 11800; + } else { + AgentRegisterGRPCConfig.PORT = (Integer)config.get(PORT); + } + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCDataListener.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCDataListener.java new file mode 100644 index 0000000000000000000000000000000000000000..e54e324ae6a46c71206628d1965d4a8eeeb48b3b --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCDataListener.java @@ -0,0 +1,17 @@ +package org.skywalking.apm.collector.agentregister.grpc; + +import org.skywalking.apm.collector.agentregister.AgentRegisterModuleGroupDefine; +import org.skywalking.apm.collector.cluster.ClusterModuleDefine; +import org.skywalking.apm.collector.core.cluster.ClusterDataListener; + +/** + * @author pengys5 + */ +public class AgentRegisterGRPCDataListener extends ClusterDataListener { + + public static final String PATH = ClusterModuleDefine.BASE_CATALOG + "." + AgentRegisterModuleGroupDefine.GROUP_NAME + "." + AgentRegisterGRPCModuleDefine.MODULE_NAME; + + @Override public String path() { + return PATH; + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCModuleDefine.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCModuleDefine.java new file mode 100644 index 0000000000000000000000000000000000000000..e9fca8ad355a560257640824b854be77e64378d7 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCModuleDefine.java @@ -0,0 +1,47 @@ +package org.skywalking.apm.collector.agentregister.grpc; + +import java.util.List; +import org.skywalking.apm.collector.agentregister.AgentRegisterModuleDefine; +import org.skywalking.apm.collector.agentregister.AgentRegisterModuleGroupDefine; +import org.skywalking.apm.collector.core.cluster.ClusterDataListener; +import org.skywalking.apm.collector.core.framework.Handler; +import org.skywalking.apm.collector.core.module.ModuleConfigParser; +import org.skywalking.apm.collector.core.module.ModuleRegistration; +import org.skywalking.apm.collector.core.server.Server; +import org.skywalking.apm.collector.server.grpc.GRPCServer; + +/** + * @author pengys5 + */ +public class AgentRegisterGRPCModuleDefine extends AgentRegisterModuleDefine { + + public static final String MODULE_NAME = "grpc"; + + @Override protected String group() { + return AgentRegisterModuleGroupDefine.GROUP_NAME; + } + + @Override public String name() { + return MODULE_NAME; + } + + @Override protected ModuleConfigParser configParser() { + return new AgentRegisterGRPCConfigParser(); + } + + @Override protected Server server() { + return new GRPCServer(AgentRegisterGRPCConfig.HOST, AgentRegisterGRPCConfig.PORT); + } + + @Override protected ModuleRegistration registration() { + return new AgentRegisterGRPCModuleRegistration(); + } + + @Override public ClusterDataListener listener() { + return new AgentRegisterGRPCDataListener(); + } + + @Override public List handlerList() { + return null; + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCModuleRegistration.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCModuleRegistration.java new file mode 100644 index 0000000000000000000000000000000000000000..bc97dba60db01e9aee84dc0133eb0d3bf9883ba8 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/AgentRegisterGRPCModuleRegistration.java @@ -0,0 +1,13 @@ +package org.skywalking.apm.collector.agentregister.grpc; + +import org.skywalking.apm.collector.core.module.ModuleRegistration; + +/** + * @author pengys5 + */ +public class AgentRegisterGRPCModuleRegistration extends ModuleRegistration { + + @Override public Value buildValue() { + return new Value(AgentRegisterGRPCConfig.HOST, AgentRegisterGRPCConfig.PORT, null); + } +} diff --git a/apm-collector/apm-collector-agentregister/src/main/resources/META-INF/defines/group.define b/apm-collector/apm-collector-agentregister/src/main/resources/META-INF/defines/group.define new file mode 100644 index 0000000000000000000000000000000000000000..0afe036bd73ef266ec784cb03b332c1869b22beb --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/resources/META-INF/defines/group.define @@ -0,0 +1 @@ +org.skywalking.apm.collector.agentregister.AgentRegisterModuleGroupDefine \ No newline at end of file diff --git a/apm-collector/apm-collector-agentregister/src/main/resources/META-INF/defines/module.define b/apm-collector/apm-collector-agentregister/src/main/resources/META-INF/defines/module.define new file mode 100644 index 0000000000000000000000000000000000000000..70f99f0a2c14c36579604f04eea0ea5bb52abb42 --- /dev/null +++ b/apm-collector/apm-collector-agentregister/src/main/resources/META-INF/defines/module.define @@ -0,0 +1 @@ +org.skywalking.apm.collector.agentregister.grpc.AgentRegisterGRPCModuleDefine \ No newline at end of file diff --git a/apm-collector/apm-collector-agentserver/pom.xml b/apm-collector/apm-collector-agentserver/pom.xml index b4f26c8bf0a9ad0f1d7e280d0eeaa74dff3f5eaa..1451d0a0db47b823a224c66ece97109d4443f511 100644 --- a/apm-collector/apm-collector-agentserver/pom.xml +++ b/apm-collector/apm-collector-agentserver/pom.xml @@ -28,5 +28,10 @@ apm-collector-agentstream ${project.version} + + org.skywalking + apm-collector-agentregister + ${project.version} + \ No newline at end of file diff --git a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java index 7e1adb82a8e268cb2e32f6e252153dd380cb109a..e7e7d829a199406b972e5f30f34c7db909dac553 100644 --- a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java +++ b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleDefine.java @@ -15,6 +15,7 @@ import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.server.Server; import org.skywalking.apm.collector.core.server.ServerException; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,13 +26,12 @@ public abstract class AgentServerModuleDefine extends ModuleDefine implements Cl private final Logger logger = LoggerFactory.getLogger(AgentServerModuleDefine.class); - @Override public final void initialize(Map config) throws DefineException, ClientException { + @Override + public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { try { configParser().parse(config); Server server = server(); - server.initialize(); - handlerList().forEach(handler -> server.addHandler(handler)); - server.start(); + serverHolder.holdServer(server, handlerList()); ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); } catch (ConfigParseException | ServerException e) { diff --git a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java index 10756f95088f28b8c29b74c7a1a1b9201e1c04ae..c632161047eb05d29014266270c1fcf53e4f8f9e 100644 --- a/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java +++ b/apm-collector/apm-collector-agentserver/src/main/java/org/skywalking/apm/collector/agentserver/AgentServerModuleInstaller.java @@ -7,6 +7,7 @@ import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.core.util.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,7 +20,7 @@ public class AgentServerModuleInstaller implements ModuleInstaller { private final Logger logger = LoggerFactory.getLogger(AgentServerModuleInstaller.class); @Override public void install(Map moduleConfig, - Map moduleDefineMap) throws DefineException, ClientException { + Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { logger.info("beginning agent server module install"); AgentServerModuleContext context = new AgentServerModuleContext(AgentServerModuleGroupDefine.GROUP_NAME); @@ -30,7 +31,7 @@ public class AgentServerModuleInstaller implements ModuleInstaller { while (moduleDefineEntry.hasNext()) { ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null); + moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); } } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java index e69e7888d8383db16012d4de17a9266a488da9a4..153508827955eb553e4728a0ddb108c7bb17468b 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java @@ -1,5 +1,6 @@ package org.skywalking.apm.collector.agentstream; +import java.util.List; import java.util.Map; import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine; import org.skywalking.apm.collector.core.client.Client; @@ -10,9 +11,11 @@ import org.skywalking.apm.collector.core.cluster.ClusterModuleContext; import org.skywalking.apm.collector.core.config.ConfigParseException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.server.Server; import org.skywalking.apm.collector.core.server.ServerException; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,11 +26,12 @@ public abstract class AgentStreamModuleDefine extends ModuleDefine implements Cl private final Logger logger = LoggerFactory.getLogger(AgentStreamModuleDefine.class); - @Override public final void initialize(Map config) throws DefineException, ClientException { + @Override + public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { try { configParser().parse(config); Server server = server(); - server.initialize(); + serverHolder.holdServer(server, handlerList()); ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getDataMonitor().addListener(listener(), registration()); } catch (ConfigParseException | ServerException e) { @@ -35,11 +39,13 @@ public abstract class AgentStreamModuleDefine extends ModuleDefine implements Cl } } - @Override protected Client createClient(DataMonitor dataMonitor) { + @Override protected final Client createClient(DataMonitor dataMonitor) { throw new UnsupportedOperationException(""); } @Override public final boolean defaultModule() { return true; } + + public abstract List handlerList(); } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java index 8feda295df5e0f62a6a6b26c3cf07434800d2e95..db4b3dc043cbd79ae8f46c50c742baf7c391dc9b 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java @@ -7,6 +7,7 @@ import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.core.util.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,7 +20,7 @@ public class AgentStreamModuleInstaller implements ModuleInstaller { private final Logger logger = LoggerFactory.getLogger(AgentStreamModuleInstaller.class); @Override public void install(Map moduleConfig, - Map moduleDefineMap) throws DefineException, ClientException { + Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { logger.info("beginning agent stream module install"); AgentStreamModuleContext context = new AgentStreamModuleContext(AgentStreamModuleGroupDefine.GROUP_NAME); @@ -30,7 +31,7 @@ public class AgentStreamModuleInstaller implements ModuleInstaller { while (moduleDefineEntry.hasNext()) { ModuleDefine moduleDefine = moduleDefineEntry.next().getValue(); logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null); + moduleDefine.initialize((ObjectUtils.isNotEmpty(moduleConfig) && moduleConfig.containsKey(moduleDefine.name())) ? moduleConfig.get(moduleDefine.name()) : null, serverHolder); } } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java index f485682165b360725b254ab3daa8052466c3289c..dd3b4c989123a8efde7f9c8954ec7e450c4ca7ea 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java @@ -1,8 +1,10 @@ package org.skywalking.apm.collector.agentstream.grpc; +import java.util.List; import org.skywalking.apm.collector.agentstream.AgentStreamModuleDefine; import org.skywalking.apm.collector.agentstream.AgentStreamModuleGroupDefine; import org.skywalking.apm.collector.core.cluster.ClusterDataListener; +import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleConfigParser; import org.skywalking.apm.collector.core.module.ModuleRegistration; import org.skywalking.apm.collector.core.server.Server; @@ -38,4 +40,8 @@ public class AgentStreamGRPCModuleDefine extends AgentStreamModuleDefine { @Override public ClusterDataListener listener() { return new AgentStreamGRPCDataListener(); } + + @Override public List handlerList() { + return null; + } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleDefine.java index 42a86e729ba6d429741f0af29a18019925b0a136..d20996ebd4f862c8acb435b12b4a9a56d28249a1 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleDefine.java @@ -1,8 +1,10 @@ package org.skywalking.apm.collector.agentstream.jetty; +import java.util.List; import org.skywalking.apm.collector.agentstream.AgentStreamModuleDefine; import org.skywalking.apm.collector.agentstream.AgentStreamModuleGroupDefine; import org.skywalking.apm.collector.core.cluster.ClusterDataListener; +import org.skywalking.apm.collector.core.framework.Handler; import org.skywalking.apm.collector.core.module.ModuleConfigParser; import org.skywalking.apm.collector.core.module.ModuleRegistration; import org.skywalking.apm.collector.core.server.Server; @@ -38,4 +40,8 @@ public class AgentStreamJettyModuleDefine extends AgentStreamModuleDefine { @Override public ClusterDataListener listener() { return new AgentStreamJettyDataListener(); } + + @Override public List handlerList() { + return null; + } } diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml index ae4b7501df4b9c6a33ef962aed0f0f0f71028cf4..94efcc0fc8db48e24d8dcab8e2992f73e35e5291 100644 --- a/apm-collector/apm-collector-boot/pom.xml +++ b/apm-collector/apm-collector-boot/pom.xml @@ -38,5 +38,10 @@ apm-collector-agentstream ${project.version} + + org.skywalking + apm-collector-agentregister + ${project.version} + \ No newline at end of file diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java index a5d55fd2545e5c5e30ad280d5b2a63c490c1c4b7..de22a4cf1fa7ea9da7533c3563438297a3309a32 100644 --- a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java +++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java @@ -12,6 +12,8 @@ import org.skywalking.apm.collector.core.module.ModuleDefineLoader; import org.skywalking.apm.collector.core.module.ModuleGroupDefine; import org.skywalking.apm.collector.core.module.ModuleGroupDefineLoader; import org.skywalking.apm.collector.core.remote.SerializedDefineLoader; +import org.skywalking.apm.collector.core.server.ServerException; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,11 +37,20 @@ public class CollectorStarter implements Starter { ModuleDefineLoader defineLoader = new ModuleDefineLoader(); Map> moduleDefineMap = defineLoader.load(); - moduleGroupDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME).moduleInstaller().install(configuration.get(ClusterModuleGroupDefine.GROUP_NAME), moduleDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME)); + ServerHolder serverHolder = new ServerHolder(); + moduleGroupDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME).moduleInstaller().install(configuration.get(ClusterModuleGroupDefine.GROUP_NAME), moduleDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME), serverHolder); moduleGroupDefineMap.remove(ClusterModuleGroupDefine.GROUP_NAME); for (ModuleGroupDefine moduleGroupDefine : moduleGroupDefineMap.values()) { - moduleGroupDefine.moduleInstaller().install(configuration.get(moduleGroupDefine.name()), moduleDefineMap.get(moduleGroupDefine.name())); + moduleGroupDefine.moduleInstaller().install(configuration.get(moduleGroupDefine.name()), moduleDefineMap.get(moduleGroupDefine.name()), serverHolder); } + + serverHolder.getServers().forEach(server -> { + try { + server.start(); + } catch (ServerException e) { + logger.error(e.getMessage(), e); + } + }); } } diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java index a1bd2df54e4fae5826933d65b6cbc867c8ed2401..900cf9b3dfef6b30d582e1d5b59dabe750dbd626 100644 --- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java +++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleDefine.java @@ -12,6 +12,7 @@ import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleRegistration; import org.skywalking.apm.collector.core.server.Server; +import org.skywalking.apm.collector.core.server.ServerHolder; /** * @author pengys5 @@ -22,7 +23,7 @@ public abstract class ClusterModuleDefine extends ModuleDefine { private Client client; - @Override public final void initialize(Map config) throws ClusterModuleException { + @Override public final void initialize(Map config, ServerHolder serverHolder) throws ClusterModuleException { try { configParser().parse(config); diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java index 42a3c38a44ed31b6acc221420b3d791516423845..c9b56f811e59f96ca2f8e87ffb66f42372c47c97 100644 --- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java +++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java @@ -8,6 +8,7 @@ import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.core.util.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,7 +21,7 @@ public class ClusterModuleInstaller implements ModuleInstaller { private final Logger logger = LoggerFactory.getLogger(ClusterModuleInstaller.class); @Override public void install(Map moduleConfig, - Map moduleDefineMap) throws DefineException, ClientException { + Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { logger.info("beginning cluster module install"); ClusterModuleContext context = new ClusterModuleContext(ClusterModuleGroupDefine.GROUP_NAME); @@ -34,14 +35,14 @@ public class ClusterModuleInstaller implements ModuleInstaller { moduleDefine = moduleDefineEntry.next().getValue(); if (moduleDefine.defaultModule()) { logger.info("module {} initialize", moduleDefine.getClass().getName()); - moduleDefine.initialize(null); + moduleDefine.initialize(null, serverHolder); break; } } } else { Map.Entry clusterConfigEntry = moduleConfig.entrySet().iterator().next(); moduleDefine = moduleDefineMap.get(clusterConfigEntry.getKey()); - moduleDefine.initialize(clusterConfigEntry.getValue()); + moduleDefine.initialize(clusterConfigEntry.getValue(), serverHolder); } } } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java index 542d72b7ec4bc1a360d099d5bd8da1096b3de0cc..69e97e294091cc544d48d8bf44d656ec3923ca66 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java @@ -2,13 +2,14 @@ package org.skywalking.apm.collector.core.framework; import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; +import org.skywalking.apm.collector.core.server.ServerHolder; /** * @author pengys5 */ public interface Define { - void initialize(Map config) throws DefineException, ClientException; + void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException; String name(); } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java index 40aa905c8e7ef9ae3d00b6ebf175da12fe5b1560..2ec52b90b3751e92d2beed791cb561546c47dff3 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java @@ -3,11 +3,12 @@ package org.skywalking.apm.collector.core.module; import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.server.ServerHolder; /** * @author pengys5 */ public interface ModuleInstaller { void install(Map moduleConfig, - Map moduleDefineMap) throws DefineException, ClientException; + Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException; } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/Server.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/Server.java index 4b246095ff205832a6b942b822d9f169f40f0af0..1d12d31e8071d3ecd0995a4b84dfee9a135d5424 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/Server.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/Server.java @@ -7,6 +7,10 @@ import org.skywalking.apm.collector.core.framework.Handler; */ public interface Server { + String hostPort(); + + String serverClassify(); + void initialize() throws ServerException; void start() throws ServerException; diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/ServerHolder.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/ServerHolder.java new file mode 100644 index 0000000000000000000000000000000000000000..96edf8f02cc8027bb498010c3da372074b71b923 --- /dev/null +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/ServerHolder.java @@ -0,0 +1,43 @@ +package org.skywalking.apm.collector.core.server; + +import java.util.LinkedList; +import java.util.List; +import org.skywalking.apm.collector.core.framework.Handler; +import org.skywalking.apm.collector.core.util.CollectionUtils; + +/** + * @author pengys5 + */ +public class ServerHolder { + + private List servers; + + public ServerHolder() { + servers = new LinkedList<>(); + } + + public void holdServer(Server newServer, List handlers) throws ServerException { + boolean isNewServer = true; + for (Server server : servers) { + if (server.hostPort().equals(newServer.hostPort()) && server.serverClassify().equals(newServer.serverClassify())) { + isNewServer = false; + addHandler(handlers, server); + } + } + if (isNewServer) { + newServer.initialize(); + servers.add(newServer); + addHandler(handlers, newServer); + } + } + + private void addHandler(List handlers, Server server) { + if (CollectionUtils.isNotEmpty(handlers)) { + handlers.forEach(handler -> server.addHandler(handler)); + } + } + + public List getServers() { + return servers; + } +} diff --git a/apm-collector/apm-collector-discovery/pom.xml b/apm-collector/apm-collector-discovery/pom.xml deleted file mode 100644 index 5aba21592cdb879137e22d99a8dc5740ccf8a816..0000000000000000000000000000000000000000 --- a/apm-collector/apm-collector-discovery/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - apm-collector - org.skywalking - 3.2-2017 - - 4.0.0 - - apm-collector-discovery - jar - \ No newline at end of file diff --git a/apm-collector/apm-collector-discovery/src/main/java/org/skywalking/apm/collector/discovery/DiscoveryJettyModuleDefine.java b/apm-collector/apm-collector-discovery/src/main/java/org/skywalking/apm/collector/discovery/DiscoveryJettyModuleDefine.java deleted file mode 100644 index 3d696fa9e75defe9e0e1c3bb067b6fcb6f13a0c2..0000000000000000000000000000000000000000 --- a/apm-collector/apm-collector-discovery/src/main/java/org/skywalking/apm/collector/discovery/DiscoveryJettyModuleDefine.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.skywalking.apm.collector.discovery; - -/** - * @author pengys5 - */ -public class DiscoveryJettyModuleDefine { -} diff --git a/apm-collector/apm-collector-discovery/src/main/resources/META-INF/defines/module.define b/apm-collector/apm-collector-discovery/src/main/resources/META-INF/defines/module.define deleted file mode 100644 index 427dbc6e49a959ca362f11fce24d574305919dab..0000000000000000000000000000000000000000 --- a/apm-collector/apm-collector-discovery/src/main/resources/META-INF/defines/module.define +++ /dev/null @@ -1 +0,0 @@ -org.skywalking.apm.collector.discovery.DiscoveryJettyModuleDefine \ No newline at end of file diff --git a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java index 7403060ce73b6a34cb6eacba601e6784677efc1b..590c32a660292ee417e0c80b40150256bc5dae87 100644 --- a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java +++ b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java @@ -5,6 +5,7 @@ import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.framework.DefineException; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,7 +17,7 @@ public class QueueModuleInstaller implements ModuleInstaller { private final Logger logger = LoggerFactory.getLogger(QueueModuleInstaller.class); @Override public void install(Map moduleConfig, - Map moduleDefineMap) throws DefineException, ClientException { + Map moduleDefineMap, ServerHolder serverHolder) throws DefineException, ClientException { logger.info("beginning queue module install"); } diff --git a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java index a5880c1b7ae6ec624b38978c56008abf64efbeb0..2bef023b4b841f3e036d8edb9a249ddb19f144a5 100644 --- a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java +++ b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/QueueDataCarrierModuleDefine.java @@ -4,6 +4,7 @@ import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.queue.QueueModuleContext; import org.skywalking.apm.collector.queue.QueueModuleDefine; import org.skywalking.apm.collector.queue.QueueModuleGroupDefine; @@ -25,7 +26,8 @@ public class QueueDataCarrierModuleDefine extends QueueModuleDefine { return true; } - @Override public final void initialize(Map config) throws DefineException, ClientException { + @Override + public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { ((QueueModuleContext)CollectorContextHelper.INSTANCE.getContext(group())).setQueueCreator(new DataCarrierQueueCreator()); } } diff --git a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java index f550dd4e10487529e15c52432cb24976c19afa6b..d74cb2deed782636299b0e6460472df3b54ad910 100644 --- a/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java +++ b/apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/QueueDisruptorModuleDefine.java @@ -4,6 +4,7 @@ import java.util.Map; import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.core.framework.DefineException; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.queue.QueueModuleContext; import org.skywalking.apm.collector.queue.QueueModuleDefine; import org.skywalking.apm.collector.queue.QueueModuleGroupDefine; @@ -25,7 +26,8 @@ public class QueueDisruptorModuleDefine extends QueueModuleDefine { return true; } - @Override public final void initialize(Map config) throws DefineException, ClientException { + @Override + public final void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { ((QueueModuleContext)CollectorContextHelper.INSTANCE.getContext(group())).setQueueCreator(new DisruptorQueueCreator()); } } diff --git a/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/RemoteModuleInstaller.java b/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/RemoteModuleInstaller.java index 470aa6392d7cdada42e96af69947a6af35d0c442..00a5bf070e634f53a94be4e9a24d87c8f42d121f 100644 --- a/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/RemoteModuleInstaller.java +++ b/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/RemoteModuleInstaller.java @@ -5,13 +5,14 @@ import org.skywalking.apm.collector.core.client.ClientException; import org.skywalking.apm.collector.core.framework.DefineException; import org.skywalking.apm.collector.core.module.ModuleDefine; import org.skywalking.apm.collector.core.module.ModuleInstaller; +import org.skywalking.apm.collector.core.server.ServerHolder; /** * @author pengys5 */ public class RemoteModuleInstaller implements ModuleInstaller { - @Override public void install(Map moduleConfig, - Map moduleDefineMap) throws DefineException, ClientException { - + @Override public void install(Map moduleConfig, Map moduleDefineMap, + ServerHolder serverHolder) throws DefineException, ClientException { + } } diff --git a/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteGRPCModuleDefine.java b/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteGRPCModuleDefine.java index f00bbace638209011a0e5758b91a485ea4357b8e..877952cffc911355f8050cb224c3d0f3bb91793d 100644 --- a/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteGRPCModuleDefine.java +++ b/apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteGRPCModuleDefine.java @@ -8,6 +8,7 @@ import org.skywalking.apm.collector.core.framework.DefineException; import org.skywalking.apm.collector.core.module.ModuleConfigParser; import org.skywalking.apm.collector.core.module.ModuleRegistration; import org.skywalking.apm.collector.core.server.Server; +import org.skywalking.apm.collector.core.server.ServerHolder; import org.skywalking.apm.collector.remote.RemoteModuleDefine; import org.skywalking.apm.collector.remote.RemoteModuleGroupDefine; @@ -39,7 +40,7 @@ public class RemoteGRPCModuleDefine extends RemoteModuleDefine { return null; } - @Override public void initialize(Map config) throws DefineException, ClientException { + @Override public void initialize(Map config, ServerHolder serverHolder) throws DefineException, ClientException { } diff --git a/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/grpc/GRPCServer.java b/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/grpc/GRPCServer.java index 505ce43c6a1cf41bce84cb16be9a895b33f6b9cf..98c2f12db6929fc61c6694683d20fdac5fd3587b 100644 --- a/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/grpc/GRPCServer.java +++ b/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/grpc/GRPCServer.java @@ -18,28 +18,37 @@ public class GRPCServer implements Server { private final String host; private final int port; + private io.grpc.Server server; + private NettyServerBuilder nettyServerBuilder; public GRPCServer(String host, int port) { this.host = host; this.port = port; } + @Override public String hostPort() { + return host + ":" + port; + } + + @Override public String serverClassify() { + return "Google-RPC"; + } + @Override public void initialize() throws ServerException { InetSocketAddress address = new InetSocketAddress(host, port); - NettyServerBuilder nettyServerBuilder = NettyServerBuilder.forAddress(address); - try { - io.grpc.Server server = nettyServerBuilder.build().start(); - } catch (IOException e) { - throw new GRPCServerException(e.getMessage(), e); - } + nettyServerBuilder = NettyServerBuilder.forAddress(address); + server = nettyServerBuilder.build(); logger.info("Server started, host {} listening on {}", host, port); } @Override public void start() throws ServerException { - + try { + server.start(); + } catch (IOException e) { + throw new GRPCServerException(e.getMessage(), e); + } } @Override public void addHandler(Handler handler) { - } } diff --git a/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java b/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java index 3997a20b31369f018af54f53a2f471bb51d16cb4..441a3b16a1a56fc2c71ce5de1775b039ce3a2182 100644 --- a/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java +++ b/apm-collector/apm-collector-server/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java @@ -29,6 +29,14 @@ public class JettyServer implements Server { this.contextPath = contextPath; } + @Override public String hostPort() { + return host + ":" + port; + } + + @Override public String serverClassify() { + return "Jetty"; + } + @Override public void initialize() throws ServerException { server = new org.eclipse.jetty.server.Server(new InetSocketAddress(host, port)); diff --git a/apm-collector/pom.xml b/apm-collector/pom.xml index d544f0a0b76ff020e86507a1049e640195c10121..67c9b2384a1f2d773d4b3b11657d5b4d2ebb499b 100644 --- a/apm-collector/pom.xml +++ b/apm-collector/pom.xml @@ -9,13 +9,13 @@ apm-collector-storage apm-collector-client apm-collector-server - apm-collector-discovery apm-collector-agentstream apm-collector-ui apm-collector-boot apm-collector-remote apm-collector-stream apm-collector-agentserver + apm-collector-agentregister apm