();
- private static final String PROCESS_UUID;
+ private static final int PROCESS_UUID;
- static {
- String uuid = UUID.randomUUID().toString().replaceAll("-", "");
- PROCESS_UUID = uuid.substring(uuid.length() - 7);
- }
+ static {
+ String uuid = UUID.randomUUID().toString().replaceAll("-", "");
+ PROCESS_UUID = uuid.substring(uuid.length() - 7).hashCode();
+ }
- private TraceIdGenerator() {
- }
+ private TraceIdGenerator() {
+ }
- /**
- * TraceId由以下规则组成
- * 2位version号 + 1位时间戳(毫秒数) + 1位进程随机号(UUID后7位) + 1位进程数号 + 1位线程号 + 1位线程内序号
- *
- * 注意:这里的位,是指“.”作为分隔符所占的位数,非字符串长度的位数。
- * TraceId为不定长字符串,但保证在分布式集群条件下的唯一性
- *
- * @return
- */
- public static String generate() {
- Integer seq = ThreadTraceIdSequence.get();
- if (seq == null || seq == 10000 || seq > 10000) {
- seq = 0;
- }
- seq++;
- ThreadTraceIdSequence.set(seq);
+ /**
+ * TraceId由以下规则组成
+ * version号 + 1位时间戳(毫秒数) + 1位进程随机号(UUID后7位) + 1位进程数号 + 1位线程号 + 1位线程内序号
+ *
+ * 注意:这里的位,是指“.”作为分隔符所占的位数,非字符串长度的位数。
+ * TraceId为6个片段组成的数组
+ *
+ * @return
+ */
+ public static TraceId generate() {
+ Integer seq = ThreadTraceIdSequence.get();
+ if (seq == null || seq == 10000 || seq > 10000) {
+ seq = 0;
+ }
+ seq++;
+ ThreadTraceIdSequence.set(seq);
- return Constants.SDK_VERSION
- + "." + System.currentTimeMillis()
- + "." + PROCESS_UUID
- + "." + BuriedPointMachineUtil.getProcessNo()
- + "." + Thread.currentThread().getId()
- + "." + seq;
- }
+ return TraceId.newBuilder().addSegments(Constants.SDK_VERSION)
+ .addSegments(System.currentTimeMillis()).addSegments(PROCESS_UUID)
+ .addSegments(BuriedPointMachineUtil.getProcessNo())
+ .addSegments(Thread.currentThread().getId()).addSegments(seq).build();
+ }
}
diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/selfexamination/HeathReading.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/selfexamination/HeathReading.java
deleted file mode 100644
index 2fb71cac9..000000000
--- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/selfexamination/HeathReading.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.a.eye.skywalking.selfexamination;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class HeathReading {
- public static final String ERROR = "[ERROR]";
- public static final String WARNING = "[WARNING]";
- public static final String INFO = "[INFO]";
-
- private String id;
-
- private Map datas = new HashMap();
-
- /**
- * 健康读数,只应该在工作线程中创建
- *
- */
- public HeathReading(String id) {
- this.id = id;
- }
-
- public void updateData(String key, String newData){
- if(datas.containsKey(key)){
- datas.get(key).updateData(newData);
- }else{
- datas.put(key, new HeathDetailData(newData));
- }
- }
-
- @Override
- public String toString(){
- StringBuilder sb = new StringBuilder();
- sb.append("id<").append(this.id).append(">\n");
- for(Map.Entry data : datas.entrySet()){
- sb.append(data.getKey()).append(data.getValue().toString()).append("\n");
- }
-
- //reset data
- datas = new HashMap();
- return sb.toString();
- }
-
- class HeathDetailData{
- private String data;
-
- private long statusTime;
-
- HeathDetailData(String initialData){
- data = initialData;
- statusTime = System.currentTimeMillis();
- }
-
- void updateData(String newData){
- data = newData;
- statusTime = System.currentTimeMillis();
- }
-
- String getData() {
- return data;
- }
-
- long getStatusTime() {
- return statusTime;
- }
-
- @Override
- public String toString(){
- return data + "(t:" + statusTime + ")";
- }
- }
-}
diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/selfexamination/SDKHealthCollector.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/selfexamination/SDKHealthCollector.java
deleted file mode 100644
index ac91bc648..000000000
--- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/selfexamination/SDKHealthCollector.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.a.eye.skywalking.selfexamination;
-
-import java.util.Arrays;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import com.a.eye.skywalking.conf.Config;
-import com.a.eye.skywalking.logging.LogManager;
-import com.a.eye.skywalking.logging.Logger;
-import com.a.eye.skywalking.conf.AuthDesc;
-import com.a.eye.skywalking.protocol.util.BuriedPointMachineUtil;
-
-public class SDKHealthCollector extends Thread {
- private static Logger logger = LogManager
- .getLogger(SDKHealthCollector.class);
-
- private static Map heathReadings = new ConcurrentHashMap();
-
- private SDKHealthCollector() {
- super("HealthCollector");
- this.setDaemon(true);
- }
-
- public static void init() {
- if (AuthDesc.isAuth()) {
- new SDKHealthCollector().start();
- }
- }
-
- public static HeathReading getCurrentHeathReading(String extraId) {
- String id = getId(extraId);
- if (!heathReadings.containsKey(id)) {
- synchronized (heathReadings) {
- if (!heathReadings.containsKey(id)) {
- if (heathReadings.keySet().size() > 5000) {
- throw new RuntimeException(
- "use ServerHealthCollector illegal. There is an overflow trend of SDK Health Collector Report Data.");
- }
- heathReadings.put(id, new HeathReading(id));
- }
- }
- }
- return heathReadings.get(id);
- }
-
- private static String getId(String extraId) {
- return "SDK-API,M:" + BuriedPointMachineUtil.getHostDesc() + ",P:"
- + BuriedPointMachineUtil.getProcessNo() + ",T:"
- + Thread.currentThread().getName() + "("
- + Thread.currentThread().getId() + ")"
- + (extraId == null ? "" : ",extra:" + extraId);
- }
-
- @Override
- public void run() {
- while (true) {
- try {
- Map heathReadingsSnapshot = heathReadings;
- heathReadings = new ConcurrentHashMap();
- String[] keyList = heathReadingsSnapshot.keySet().toArray(
- new String[0]);
- Arrays.sort(keyList);
- StringBuilder log = new StringBuilder();
- log.append("\n---------SDK Health Collector Report---------\n");
- for (String key : keyList) {
- log.append(heathReadingsSnapshot.get(key)).append("\n");
- }
- log.append("------------------------------------------------\n");
-
- logger.info(log);
-
- try {
- Thread.sleep(Config.HealthCollector.REPORT_INTERVAL);
- } catch (InterruptedException e) {
- logger.warn("sleep error.", e);
- }
- } catch (Throwable t) {
- logger.error("SDKHealthCollector report error.", t);
- }
- }
- }
-}
diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSender.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSender.java
deleted file mode 100644
index b2a9a7715..000000000
--- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSender.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.a.eye.skywalking.sender;
-
-import com.a.eye.skywalking.selfexamination.HeathReading;
-import com.a.eye.skywalking.selfexamination.SDKHealthCollector;
-import com.a.eye.skywalking.protocol.common.ISerializable;
-import io.netty.bootstrap.Bootstrap;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import io.netty.channel.ChannelInitializer;
-import io.netty.channel.ChannelOption;
-import io.netty.channel.ChannelPipeline;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.channel.socket.nio.NioSocketChannel;
-import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
-import io.netty.handler.codec.LengthFieldPrepender;
-import io.netty.handler.codec.bytes.ByteArrayDecoder;
-import io.netty.handler.codec.bytes.ByteArrayEncoder;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.List;
-
-import com.a.eye.skywalking.protocol.TransportPackager;
-
-public class DataSender implements IDataSender {
- private EventLoopGroup group;
- private SenderStatus status = SenderStatus.FAILED;
- private InetSocketAddress socketAddress;
- private Channel channel;
-
- public DataSender(String ip, int port) throws IOException {
- this(new InetSocketAddress(ip, port));
- }
-
- public DataSender(InetSocketAddress address) throws IOException {
- this.socketAddress = address;
- status = SenderStatus.READY;
- group = new NioEventLoopGroup();
- try {
- Bootstrap bootstrap = new Bootstrap();
- bootstrap.group(group)
- .channel(NioSocketChannel.class)
- .option(ChannelOption.TCP_NODELAY, true)
- .handler(new ChannelInitializer() {
- @Override
- protected void initChannel(SocketChannel ch) throws Exception {
- ChannelPipeline p = ch.pipeline();
- p.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE, 0, 4, 0, 4));
- p.addLast("frameEncoder", new LengthFieldPrepender(4));
- p.addLast("decoder", new ByteArrayDecoder());
- p.addLast("encoder", new ByteArrayEncoder());
- p.addLast(new ChannelInboundHandlerAdapter() {
- public void channelActive(ChannelHandlerContext ctx) throws Exception {
- super.channelActive(ctx);
- channel = ctx.channel();
- }
- });
- }
- });
- bootstrap.connect(address).sync();
- } catch (Exception e) {
- status = SenderStatus.FAILED;
- SDKHealthCollector
- .getCurrentHeathReading("sender").updateData(HeathReading.INFO, "DataSender[" + socketAddress + "] send data successfully.");
- }
- }
-
- /**
- * 返回是否发送成功
- *
- * @param packageData
- * @return
- */
- @Override
- public boolean send(List packageData) {
- try {
- if (channel != null && channel.isActive()) {
-
- byte[] dataPackage = TransportPackager.pack(packageData);
- channel.writeAndFlush(dataPackage);
-
- SDKHealthCollector.getCurrentHeathReading("sender").updateData(HeathReading.INFO, "DataSender[" + socketAddress + "] send data successfully.");
- return true;
- }else{
- DataSenderFactoryWithBalance.unRegister(this);
- SDKHealthCollector.getCurrentHeathReading("sender").updateData(HeathReading.WARNING, "DataSender[" + socketAddress + "] channel isn't active. unregister sender.");
- }
- } catch (Exception e) {
- DataSenderFactoryWithBalance.unRegister(this);
- SDKHealthCollector.getCurrentHeathReading("sender").updateData(HeathReading.WARNING, "DataSender[" + socketAddress + "] channel broken. unregister sender.");
- }
-
- return false;
- }
-
- public InetSocketAddress getServerAddr() {
- return this.socketAddress;
- }
-
- public void close() {
- if (group != null) {
- group.shutdownGracefully();
- }
- }
-
- public enum SenderStatus {
- READY, FAILED
- }
-
- public SenderStatus getStatus() {
- return status;
- }
-
- public void setStatus(SenderStatus status) {
- this.status = status;
- }
-}
diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSenderFactoryWithBalance.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSenderFactoryWithBalance.java
deleted file mode 100644
index c35001e71..000000000
--- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSenderFactoryWithBalance.java
+++ /dev/null
@@ -1,239 +0,0 @@
-package com.a.eye.skywalking.sender;
-
-import com.a.eye.skywalking.conf.Config;
-import com.a.eye.skywalking.logging.LogManager;
-import com.a.eye.skywalking.logging.Logger;
-import com.a.eye.skywalking.selfexamination.HeathReading;
-import com.a.eye.skywalking.selfexamination.SDKHealthCollector;
-import com.a.eye.skywalking.protocol.util.StringUtil;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.*;
-import java.util.concurrent.ThreadLocalRandom;
-
-public class DataSenderFactoryWithBalance {
-
- private static Logger logger = LogManager.getLogger(DataSenderFactoryWithBalance.class);
- // unUsedServerAddress存放没有使用的服务器地址,
- private static List unusedServerAddresses = new ArrayList();
-
- private static List usingDataSender = new ArrayList();
- private static int maxKeepConnectingSenderSize;
-
- private static int calculateMaxKeeperConnectingSenderSize(int allAddressSize) {
- if (Config.Sender.CONNECT_PERCENT <= 0 || Config.Sender.CONNECT_PERCENT > 100) {
- logger.error("CONNECT_PERCENT must between 1 and 100");
- System.exit(-1);
- }
- return (int) Math.ceil(allAddressSize
- * ((1.0 * Config.Sender.CONNECT_PERCENT / 100) % 100));
- }
-
- // 初始化服务端的地址数据
- static {
- // 获取数据
- if (StringUtil.isEmpty(Config.Sender.SERVERS_ADDR)) {
- throw new IllegalArgumentException(
- "Collection service configuration error.");
- }
-
- // 初始化地址
- Set tmpInetSocketAddress = new HashSet();
- for (String serverConfig : Config.Sender.SERVERS_ADDR.split(";")) {
- String[] server = serverConfig.split(":");
- if (server.length != 2)
- throw new IllegalArgumentException(
- "Collection service configuration error.");
- tmpInetSocketAddress.add(new InetSocketAddress(server[0], Integer
- .valueOf(server[1])));
- }
-
- unusedServerAddresses.addAll(tmpInetSocketAddress);
-
- // 根据配置的服务器集群的地址,来计算保持连接的Sender的数量
- maxKeepConnectingSenderSize = calculateMaxKeeperConnectingSenderSize(tmpInetSocketAddress
- .size());
- // 最大连接消费线程小于保持连接的Sender的数量,就不需要保持那么多的保持连接的Sender的数量
- if (maxKeepConnectingSenderSize > Config.Consumer.MAX_CONSUMER
- * Config.Buffer.POOL_SIZE) {
- maxKeepConnectingSenderSize = Config.Consumer.MAX_CONSUMER
- * Config.Buffer.POOL_SIZE;
- }
-
- new DataSenderChecker().start();
- }
-
- // 获取连接
- public static IDataSender getSender() {
- DataSenderWithCopies readySender = new DataSenderWithCopies(maxKeepConnectingSenderSize);
- while (true) {
- try {
- if (usingDataSender.size() > 0) {
- int index = ThreadLocalRandom.current().nextInt(0,
- usingDataSender.size());
- if (usingDataSender.get(index).getStatus() == DataSender.SenderStatus.READY) {
- while (readySender.append(usingDataSender.get(index))) {
- if (++index == usingDataSender.size()) {
- index = 0;
- }
- }
- break;
- }
- }
-
- if (!readySender.isReady()) {
- try {
- Thread.sleep(Config.Sender.RETRY_GET_SENDER_WAIT_INTERVAL);
- } catch (InterruptedException e) {
- logger.error("Sleep failed", e);
- }
- }
- } catch (Throwable e) {
- logger.error("get sender failed", e);
- }
-
- }
-
- return readySender;
- }
-
- // 定时Sender状态检查
- public static class DataSenderChecker extends Thread {
- public DataSenderChecker() {
- super("Data-Sender-Checker");
- this.setDaemon(true);
- }
-
- @Override
- public void run() {
- long sleepTime = 0;
- while (true) {
- try {
- DataSender newSender;
- // removing failed sender
- Iterator senderIterator = usingDataSender
- .iterator();
- DataSender tmpDataSender;
- while (senderIterator.hasNext()) {
- tmpDataSender = senderIterator.next();
- if (tmpDataSender.getStatus() == DataSender.SenderStatus.FAILED) {
- tmpDataSender.close();
- unusedServerAddresses.add(tmpDataSender
- .getServerAddr());
- senderIterator.remove();
- SDKHealthCollector.getCurrentHeathReading("remove").updateData(HeathReading.INFO, "remove disconnected sender.");
- }
- }
-
- // try to fill up senders. if size is not enough.
- while (unusedServerAddresses.size() > 0 && usingDataSender.size() < maxKeepConnectingSenderSize) {
- if ((newSender = findReadySender()) == null) {
- // no available sender. ignore.
- break;
- }
- usingDataSender.add(newSender);
- SDKHealthCollector.getCurrentHeathReading("add").updateData(HeathReading.INFO, "add new sender.");
- }
-
- // try to switch.
- if (sleepTime >= Config.Sender.SWITCH_SENDER_INTERVAL && unusedServerAddresses.size() > 0) {
- // if sender is enough, go to switch for balancing.
- if (usingDataSender.size() >= maxKeepConnectingSenderSize) {
- DataSender toBeSwitchSender;
- DataSender tmpSender;
-
- int toBeSwitchIndex;
-
- if (usingDataSender.size() - 1 > 0) {
- toBeSwitchIndex = ThreadLocalRandom.current()
- .nextInt(0, usingDataSender.size() - 1);
- } else {
- toBeSwitchIndex = 0;
- }
-
- toBeSwitchSender = usingDataSender
- .get(toBeSwitchIndex);
- tmpSender = findReadySender();
- if (tmpSender != null) {
- usingDataSender.set(toBeSwitchIndex, tmpSender);
- try {
- Thread.sleep(Config.Sender.CLOSE_SENDER_COUNTDOWN);
- } catch (InterruptedException e) {
- logger.error("Sleep Failed", e);
- }
- toBeSwitchSender.close();
- unusedServerAddresses.remove(tmpSender
- .getServerAddr());
- unusedServerAddresses.add(toBeSwitchSender
- .getServerAddr());
- SDKHealthCollector.getCurrentHeathReading("switch").updateData(HeathReading.INFO, "switch existed sender.");
- }
- }
- sleepTime = 0;
- }
- } catch (Throwable e) {
- SDKHealthCollector.getCurrentHeathReading(null).updateData(HeathReading.ERROR, "DataSenderChecker running failed:" + e.getMessage());
- logger.error("DataSenderChecker running failed", e);
- } finally {
- SDKHealthCollector.getCurrentHeathReading(null).updateData(HeathReading.INFO, "using available DataSender connect to: " + listUsingServers());
- }
-
- sleepTime += Config.Sender.CHECKER_THREAD_WAIT_INTERVAL;
- try {
- Thread.sleep(Config.Sender.CHECKER_THREAD_WAIT_INTERVAL);
- } catch (InterruptedException e) {
- logger.error("Sleep failed");
- }
-
- }
- }
- }
-
- private static DataSender findReadySender() {
- DataSender result = null;
- int index = 0;
-
- if (unusedServerAddresses.size() > 1) {
- index = ThreadLocalRandom.current().nextInt(0,
- unusedServerAddresses.size());
- }
-
- for (int i = 0; i < unusedServerAddresses.size(); i++, index++) {
-
- if (index == unusedServerAddresses.size()) {
- index = 0;
- }
-
- try {
- result = new DataSender(unusedServerAddresses.get(index));
- unusedServerAddresses.remove(index);
- break;
- } catch (IOException e) {
- if (result != null) {
- result.close();
- }
- continue;
- }
- }
-
- return result;
- }
-
- public static void unRegister(DataSender socket) {
- socket.setStatus(DataSender.SenderStatus.FAILED);
- }
-
- private static String listUsingServers() {
- StringBuilder usingAddrDesc = new StringBuilder();
- if (usingDataSender.size() > 0) {
- for (DataSender sender : usingDataSender) {
- if (usingAddrDesc.length() > 0) {
- usingAddrDesc.append(",");
- }
- usingAddrDesc.append(sender.getServerAddr().toString());
- }
- }
- return usingAddrDesc.toString();
- }
-}
diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSenderWithCopies.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSenderWithCopies.java
deleted file mode 100644
index e5c08b2c1..000000000
--- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/DataSenderWithCopies.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.a.eye.skywalking.sender;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import com.a.eye.skywalking.conf.Config;
-import com.a.eye.skywalking.selfexamination.HeathReading;
-import com.a.eye.skywalking.selfexamination.SDKHealthCollector;
-import com.a.eye.skywalking.protocol.common.ISerializable;
-
-/**
- * 带副本的数据发送器
- *
- * @author wusheng
- *
- */
-public class DataSenderWithCopies implements IDataSender {
- private int maxCopyNum;
-
- private Set senders = new HashSet();
-
- public DataSenderWithCopies(int maxKeepConnectingSenderSize) {
- // 最大副本数量,不能大于可用最大连接数
- maxCopyNum = maxKeepConnectingSenderSize > Config.Sender.MAX_COPY_NUM ? Config.Sender.MAX_COPY_NUM
- : maxKeepConnectingSenderSize;
- }
-
- /**
- * 尝试增加到最大可用副本数,极端情况可能不足
- *
- * @param dataSender
- * @return
- */
- public boolean append(IDataSender dataSender) {
- // 出现重复sender,副本到达最大限度
- if (senders.contains(dataSender)) {
- return false;
- }
- senders.add(dataSender);
- return senders.size() < maxCopyNum;
- }
-
- boolean isReady(){
- return senders.size() > 0 ;
- }
-
-
- /**
- * 尝试向所有副本发送
- */
- public boolean send(List packageData) {
- int successNum = 0;
- for (IDataSender sender : senders) {
- if (sender.send(packageData)) {
- successNum++;
- }
- }
- SDKHealthCollector.getCurrentHeathReading("DataSenderWithCopies").updateData(HeathReading.INFO, "DataSender send data with copynum=" + successNum + " successfully.");
- if (senders.size() == 1 && successNum == 1) {
- return true;
- } else if (successNum >= 2) {
- return true;
- } else {
- return false;
- }
- }
-
-}
diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/IDataSender.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/IDataSender.java
deleted file mode 100644
index c7c1d843b..000000000
--- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/sender/IDataSender.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.a.eye.skywalking.sender;
-
-import com.a.eye.skywalking.protocol.common.ISerializable;
-
-import java.util.List;
-
-public interface IDataSender {
- public boolean send(List data);
-}
diff --git a/skywalking-sniffer/skywalking-api/src/test/java/test/a/eye/cloud/logging/LoggingTest.java b/skywalking-sniffer/skywalking-api/src/test/java/test/a/eye/cloud/logging/LoggingTest.java
index 06a9361ba..0a067674b 100644
--- a/skywalking-sniffer/skywalking-api/src/test/java/test/a/eye/cloud/logging/LoggingTest.java
+++ b/skywalking-sniffer/skywalking-api/src/test/java/test/a/eye/cloud/logging/LoggingTest.java
@@ -2,26 +2,26 @@ package test.a.eye.cloud.logging;
import com.a.eye.skywalking.conf.Config;
import com.a.eye.skywalking.logging.LogManager;
-import com.a.eye.skywalking.logging.Logger;
+import com.a.eye.skywalking.logging.EasyLogger;
import org.junit.Test;
public class LoggingTest {
- Logger logger = LogManager.getLogger(LoggingTest.class);
+ EasyLogger easyLogger = LogManager.getLogger(LoggingTest.class);
@Test
public void testNormalLogging() {
- logger.debug("Hello World");
+ easyLogger.debug("Hello World");
}
@Test
public void testErrorLogging() {
- logger.error("Hello World", new RuntimeException("Failed message"));
+ easyLogger.error("Hello World", new RuntimeException("Failed message"));
}
@Test
public void testConvertFile() {
Config.Logging.MAX_LOG_FILE_LENGTH = 2400;
- logger.error("Hello World", new RuntimeException("Failed message"));
+ easyLogger.error("Hello World", new RuntimeException("Failed message"));
}
}
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/pom.xml b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/pom.xml
deleted file mode 100644
index d6a15cf34..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/pom.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- skywalking-sdk-plugin
- com.a.eye
- 2.0-2016
-
- 4.0.0
-
- custom-local-method-interceptor-plugin
- jar
-
- custom-local-method-interceptor-plugin
- http://maven.apache.org
-
-
- UTF-8
-
-
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalMethodInterceptor.java b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalMethodInterceptor.java
deleted file mode 100644
index d14f7ebba..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalMethodInterceptor.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package com.a.eye.skywalking.plugin.custom.localmethod;
-
-import com.a.eye.skywalking.api.Tracing;
-import com.a.eye.skywalking.buffer.ContextBuffer;
-import com.a.eye.skywalking.conf.Config;
-import com.a.eye.skywalking.invoke.monitor.LocalMethodInvokeMonitor;
-import com.a.eye.skywalking.model.Identification;
-import com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext;
-import com.a.eye.skywalking.plugin.interceptor.enhance.*;
-import com.a.eye.skywalking.protocol.InputParametersSpan;
-import com.a.eye.skywalking.protocol.OutputParameterSpan;
-import com.google.gson.Gson;
-
-public class CustomLocalMethodInterceptor implements InstanceMethodsAroundInterceptor, StaticMethodsAroundInterceptor {
-
- @Override
- public void onConstruct(EnhancedClassInstanceContext context, ConstructorInvokeContext interceptorContext) {
- }
-
- @Override
- public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext,
- MethodInterceptResult result) {
- Identification.IdentificationBuilder identificationBuilder = Identification.newBuilder();
- identificationBuilder.spanType(new CustomLocalSpanType()).viewPoint(
- fullMethodName(interceptorContext.inst().getClass(), interceptorContext.methodName(),
- interceptorContext.argumentTypes()));
-
- new LocalMethodInvokeMonitor().beforeInvoke(identificationBuilder.build());
-
- recordParametersAndSave2BufferIfNecessary(interceptorContext.allArguments());
- }
-
- private void recordParametersAndSave2BufferIfNecessary(Object[] arguments) {
- if (Config.Plugin.CustomLocalMethodInterceptorPlugin.RECORD_PARAM_ENABLE) {
- InputParametersSpan inputParametersSpan = new InputParametersSpan(Tracing.getTraceId(), Tracing.getTracelevelId());
- for (Object param : arguments) {
- String paramStr;
- try {
- paramStr = new Gson().toJson(param);
- } catch (Throwable e) {
- paramStr = "N/A";
- }
- inputParametersSpan.addParameter(paramStr);
- }
-
- ContextBuffer.save(inputParametersSpan);
- }
- }
-
- @Override
- public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext,
- Object ret) {
- recordResultAndSave2BufferIfNecessary(ret);
- new LocalMethodInvokeMonitor().afterInvoke();
- return ret;
- }
-
- @Override
- public void handleMethodException(Throwable t, EnhancedClassInstanceContext context,
- InstanceMethodInvokeContext interceptorContext) {
- new LocalMethodInvokeMonitor().occurException(t);
- }
-
-
- @Override
- public void beforeMethod(StaticMethodInvokeContext interceptorContext, MethodInterceptResult result) {
- Identification.IdentificationBuilder identificationBuilder = Identification.newBuilder();
- identificationBuilder.spanType(new CustomLocalSpanType()).viewPoint(
- fullMethodName(interceptorContext.claszz(), interceptorContext.methodName(),
- interceptorContext.argumentTypes()));
-
- new LocalMethodInvokeMonitor().beforeInvoke(identificationBuilder.build());
-
- recordParametersAndSave2BufferIfNecessary(interceptorContext.allArguments());
- }
-
- @Override
- public Object afterMethod(StaticMethodInvokeContext interceptorContext, Object ret) {
- recordResultAndSave2BufferIfNecessary(ret);
- new LocalMethodInvokeMonitor().afterInvoke();
- return ret;
- }
-
- private void recordResultAndSave2BufferIfNecessary(Object ret) {
- if (Config.Plugin.CustomLocalMethodInterceptorPlugin.RECORD_PARAM_ENABLE){
- OutputParameterSpan outputParameterSpan = new OutputParameterSpan(Tracing.getTraceId(), Tracing.getTracelevelId());
- String retStr;
- try{
- retStr = new Gson().toJson(ret);
- }catch (Throwable e){
- retStr = "N/A";
- }
- outputParameterSpan.setOutputParameter(retStr);
- ContextBuffer.save(outputParameterSpan);
- }
- }
-
- @Override
- public void handleMethodException(Throwable t, MethodInvokeContext interceptorContext) {
- new LocalMethodInvokeMonitor().occurException(t);
- }
-
- private String fullMethodName(Class clazz, String simpleMethodName, Class[] allArgumentTypes) {
- StringBuilder methodName = new StringBuilder(clazz.getName() + "." + simpleMethodName + "(");
- for (Class argument : allArgumentTypes) {
- methodName.append(argument.getName() + ",");
- }
-
- if (allArgumentTypes.length > 0) {
- methodName.deleteCharAt(methodName.length() - 1);
- }
-
- methodName.append(")");
- return methodName.toString();
- }
-}
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalSpanType.java b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalSpanType.java
deleted file mode 100644
index e0a02ee9f..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalSpanType.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.a.eye.skywalking.plugin.custom.localmethod;
-
-import com.a.eye.skywalking.api.IBuriedPointType;
-import com.a.eye.skywalking.protocol.common.CallType;
-
-public class CustomLocalSpanType implements IBuriedPointType {
- @Override
- public String getTypeName() {
- return "L";
- }
-
- @Override
- public CallType getCallType() {
- return CallType.SYNC;
- }
-}
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/define/CustomLocalMethodPluginDefine.java b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/define/CustomLocalMethodPluginDefine.java
deleted file mode 100644
index 47141c893..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/java/com/a/eye/skywalking/plugin/custom/localmethod/define/CustomLocalMethodPluginDefine.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.a.eye.skywalking.plugin.custom.localmethod.define;
-
-import com.a.eye.skywalking.conf.Config;
-import com.a.eye.skywalking.plugin.interceptor.MethodMatcher;
-import com.a.eye.skywalking.plugin.interceptor.enhance.ClassEnhancePluginDefine;
-import com.a.eye.skywalking.plugin.interceptor.matcher.AnyMethodsMatcher;
-
-public class CustomLocalMethodPluginDefine extends ClassEnhancePluginDefine {
-
- @Override
- protected MethodMatcher[] getInstanceMethodsMatchers() {
- return new MethodMatcher[] {new AnyMethodsMatcher()};
- }
-
- @Override
- protected String getInstanceMethodsInterceptor() {
- return "com.a.eye.skywalking.plugin.custom.localmethod.CustomLocalMethodInterceptor";
- }
-
- @Override
- protected MethodMatcher[] getStaticMethodsMatchers() {
- return new MethodMatcher[] {new AnyMethodsMatcher()};
- }
-
- @Override
- protected String getStaticMethodsInterceptor() {
- return "com.a.eye.skywalking.plugin.custom.localmethod.CustomLocalMethodInterceptor";
- }
-
- @Override
- protected String enhanceClassName() {
- if (!Config.Plugin.CustomLocalMethodInterceptorPlugin.IS_ENABLE){
- return null;
- }
- return Config.Plugin.CustomLocalMethodInterceptorPlugin.PACKAGE_PREFIX;
- }
-}
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/resources/skywalking-plugin.def b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/resources/skywalking-plugin.def
deleted file mode 100644
index a32a22796..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/main/resources/skywalking-plugin.def
+++ /dev/null
@@ -1 +0,0 @@
-com.a.eye.skywalking.plugin.custom.localmethod.define.CustomLocalMethodPluginDefine
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalMethodPluginTest.java b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalMethodPluginTest.java
deleted file mode 100644
index c26f2990e..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/com/a/eye/skywalking/plugin/custom/localmethod/CustomLocalMethodPluginTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.a.eye.skywalking.plugin.custom.localmethod;
-
-import com.a.eye.skywalking.plugin.TracingBootstrap;
-import com.a.eye.skywalking.testframework.api.RequestSpanAssert;
-import org.junit.Test;
-import test.com.ai.test.TestObject;
-import test.com.ai.test.TestParam;
-
-import java.lang.reflect.InvocationTargetException;
-
-public class CustomLocalMethodPluginTest {
-
- @Test
- public void test()
- throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
- TracingBootstrap.main(new String[]{"CustomLocalMethodPluginTest"});
- }
-
- public static void main(String[] args) throws InterruptedException {
- TestObject testObject = new TestObject();
- testObject.printlnHelloWorld();
- TestObject.staticPrintlnHelloWorld("AA", new TestParam());
- RequestSpanAssert.assertEquals(new String[][] {
- {"0", "test.com.ai.test.TestObject.printlnHelloWorld()", ""},
- {"0", "test.com.ai.test.TestObject.staticPrintlnHelloWorld()", ""}
- });
- }
-}
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/test/com/ai/test/TestObject.java b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/test/com/ai/test/TestObject.java
deleted file mode 100644
index 97058f5d2..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/test/com/ai/test/TestObject.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package test.com.ai.test;
-
-public class TestObject {
- public static void staticPrintlnHelloWorld(String aa, TestParam param){
- System.out.println("Hello World" + aa);
- }
-
- public void printlnHelloWorld(TestParam... params){
- System.out.println("Hello World");
- }
-}
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/test/com/ai/test/TestParam.java b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/test/com/ai/test/TestParam.java
deleted file mode 100644
index b2f6e6c68..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/java/test/com/ai/test/TestParam.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package test.com.ai.test;
-
-/**
- * Created by xin on 16/8/12.
- */
-public class TestParam {
-}
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/resources/sky-walking.auth b/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/resources/sky-walking.auth
deleted file mode 100644
index e3d197ccc..000000000
--- a/skywalking-sniffer/skywalking-sdk-plugin/custom-local-method-interceptor-plugin/src/test/resources/sky-walking.auth
+++ /dev/null
@@ -1,54 +0,0 @@
-#skyWalking用户ID
-skywalking.user_id=123
-#skyWalking应用编码
-skywalking.application_code=skywalking-sample-dubbo
-#skywalking auth的环境变量名字
-skywalking.auth_system_env_name=SKYWALKING_RUN
-#skywalking数据编码
-skywalking.charset=UTF-8
-skywalking.auth_override=true
-#是否使用STD替换日志输出
-skywalking.logger_std_out_override=false;
-
-#是否打印数据
-buriedpoint.printf=true
-#埋点异常的最大长度
-buriedpoint.max_exception_stack_length=4000
-#业务字段的最大长度
-buriedpoint.businesskey_max_length=300
-#过滤异常
-buriedpoint.exclusive_exceptions=java.lang.RuntimeException
-
-#最大发送者的连接数阀比例
-sender.connect_percent=100
-#发送服务端配置
-sender.servers_addr=127.0.0.1:34000
-#最大发送的副本数量
-sender.max_copy_num=2
-#发送的最大长度
-sender.max_send_length=20000
-#当没有Sender时,尝试获取sender的等待周期
-sender.retry_get_sender_wait_interval=2000
-
-#最大消费线程数
-consumer.max_consumer=1
-#消费者最大等待时间
-consumer.max_wait_time=5
-#发送失败等待时间
-consumer.consumer_fail_retry_wait_interval=50
-
-#每个Buffer的最大个数
-buffer.buffer_max_size=18000
-#Buffer池的最大长度
-buffer.pool_size=5
-
-#发送检查线程检查周期
-senderchecker.check_polling_time=200
-
-#自定义本地方法插件是否开启
-plugin.customlocalmethodinterceptorplugin.is_enable=true
-#自定义插件拦截的包前缀
-plugin.customlocalmethodinterceptorplugin.package_prefix=test.com.ai.test.*
-#自定义插件是否记录入参
-plugin.customlocalmethodinterceptorplugin.record_param_enable=true
-
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/pom.xml b/skywalking-sniffer/skywalking-sdk-plugin/pom.xml
index f2f4cdac8..4caf13c58 100644
--- a/skywalking-sniffer/skywalking-sdk-plugin/pom.xml
+++ b/skywalking-sniffer/skywalking-sdk-plugin/pom.xml
@@ -16,7 +16,6 @@
httpClient-4.x-plugin
jedis-2.x-plugin
tomcat-7.x-8.x-plugin
- custom-local-method-interceptor-plugin
motan-plugin
pom
diff --git a/skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/define/TomcatPluginDefine.java b/skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/define/TomcatPluginDefine.java
index 57ddd986d..101190402 100644
--- a/skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/define/TomcatPluginDefine.java
+++ b/skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/define/TomcatPluginDefine.java
@@ -1,13 +1,13 @@
package com.a.eye.skywalking.plugin.tomcat78x.define;
import com.a.eye.skywalking.logging.LogManager;
-import com.a.eye.skywalking.logging.Logger;
+import com.a.eye.skywalking.logging.EasyLogger;
import com.a.eye.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher;
import com.a.eye.skywalking.plugin.interceptor.MethodMatcher;
import com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine;
public class TomcatPluginDefine extends ClassInstanceMethodsEnhancePluginDefine {
- private static Logger logger = LogManager.getLogger(TomcatPluginDefine.class);
+ private static EasyLogger easyLogger = LogManager.getLogger(TomcatPluginDefine.class);
@Override
protected MethodMatcher[] getInstanceMethodsMatchers() {
diff --git a/skywalking-sniffer/skywalking-test-api/pom.xml b/skywalking-sniffer/skywalking-test-api/pom.xml
index df4dcd23d..0af92da46 100644
--- a/skywalking-sniffer/skywalking-test-api/pom.xml
+++ b/skywalking-sniffer/skywalking-test-api/pom.xml
@@ -19,5 +19,11 @@
+
+ com.a.eye
+ skywalking-api
+ ${project.version}
+
+
diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java
index 2646a9246..0298125fc 100644
--- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java
+++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java
@@ -53,7 +53,7 @@ public class RequestSpanData extends AbstractSpanData {
return requestSpan.getApplicationId();
}
- public String getProcessNo() {
+ public int getProcessNo() {
return requestSpan.getProcessNo();
}