diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java index 9724ce9767b083f41bd8728e8f7f37cc08f73f26..b0e3ddd409fd33fbf8868c715af2f75885451573 100644 --- a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java +++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java @@ -50,5 +50,10 @@ public class CollectorBootStartUp { } catch (ServiceNotProvidedException e) { logger.error(e.getMessage(), e); } + + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + } } } diff --git a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/DataMonitor.java b/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/DataMonitor.java index bb961ad248d237de9b482f569e463324c63779fb..8a30089c3bd595a4045ae9ce6961f4705cc99d79 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/DataMonitor.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/DataMonitor.java @@ -25,6 +25,8 @@ import org.skywalking.apm.collector.client.ClientException; * @author peng-yongsheng */ public interface DataMonitor { + String BASE_CATALOG = "/skywalking"; + void setClient(Client client); void addListener(ClusterModuleListener listener) throws ClientException; diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java index 1b0037f2c248fd37133a2741085add8b51599e20..658291556a0137307275bd0946f8faeb0b525057 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java @@ -20,6 +20,7 @@ package org.skywalking.apm.collector.cluster.zookeeper; import java.util.Properties; import org.skywalking.apm.collector.client.zookeeper.ZookeeperClient; +import org.skywalking.apm.collector.client.zookeeper.ZookeeperClientException; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; @@ -32,15 +33,20 @@ import org.skywalking.apm.collector.core.UnexpectedException; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author peng-yongsheng */ public class ClusterModuleZookeeperProvider extends ModuleProvider { + private final Logger logger = LoggerFactory.getLogger(ClusterModuleZookeeperProvider.class); + private static final String HOST_PORT = "hostPort"; private static final String SESSION_TIMEOUT = "sessionTimeout"; + private ZookeeperClient zookeeperClient; private ClusterZKDataMonitor dataMonitor; @Override public String name() { @@ -56,7 +62,7 @@ public class ClusterModuleZookeeperProvider extends ModuleProvider { final String hostPort = config.getProperty(HOST_PORT); final int sessionTimeout = (Integer)config.get(SESSION_TIMEOUT); - ZookeeperClient zookeeperClient = new ZookeeperClient(hostPort, sessionTimeout, dataMonitor); + zookeeperClient = new ZookeeperClient(hostPort, sessionTimeout, dataMonitor); dataMonitor.setClient(zookeeperClient); this.registerServiceImplementation(ModuleListenerService.class, new ZookeeperModuleListenerService(dataMonitor)); @@ -66,14 +72,18 @@ public class ClusterModuleZookeeperProvider extends ModuleProvider { @Override public void start(Properties config) throws ServiceNotProvidedException { try { - dataMonitor.start(); - } catch (CollectorException e) { - throw new UnexpectedException(e.getMessage()); + zookeeperClient.initialize(); + } catch (ZookeeperClientException e) { + logger.error(e.getMessage(), e); } } @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { - + try { + dataMonitor.start(); + } catch (CollectorException e) { + throw new UnexpectedException(e.getMessage()); + } } @Override public String[] requiredModules() { diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java index 6ad398ebe4a35dc77c1803053c509e9353f280cf..5c7c47db660d99b7d29b608ced771f8a0fb58165 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java @@ -136,7 +136,7 @@ public class ClusterZKDataMonitor implements DataMonitor, Watcher { } @Override public void register(String path, ModuleRegistration registration) { - registrations.put(path, registration); + registrations.put(BASE_CATALOG + path, registration); } @Override public ClusterModuleListener getListener(String path) { diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java index fc99c9a1f91b397f4dd51e527d3c261c3642198c..fdc554d0c22185be5dbdfe1ca80c9b7abf01663b 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java @@ -98,6 +98,7 @@ public abstract class Module { } } } + logger.info("start the provider {} in {} module.", provider.name(), provider.module().getName()); provider.start(configuration.getProviderConfiguration(provider.name())); provider.requiredCheck(services()); diff --git a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/src/main/java/org/skywalking/apm/collector/jetty/manager/JettyManagerModule.java b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/src/main/java/org/skywalking/apm/collector/jetty/manager/JettyManagerModule.java index d4476551043b5b8258ea0a763407744a1327134c..b3fa351f598788d197ec0b11262ef01abc807afd 100644 --- a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/src/main/java/org/skywalking/apm/collector/jetty/manager/JettyManagerModule.java +++ b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/src/main/java/org/skywalking/apm/collector/jetty/manager/JettyManagerModule.java @@ -19,6 +19,7 @@ package org.skywalking.apm.collector.jetty.manager; import org.skywalking.apm.collector.core.module.Module; +import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService; /** * @author peng-yongsheng @@ -32,6 +33,6 @@ public class JettyManagerModule extends Module { } @Override public Class[] services() { - return new Class[0]; + return new Class[] {JettyManagerService.class}; } } diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java index c33d101091cee017346e22c7afadf5caf9db3a00..9911a2136482bacc29133956388d9e98c4f1eb69 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java @@ -59,6 +59,7 @@ public class UIModuleJettyProvider extends ModuleProvider { Server jettyServer = managerService.getElseCreateServer(host, port, contextPath); ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); + moduleRegisterService.register(UIModule.NAME, this.name(), new UIModuleRegistration(host, port, contextPath)); } catch (ModuleNotFoundException e) { throw new ServiceNotProvidedException(e.getMessage()); } diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleRegistration.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleRegistration.java new file mode 100644 index 0000000000000000000000000000000000000000..ad3a67b7344a205f9bedd72ed7025876ddafdedc --- /dev/null +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleRegistration.java @@ -0,0 +1,41 @@ +/* + * 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.ui.jetty; + +import org.skywalking.apm.collector.cluster.ModuleRegistration; + +/** + * @author peng-yongsheng + */ +public class UIModuleRegistration extends ModuleRegistration { + + private final String host; + private final int port; + private final String contextPath; + + public UIModuleRegistration(String host, int port, String contextPath) { + this.host = host; + this.port = port; + this.contextPath = contextPath; + } + + @Override public Value buildValue() { + return new Value(host, port, contextPath); + } +}