diff --git a/skywalking-collector/pom.xml b/skywalking-collector/pom.xml index de6aae3b7d447550f05a386b3f8eb2ce17545c5f..62daf9c044221f3bf638607ea4deb908323e8970 100644 --- a/skywalking-collector/pom.xml +++ b/skywalking-collector/pom.xml @@ -19,11 +19,6 @@ - - com.a.eye - skywalking-sniffer-mock - ${project.version} - com.typesafe.akka akka-cluster_2.11 @@ -49,5 +44,12 @@ leveldb 0.9 + + + com.a.eye + skywalking-sniffer-mock + ${project.version} + test + diff --git a/skywalking-collector/skywalking-collector-cluster/pom.xml b/skywalking-collector/skywalking-collector-cluster/pom.xml index 2c2fcd2a756b31655ce4834d4f2472cac364d5f2..c47b1d8686d7d1715b0a765b6974e19e40d0c254 100644 --- a/skywalking-collector/skywalking-collector-cluster/pom.xml +++ b/skywalking-collector/skywalking-collector-cluster/pom.xml @@ -27,5 +27,10 @@ spring-context-support ${project.spring.version} + + com.a.eye + skywalking-api + ${project.version} + \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/AbstractUntypedActor.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/AbstractUntypedActor.java new file mode 100644 index 0000000000000000000000000000000000000000..256b2ff8374daab4c7c7aa17576d5f0c1587165c --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/AbstractUntypedActor.java @@ -0,0 +1,10 @@ +package com.a.eye.skywalking.collector.cluster.base; + +import akka.actor.ActorSystem; +import akka.actor.UntypedActor; + +/** + * @author pengys5 + */ +public abstract class AbstractUntypedActor extends UntypedActor { +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/IActorProvider.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/IActorProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..279b5a9bd00ed9c1286b53cfab18d799e5eb5eac --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/base/IActorProvider.java @@ -0,0 +1,15 @@ +package com.a.eye.skywalking.collector.cluster.base; + +import akka.actor.ActorSystem; +import com.a.eye.skywalking.collector.cluster.config.CollectorConfig; + +/** + * @author pengys5 + */ +public interface IActorProvider { + public String actorName(); + + public void createActor(ActorSystem system); + + public void actorOf(ActorSystem system, String actorInClusterName); +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java index 54d9b3f0e30876d3f2ea0a33d288f5a1fd55146b..92c311e04044747a1dda693e0114f88e3a73bd7b 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfig.java @@ -11,5 +11,9 @@ public class CollectorConfig { public static String hostname = "127.0.0.1"; public static String port = "2551"; public static String cluster = "127.0.0.1:2551"; + + public static class Actor { + public static int ActorManagerActor_Num = 2; + } } } diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java index 73c0dad756247c301a647f27ee8ee5c56b35a9a0..c47dddc80878fb54dfe3d6a7fa339ac3074bf622 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/config/CollectorConfigInitializer.java @@ -1,6 +1,5 @@ package com.a.eye.skywalking.collector.cluster.config; -import com.a.eye.skywalking.api.conf.Config; import com.a.eye.skywalking.api.logging.api.ILog; import com.a.eye.skywalking.api.logging.api.LogManager; import com.a.eye.skywalking.api.util.ConfigInitializer; diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorCreator.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorCreator.java new file mode 100644 index 0000000000000000000000000000000000000000..9ea63ceb64284618aaf5b0d96232a53353393a97 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorCreator.java @@ -0,0 +1,20 @@ +package com.a.eye.skywalking.collector.cluster.manager; + +import akka.actor.ActorSystem; +import com.a.eye.skywalking.collector.cluster.base.IActorProvider; + +import java.util.ServiceLoader; + +/** + * @author pengys5 + */ +public enum ActorCreator { + INSTANCE; + + public void create(ActorSystem system) { + ServiceLoader serviceLoader = ServiceLoader.load(IActorProvider.class); + for (IActorProvider service : serviceLoader) { + service.createActor(system); + } + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java index cc16d5a24183777e512a3b91b9672d96272b8c48..0047d9f844ee70ec17fa987c9e4a624a855dad5f 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActor.java @@ -1,13 +1,14 @@ package com.a.eye.skywalking.collector.cluster.manager; import akka.actor.Terminated; -import akka.actor.UntypedActor; +import com.a.eye.skywalking.collector.cluster.base.AbstractUntypedActor; +import com.a.eye.skywalking.collector.cluster.base.IActorProvider; import com.a.eye.skywalking.collector.cluster.message.ActorRegisterMessage; /** * Created by Administrator on 2017/2/21 0021. */ -public class ActorManagerActor extends UntypedActor { +public class ActorManagerActor extends AbstractUntypedActor { @Override public void onReceive(Object message) throws Throwable { diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..a3d46e32bb171529daf1932d2b172989f79f447a --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/manager/ActorManagerActorFactory.java @@ -0,0 +1,29 @@ +package com.a.eye.skywalking.collector.cluster.manager; + +import akka.actor.ActorSystem; +import akka.actor.Props; +import com.a.eye.skywalking.collector.cluster.base.IActorProvider; +import com.a.eye.skywalking.collector.cluster.config.CollectorConfig; + +/** + * @author pengys5 + */ +public class ActorManagerActorFactory implements IActorProvider { + + @Override + public String actorName() { + return "ActorManagerActor"; + } + + @Override + public void createActor(ActorSystem system) { + for (int i = 1; i <= CollectorConfig.Collector.Actor.ActorManagerActor_Num; i++) { + actorOf(system, actorName() + "_" + i); + } + } + + @Override + public void actorOf(ActorSystem system, String actorInClusterName) { + system.actorOf(Props.create(ActorManagerActor.class), actorInClusterName); + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java index 86be204caf8e5ad410f9ade0dba81814cff97cd6..f996b43f36736108f7fcb6996f9312d8ad7510c7 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/cluster/producer/TraceProducerApp.java @@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger; import static akka.pattern.Patterns.ask; /** - * {@link TraceProducerApp} is a producer for trace agent to send @link TraceSegment. + * {@link TraceProducerApp} is a producer for trace agent to send {@link TraceSegment}. *

* Created by pengys5 on 2017/2/17. */ diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider b/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider new file mode 100644 index 0000000000000000000000000000000000000000..4a49d7b57999b3e1e4f3cb47543714dd3be1aa0c --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.cluster.base.IActorProvider @@ -0,0 +1 @@ +com.a.eye.skywalking.collector.cluster.manager.ActorManagerActorFactory \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..aa2658c360403833fa33952c5b894acccb818bcb --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorCreatorTestCase.java @@ -0,0 +1,22 @@ +package com.a.eye.skywalking.collector.cluster; + +import akka.actor.ActorSystem; +import akka.actor.Props; +import com.a.eye.skywalking.collector.cluster.manager.ActorCreator; +import com.a.eye.skywalking.collector.cluster.manager.ActorManagerActor; +import org.junit.Test; + +import static org.mockito.Mockito.*; + +/** + * @author pengys5 + */ +public class ActorCreatorTestCase { + + @Test + public void testCreate() { + ActorSystem system = mock(ActorSystem.class); +// ActorCreator.INSTANCE.create(system, ActorManagerActor.class, 1); +// verify(system).actorOf(Props.create(ActorManagerActor.class), "ActorManagerActor"); + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..8516fce44546d361505de16027bb54b3385a04e8 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/ActorProviderTestCase.java @@ -0,0 +1,27 @@ +package com.a.eye.skywalking.collector.cluster; + +import akka.actor.ActorSystem; +import com.a.eye.skywalking.collector.cluster.manager.ActorManagerActorFactory; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Mockito; + +/** + * @author pengys5 + */ +public class ActorProviderTestCase { + + @Test + public void testActorName() { + ActorManagerActorFactory factory = new ActorManagerActorFactory(); + String actorName = factory.actorName(); + Assert.assertEquals("ActorManagerActor", actorName); + } + + @Test + public void testCreateActor() { + ActorSystem system = Mockito.mock(ActorSystem.class); + ActorManagerActorFactory factory = new ActorManagerActorFactory(); + factory.createActor(system); + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java index dfd8be8f4ad159fce2d729709c0cf87cf989e331..560bb76f1376abc938ff6d413e367e638222e4a6 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/cluster/CollectorConfigTestCase.java @@ -7,8 +7,6 @@ import com.typesafe.config.Config; import org.junit.Assert; import org.junit.Test; -import java.util.ArrayList; - /** * Created by pengys5 on 2017/2/22 0022. */ diff --git a/skywalking-collector/skywalking-collector-worker/pom.xml b/skywalking-collector/skywalking-collector-worker/pom.xml index fff11e26261452dcb590a401c04dffa7bf99b5b4..0f03e8852ef222e2fe0620623934b95bc97bd250 100644 --- a/skywalking-collector/skywalking-collector-worker/pom.xml +++ b/skywalking-collector/skywalking-collector-worker/pom.xml @@ -11,5 +11,11 @@ skywalking-collector-worker - + + + com.a.eye + skywalking-collector-cluster + ${project.version} + + \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java new file mode 100644 index 0000000000000000000000000000000000000000..59920b3bcf67e3174acb18aa361f266e95bda5ff --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java @@ -0,0 +1,17 @@ +package com.a.eye.skywalking.collector.worker; + +import akka.actor.ActorSystem; +import akka.actor.Props; +import com.a.eye.skywalking.collector.cluster.Const; +import com.a.eye.skywalking.collector.cluster.consumer.TraceConsumerActor; + +/** + * @author pengys5 + */ +public class CollectorBootStartUp { + + public static void main(String[] args) { +// ActorSystem system = ActorSystem.create("ClusterSystem", config); +// system.actorOf(Props.create(TraceConsumerActor.class), Const.Trace_Consumer_Role); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java new file mode 100644 index 0000000000000000000000000000000000000000..51eef9cef8e6a14a30d7b4903d8d2ad1db22723a --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/ApplicationDiscoverActor.java @@ -0,0 +1,22 @@ +package com.a.eye.skywalking.collector.worker.indicator; + +import akka.actor.UntypedActor; +import com.a.eye.skywalking.collector.cluster.base.AbstractUntypedActor; + +/** + * @author pengys5 + */ +public class ApplicationDiscoverActor extends AbstractUntypedActor { + + public static final String ActorName = "ApplicationDiscoverActor"; + + @Override + public String actorName() { + return ActorName; + } + + @Override + public void onReceive(Object message) throws Throwable { + + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java new file mode 100644 index 0000000000000000000000000000000000000000..dd93fe2223bec76bdfaf76dbdad53b9b2ef8868c --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/indicator/TraceSegmentRelationActor.java @@ -0,0 +1,13 @@ +package com.a.eye.skywalking.collector.worker.indicator; + +import akka.actor.UntypedActor; + +/** + * @author pengys5 + */ +public class TraceSegmentRelationActor extends UntypedActor{ + @Override + public void onReceive(Object message) throws Throwable { + + } +}