Loading apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java +16 −3 Original line number Diff line number Diff line Loading @@ -21,7 +21,10 @@ package org.skywalking.apm.collector.agent.grpc; import java.util.Properties; import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.grpc.handler.JVMMetricsServiceHandler; import org.skywalking.apm.collector.agent.grpc.handler.naming.AgentGRPCNamingHandler; import org.skywalking.apm.collector.agent.grpc.handler.naming.AgentGRPCNamingListener; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleNotFoundException; Loading @@ -29,6 +32,8 @@ import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; import org.skywalking.apm.collector.grpc.manager.GRPCManagerModule; import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService; import org.skywalking.apm.collector.naming.NamingModule; import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; import org.skywalking.apm.collector.server.Server; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.service.DAOService; Loading @@ -38,11 +43,12 @@ import org.skywalking.apm.collector.storage.service.DAOService; */ public class AgentModuleGRPCProvider extends ModuleProvider { public static final String NAME = "gRPC"; private static final String HOST = "host"; private static final String PORT = "port"; @Override public String name() { return "gRPC"; return NAME; } @Override public Class<? extends Module> module() { Loading @@ -61,10 +67,17 @@ public class AgentModuleGRPCProvider extends ModuleProvider { ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); moduleRegisterService.register(AgentModule.NAME, this.name(), new AgentModuleGRPCRegistration(host, port)); AgentGRPCNamingListener namingListener = new AgentGRPCNamingListener(); ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class); moduleListenerService.addListener(namingListener); NamingHandlerRegisterService namingHandlerRegisterService = getManager().find(NamingModule.NAME).getService(NamingHandlerRegisterService.class); namingHandlerRegisterService.register(new AgentGRPCNamingHandler(namingListener)); DAOService daoService = getManager().find(StorageModule.NAME).getService(DAOService.class); GRPCManagerService managerService = getManager().find(GRPCManagerModule.NAME).getService(GRPCManagerService.class); Server gRPCServer = managerService.getOrCreateIfAbsent(host, port); Server gRPCServer = managerService.createIfAbsent(host, port); addHandlers(daoService, gRPCServer); } catch (ModuleNotFoundException e) { throw new ServiceNotProvidedException(e.getMessage()); Loading @@ -76,7 +89,7 @@ public class AgentModuleGRPCProvider extends ModuleProvider { } @Override public String[] requiredModules() { return new String[0]; return new String[] {ClusterModule.NAME, NamingModule.NAME, StorageModule.NAME, GRPCManagerModule.NAME}; } private void addHandlers(DAOService daoService, Server gRPCServer) { Loading apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java 0 → 100644 +53 −0 Original line number Diff line number Diff line /* * Copyright 2017, OpenSkywalking Organization All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Project repository: https://github.com/OpenSkywalking/skywalking */ package org.skywalking.apm.collector.agent.grpc.handler.naming; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; /** * @author peng-yongsheng */ public class AgentGRPCNamingHandler extends JettyHandler { private final AgentGRPCNamingListener namingListener; public AgentGRPCNamingHandler(AgentGRPCNamingListener namingListener) { this.namingListener = namingListener; } @Override public String pathSpec() { return "/agent/gRPC"; } @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { Set<String> servers = namingListener.getAddresses(); JsonArray serverArray = new JsonArray(); servers.forEach(serverArray::add); return serverArray; } @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { throw new UnsupportedOperationException(); } } apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright 2017, OpenSkywalking Organization All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Project repository: https://github.com/OpenSkywalking/skywalking */ package org.skywalking.apm.collector.agent.grpc.handler.naming; import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.grpc.AgentModuleGRPCProvider; import org.skywalking.apm.collector.cluster.ClusterModuleListener; /** * @author peng-yongsheng */ public class AgentGRPCNamingListener extends ClusterModuleListener { public static final String PATH = "/" + AgentModule.NAME + "/" + AgentModuleGRPCProvider.NAME; @Override public String path() { return PATH; } @Override public void serverJoinNotify(String serverAddress) { } @Override public void serverQuitNotify(String serverAddress) { } } apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml +5 −0 Original line number Diff line number Diff line Loading @@ -41,5 +41,10 @@ <artifactId>collector-agent-stream</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.skywalking</groupId> <artifactId>collector-jetty-manager-define</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project> apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java +47 −2 Original line number Diff line number Diff line Loading @@ -20,17 +20,36 @@ package org.skywalking.apm.collector.agent.jetty; import java.util.Properties; import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.jetty.handler.TraceSegmentServletHandler; import org.skywalking.apm.collector.agent.jetty.handler.naming.AgentJettyNamingHandler; import org.skywalking.apm.collector.agent.jetty.handler.naming.AgentJettyNamingListener; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleNotFoundException; import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; import org.skywalking.apm.collector.jetty.manager.JettyManagerModule; import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService; import org.skywalking.apm.collector.naming.NamingModule; import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; import org.skywalking.apm.collector.server.Server; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.service.DAOService; /** * @author peng-yongsheng */ public class AgentModuleJettyProvider extends ModuleProvider { public static final String NAME = "jetty"; private static final String HOST = "host"; private static final String PORT = "port"; private static final String CONTEXT_PATH = "context_path"; @Override public String name() { return "jetty"; return NAME; } @Override public Class<? extends Module> module() { Loading @@ -42,7 +61,29 @@ public class AgentModuleJettyProvider extends ModuleProvider { } @Override public void start(Properties config) throws ServiceNotProvidedException { String host = config.getProperty(HOST); Integer port = (Integer)config.get(PORT); String contextPath = config.getProperty(CONTEXT_PATH); try { ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); moduleRegisterService.register(AgentModule.NAME, this.name(), new AgentModuleJettyRegistration(host, port, contextPath)); AgentJettyNamingListener namingListener = new AgentJettyNamingListener(); ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class); moduleListenerService.addListener(namingListener); NamingHandlerRegisterService namingHandlerRegisterService = getManager().find(NamingModule.NAME).getService(NamingHandlerRegisterService.class); namingHandlerRegisterService.register(new AgentJettyNamingHandler(namingListener)); DAOService daoService = getManager().find(StorageModule.NAME).getService(DAOService.class); JettyManagerService managerService = getManager().find(JettyManagerModule.NAME).getService(JettyManagerService.class); Server jettyServer = managerService.createIfAbsent(host, port, contextPath); addHandlers(daoService, jettyServer); } catch (ModuleNotFoundException e) { throw new ServiceNotProvidedException(e.getMessage()); } } @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { Loading @@ -50,6 +91,10 @@ public class AgentModuleJettyProvider extends ModuleProvider { } @Override public String[] requiredModules() { return new String[0]; return new String[] {ClusterModule.NAME, NamingModule.NAME, StorageModule.NAME, JettyManagerModule.NAME}; } private void addHandlers(DAOService daoService, Server jettyServer) { jettyServer.addHandler(new TraceSegmentServletHandler()); } } Loading
apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java +16 −3 Original line number Diff line number Diff line Loading @@ -21,7 +21,10 @@ package org.skywalking.apm.collector.agent.grpc; import java.util.Properties; import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.grpc.handler.JVMMetricsServiceHandler; import org.skywalking.apm.collector.agent.grpc.handler.naming.AgentGRPCNamingHandler; import org.skywalking.apm.collector.agent.grpc.handler.naming.AgentGRPCNamingListener; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleNotFoundException; Loading @@ -29,6 +32,8 @@ import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; import org.skywalking.apm.collector.grpc.manager.GRPCManagerModule; import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService; import org.skywalking.apm.collector.naming.NamingModule; import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; import org.skywalking.apm.collector.server.Server; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.service.DAOService; Loading @@ -38,11 +43,12 @@ import org.skywalking.apm.collector.storage.service.DAOService; */ public class AgentModuleGRPCProvider extends ModuleProvider { public static final String NAME = "gRPC"; private static final String HOST = "host"; private static final String PORT = "port"; @Override public String name() { return "gRPC"; return NAME; } @Override public Class<? extends Module> module() { Loading @@ -61,10 +67,17 @@ public class AgentModuleGRPCProvider extends ModuleProvider { ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); moduleRegisterService.register(AgentModule.NAME, this.name(), new AgentModuleGRPCRegistration(host, port)); AgentGRPCNamingListener namingListener = new AgentGRPCNamingListener(); ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class); moduleListenerService.addListener(namingListener); NamingHandlerRegisterService namingHandlerRegisterService = getManager().find(NamingModule.NAME).getService(NamingHandlerRegisterService.class); namingHandlerRegisterService.register(new AgentGRPCNamingHandler(namingListener)); DAOService daoService = getManager().find(StorageModule.NAME).getService(DAOService.class); GRPCManagerService managerService = getManager().find(GRPCManagerModule.NAME).getService(GRPCManagerService.class); Server gRPCServer = managerService.getOrCreateIfAbsent(host, port); Server gRPCServer = managerService.createIfAbsent(host, port); addHandlers(daoService, gRPCServer); } catch (ModuleNotFoundException e) { throw new ServiceNotProvidedException(e.getMessage()); Loading @@ -76,7 +89,7 @@ public class AgentModuleGRPCProvider extends ModuleProvider { } @Override public String[] requiredModules() { return new String[0]; return new String[] {ClusterModule.NAME, NamingModule.NAME, StorageModule.NAME, GRPCManagerModule.NAME}; } private void addHandlers(DAOService daoService, Server gRPCServer) { Loading
apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java 0 → 100644 +53 −0 Original line number Diff line number Diff line /* * Copyright 2017, OpenSkywalking Organization All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Project repository: https://github.com/OpenSkywalking/skywalking */ package org.skywalking.apm.collector.agent.grpc.handler.naming; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; /** * @author peng-yongsheng */ public class AgentGRPCNamingHandler extends JettyHandler { private final AgentGRPCNamingListener namingListener; public AgentGRPCNamingHandler(AgentGRPCNamingListener namingListener) { this.namingListener = namingListener; } @Override public String pathSpec() { return "/agent/gRPC"; } @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { Set<String> servers = namingListener.getAddresses(); JsonArray serverArray = new JsonArray(); servers.forEach(serverArray::add); return serverArray; } @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { throw new UnsupportedOperationException(); } }
apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright 2017, OpenSkywalking Organization All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Project repository: https://github.com/OpenSkywalking/skywalking */ package org.skywalking.apm.collector.agent.grpc.handler.naming; import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.grpc.AgentModuleGRPCProvider; import org.skywalking.apm.collector.cluster.ClusterModuleListener; /** * @author peng-yongsheng */ public class AgentGRPCNamingListener extends ClusterModuleListener { public static final String PATH = "/" + AgentModule.NAME + "/" + AgentModuleGRPCProvider.NAME; @Override public String path() { return PATH; } @Override public void serverJoinNotify(String serverAddress) { } @Override public void serverQuitNotify(String serverAddress) { } }
apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml +5 −0 Original line number Diff line number Diff line Loading @@ -41,5 +41,10 @@ <artifactId>collector-agent-stream</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.skywalking</groupId> <artifactId>collector-jetty-manager-define</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java +47 −2 Original line number Diff line number Diff line Loading @@ -20,17 +20,36 @@ package org.skywalking.apm.collector.agent.jetty; import java.util.Properties; import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.jetty.handler.TraceSegmentServletHandler; import org.skywalking.apm.collector.agent.jetty.handler.naming.AgentJettyNamingHandler; import org.skywalking.apm.collector.agent.jetty.handler.naming.AgentJettyNamingListener; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleNotFoundException; import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; import org.skywalking.apm.collector.jetty.manager.JettyManagerModule; import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService; import org.skywalking.apm.collector.naming.NamingModule; import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; import org.skywalking.apm.collector.server.Server; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.service.DAOService; /** * @author peng-yongsheng */ public class AgentModuleJettyProvider extends ModuleProvider { public static final String NAME = "jetty"; private static final String HOST = "host"; private static final String PORT = "port"; private static final String CONTEXT_PATH = "context_path"; @Override public String name() { return "jetty"; return NAME; } @Override public Class<? extends Module> module() { Loading @@ -42,7 +61,29 @@ public class AgentModuleJettyProvider extends ModuleProvider { } @Override public void start(Properties config) throws ServiceNotProvidedException { String host = config.getProperty(HOST); Integer port = (Integer)config.get(PORT); String contextPath = config.getProperty(CONTEXT_PATH); try { ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); moduleRegisterService.register(AgentModule.NAME, this.name(), new AgentModuleJettyRegistration(host, port, contextPath)); AgentJettyNamingListener namingListener = new AgentJettyNamingListener(); ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class); moduleListenerService.addListener(namingListener); NamingHandlerRegisterService namingHandlerRegisterService = getManager().find(NamingModule.NAME).getService(NamingHandlerRegisterService.class); namingHandlerRegisterService.register(new AgentJettyNamingHandler(namingListener)); DAOService daoService = getManager().find(StorageModule.NAME).getService(DAOService.class); JettyManagerService managerService = getManager().find(JettyManagerModule.NAME).getService(JettyManagerService.class); Server jettyServer = managerService.createIfAbsent(host, port, contextPath); addHandlers(daoService, jettyServer); } catch (ModuleNotFoundException e) { throw new ServiceNotProvidedException(e.getMessage()); } } @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { Loading @@ -50,6 +91,10 @@ public class AgentModuleJettyProvider extends ModuleProvider { } @Override public String[] requiredModules() { return new String[0]; return new String[] {ClusterModule.NAME, NamingModule.NAME, StorageModule.NAME, JettyManagerModule.NAME}; } private void addHandlers(DAOService daoService, Server jettyServer) { jettyServer.addHandler(new TraceSegmentServletHandler()); } }