Skip to content

Commit

Permalink
Merge pull request #173 from wu-sheng/feature/3.0.1
Browse files Browse the repository at this point in the history
Prepare for release 3.0.1
  • Loading branch information
wu-sheng authored Apr 27, 2017
2 parents ba068e8 + a196fa0 commit d8c9035
Show file tree
Hide file tree
Showing 284 changed files with 4,948 additions and 3,019 deletions.
10 changes: 5 additions & 5 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: '2.1'
services:
skywalking-webui:
image: sky-walking-ui:1.0
image: sky-walking-ui:3.0.1-2017
expose:
- "8080"
ports:
Expand All @@ -12,12 +12,12 @@ services:
- COLLECTOR_SERVERS=skywalking-collector:7001

skywalking-collector:
image: skywalking-collector:3.0-2017
image: skywalking-collector:3.0.1-2017
expose:
- "7001"
- "12800"
- "1000"
ports:
- "7001:7001"
- "12800:12800"
depends_on:
es-server:
condition: service_healthy
Expand All @@ -37,4 +37,4 @@ services:
test: ["CMD", "curl", "-f", "http://localhost:9200"]
interval: 30s
timeout: 10s
retries: 5
retries: 5
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
import io.opentracing.propagation.TextMap;

import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.Map;

/**
* All source code in SkyWalkingTracer acts like an NoopTracer.
Expand All @@ -15,10 +18,11 @@
* Created by wusheng on 2016/12/20.
*/
public class SkyWalkingTracer implements Tracer {
private static String TRACE_HEAD_NAME = "SW-TRACING-NAME";
private static String TRACE_HEAD_NAME = "sw3";

public static Tracer INSTANCE = new SkyWalkingTracer();


@Override
public SpanBuilder buildSpan(String operationName) {
return new SkyWalkingSpanBuilder(operationName);
Expand All @@ -27,15 +31,13 @@ public SpanBuilder buildSpan(String operationName) {
@Override
public <C> void inject(SpanContext spanContext, Format<C> format, C carrier) {
if (Format.Builtin.TEXT_MAP.equals(format) || Format.Builtin.HTTP_HEADERS.equals(format)) {
((TextMap)carrier).put(TRACE_HEAD_NAME, formatCrossProcessPropagationContextData());
((TextMap) carrier).put(TRACE_HEAD_NAME, formatInjectCrossProcessPropagationContextData());
} else if (Format.Builtin.BINARY.equals(format)) {
byte[] key = TRACE_HEAD_NAME.getBytes(ByteBufferContext.CHARSET);
byte[] value = formatCrossProcessPropagationContextData().getBytes(ByteBufferContext.CHARSET);
((ByteBuffer)carrier).put(ByteBufferContext.ENTRY);
((ByteBuffer)carrier).putInt(key.length);
((ByteBuffer)carrier).putInt(value.length);
((ByteBuffer)carrier).put(key);
((ByteBuffer)carrier).put(value);
byte[] value = formatInjectCrossProcessPropagationContextData().getBytes(ByteBufferContext.CHARSET);
((ByteBuffer) carrier).put(key);
((ByteBuffer) carrier).putInt(value.length);
((ByteBuffer) carrier).put(value);
} else {
throw new IllegalArgumentException("Unsupported format: " + format);
}
Expand All @@ -44,42 +46,57 @@ public <C> void inject(SpanContext spanContext, Format<C> format, C carrier) {
@Override
public <C> SpanContext extract(Format<C> format, C carrier) {
if (Format.Builtin.TEXT_MAP.equals(format) || Format.Builtin.HTTP_HEADERS.equals(format)) {
TextMap textMapCarrier = (TextMap)carrier;
extractCrossProcessPropagationContextData(textMapCarrier);
TextMap textMapCarrier = (TextMap) carrier;
formatExtractCrossProcessPropagationContextData(fetchContextData(textMapCarrier));
return new TextMapContext(textMapCarrier);
} else if (Format.Builtin.BINARY.equals(format)) {
ByteBuffer byteBufferCarrier = (ByteBuffer)carrier;
extractCrossProcessPropagationContextData(byteBufferCarrier);
return new ByteBufferContext((ByteBuffer)carrier);
ByteBuffer byteBufferCarrier = (ByteBuffer) carrier;
formatExtractCrossProcessPropagationContextData(fetchContextData(byteBufferCarrier));
return new ByteBufferContext((ByteBuffer) carrier);
} else {
throw new IllegalArgumentException("Unsupported format: " + format);
}
}

/**
* set context data in toolkit-opentracing-activation
*
* @return
*/
private String formatCrossProcessPropagationContextData() {
private String formatInjectCrossProcessPropagationContextData() {
return "";
}

/**
* read context data in toolkit-opentracing-activation
*
* @param textMapCarrier
*/
private void extractCrossProcessPropagationContextData(TextMap textMapCarrier) {
private void formatExtractCrossProcessPropagationContextData(String contextData) {
}

private String fetchContextData(TextMap textMap) {
Iterator<Map.Entry<String, String>> iterator = textMap.iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
if (TRACE_HEAD_NAME.equals(entry.getKey())) {
return entry.getValue();
}
}

return null;
}

/**
* read context data in toolkit-opentracing-activation
*
* @param byteBufferCarrier
*/
private void extractCrossProcessPropagationContextData(ByteBuffer byteBufferCarrier) {
private String fetchContextData(ByteBuffer byteBuffer) {
String contextDataStr = new String(byteBuffer.array(), Charset.forName("UTF-8"));
int index = contextDataStr.indexOf(TRACE_HEAD_NAME);
if (index == -1) {
return null;
}

try {
byteBuffer.position(index + TRACE_HEAD_NAME.getBytes().length);
byte[] contextDataBytes = new byte[byteBuffer.getInt()];
byteBuffer.get(contextDataBytes);
return new String(contextDataBytes, Charset.forName("UTF-8"));
} catch (Exception e) {
return null;
}
}
}
22 changes: 22 additions & 0 deletions skywalking-collector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,17 @@
<artifactId>akka-cluster_2.11</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-slf4j_2.11</artifactId>
<version>${akka.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
Expand All @@ -36,6 +47,17 @@
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-testkit_2.11</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.a.eye.skywalking.collector.cluster.Const;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

Expand All @@ -17,9 +18,14 @@ public enum AkkaSystem {
private Logger logger = LogManager.getFormatterLogger(AkkaSystem.class);

public ActorSystem create() {
Level logLevel = logger.getLevel();

final Config config = ConfigFactory.parseString("akka.remote.netty.tcp.HOSTNAME=" + ClusterConfig.Cluster.Current.HOSTNAME).
withFallback(ConfigFactory.parseString("akka.remote.netty.tcp.PORT=" + ClusterConfig.Cluster.Current.PORT)).
withFallback(ConfigFactory.load("application.conf"));
withFallback(ConfigFactory.parseString("akka.remote.netty.tcp.PORT=" + ClusterConfig.Cluster.Current.PORT)).
withFallback(ConfigFactory.parseString("akka.loggers=[\"akka.event.slf4j.Slf4jLogger\"]")).
withFallback(ConfigFactory.parseString("akka.loglevel=\"" + logLevel.name() + "\"")).

withFallback(ConfigFactory.load("application.conf"));
if (!StringUtil.isEmpty(ClusterConfig.Cluster.SEED_NODES)) {
config.withFallback(ConfigFactory.parseString("akka.cluster.seed-nodes=" + generateSeedNodes()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import akka.cluster.MemberStatus;
import com.a.eye.skywalking.collector.cluster.WorkerListenerMessage;
import com.a.eye.skywalking.collector.cluster.WorkersListener;
import org.apache.logging.log4j.LogManager;
import com.a.eye.skywalking.collector.log.LogManager;
import org.apache.logging.log4j.Logger;

/**
Expand Down Expand Up @@ -52,7 +52,7 @@ final public void allocateJob(Object message) throws Exception {
protected abstract void onWork(Object message) throws Exception;

static class WorkerWithAkka extends UntypedActor {
private Logger logger = LogManager.getFormatterLogger(WorkerWithAkka.class);
private Logger logger = LogManager.INSTANCE.getFormatterLogger(WorkerWithAkka.class);

private Cluster cluster;
private final AbstractClusterWorker ownerWorker;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
package com.a.eye.skywalking.collector.actor;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

/**
* @author pengys5
*/
public abstract class AbstractWorker {

private final Logger logger;

private final LocalWorkerContext selfContext;

private final Role role;
Expand All @@ -14,6 +20,11 @@ public AbstractWorker(Role role, ClusterWorkerContext clusterContext, LocalWorke
this.role = role;
this.clusterContext = clusterContext;
this.selfContext = selfContext;
this.logger = LogManager.getFormatterLogger(role.roleName());
}

final public Logger logger() {
return logger;
}

public abstract void preStart() throws ProviderNotFoundException;
Expand All @@ -35,6 +46,6 @@ final public static AbstractWorker noOwner() {
}

final protected void saveException(Exception e) {
// e.printStackTrace();
logger().error(e);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ final protected ClusterWorkerContext getClusterContext() {

final public WorkerRef create(
AbstractWorker workerOwner) throws IllegalArgumentException, ProviderNotFoundException {
if (workerInstance(clusterContext) == null) {
throw new IllegalArgumentException("cannot get worker instance with nothing obtained from workerInstance()");
}

if (workerOwner == null) {
return onCreate(null);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.a.eye.skywalking.collector.log;

import org.apache.logging.log4j.Logger;

/**
* @author pengys5
*/
public enum LogManager {
INSTANCE;

public Logger getFormatterLogger(final Class<?> clazz) {
return org.apache.logging.log4j.LogManager.getFormatterLogger(clazz);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.a.eye.skywalking.collector.actor;

import akka.actor.ActorSystem;
import com.a.eye.skywalking.collector.actor.selector.RollingSelector;
import com.a.eye.skywalking.collector.actor.selector.WorkerSelector;
import com.a.eye.skywalking.collector.log.LogManager;
import org.apache.logging.log4j.Logger;
import org.mockito.Mockito;
import org.powermock.reflect.Whitebox;

/**
* @author pengys5
*/
//@RunWith(PowerMockRunner.class)
//@PrepareForTest({LogManager.class})
public class AbstractClusterWorkerProviderTestCase {

// @Test
public void testOnCreate() throws ProviderNotFoundException {
LogManager logManager = Mockito.mock(LogManager.class);
Whitebox.setInternalState(LogManager.class, "INSTANCE", logManager);
Logger logger = Mockito.mock(Logger.class);
Mockito.when(logManager.getFormatterLogger(Mockito.any())).thenReturn(logger);

ActorSystem actorSystem = Mockito.mock(ActorSystem.class);
ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(actorSystem);
Impl impl = new Impl();
impl.onCreate(null);
}

class Impl extends AbstractClusterWorkerProvider<AbstractClusterWorkerTestCase.Impl> {
@Override public Role role() {
return Role.INSTANCE;
}

@Override public AbstractClusterWorkerTestCase.Impl workerInstance(ClusterWorkerContext clusterContext) {
return new AbstractClusterWorkerTestCase.Impl(role(), clusterContext, new LocalWorkerContext());
}

@Override public int workerNum() {
return 0;
}
}

enum Role implements com.a.eye.skywalking.collector.actor.Role {
INSTANCE;

@Override
public String roleName() {
return AbstractClusterWorkerTestCase.Impl.class.getSimpleName();
}

@Override
public WorkerSelector workerSelector() {
return new RollingSelector();
}
}
}
Loading

0 comments on commit d8c9035

Please sign in to comment.