diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..37f7b1531
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,20 @@
+### Welcome all contributors and everyone from [skywalking-developer org](https://github.com/skywalking-developer)
+
+Please observe the following rules:
+* All Issues and Features will be managed the [**Issues Page**](https://github.com/wu-sheng/sky-walking/issues).
+* All Issues ( features or bugs ) descriptions should be in English.
+
+## For Common Contributors
+1. You should create new Issues ( features or bugs )
+1. We will review your issues, and have a disccusion with you.
+1. If your issues been confirms, I can develop on your fork repo, and send PR when finished.
+
+## For [skywalking-developer org](https://github.com/skywalking-developer) member
+1. All issues will be tagged **Feature4OrgDeveloper**, if they are refer to **skywalking-developer org**.
+1. If Everyone want to develop on any feature, you should comment on the Issue, and set a deadline for yourself.
+1. You should create a branch on **skywalking-developer/sky-walking**, named as `features/issueId`, such as `features/11` (link to Issues 11 on this **Issues Page** )
+1. When finish your feature, you send a **pull request** to **wu-sheng/sky-walking**, and we can discuss the detail (design, mechanism, performance, etc.). When everything is look good to the whole team, I will merge the feature. And, Wo-ah, you will begin an official contributor of **sky-walking**
+
+---
+
+All features or bug-fix codes have been merged into this repo, they belong to sky-walking team, with [GPL-3.0](https://github.com/wu-sheng/sky-walking/blob/master/LICENSE) protocol.
diff --git a/README.md b/README.md
index e4b57e15b..fd8cb6be5 100644
--- a/README.md
+++ b/README.md
@@ -3,22 +3,16 @@ Sky Walking
-SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对JAVA分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统。
+SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, also known Distributed Tracer。
[](https://travis-ci.org/wu-sheng/sky-walking)

-# 简介 / abstract
-* 核心理论为[Google Dapper论文:Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](http://research.google.com/pubs/pub36356.html),英语有困难的同学可参考[国内翻译](http://duanple.blog.163.com/blog/static/70971767201329113141336/)
-* 本分析系统能通过动态字节码技术,对现有的JAVA应用或J2EE应用进行监控和数据收集,并针对应用进场进行准实时告警。此外提供大量的调用性能分析功能,解决目前的监控系统主要监控进程、端口而非应用实际性能的问题。
-* 支持国内常用的dubbo、dubbox、motan、httpclient等常见RPC框架,支持应用异常的邮件告警
-* skywalking-sdk层面提供的埋点API,同步阻塞访问时间小于100μs
-* 通过[byte-buddy](https://github.com/raphw/byte-buddy),插件将通过动态字节码机制,避免代码侵入性,完成监控。动态代码模式埋点,同步阻塞访问时间应在200-300μs
-* 通过[DataCarrier](https://github.com/wu-sheng/DataCarrier),提供高效的并行处理能力
-* 提供一定的日志数据分析和展现能力,减少或者避免使用团队的二次开发
-* SkyWalking is an open source Large-Scale Distributed Systems Tracing Infrastructure, also been known as APM(Application Performance Management) tool. SkyWalking provides a solution to help monitor and analysis a Large-Scale Distributed Systems.
-* SkyWalking supports popular rpc frameworks, such as [dubbo](https://github.com/alibaba/dubbo), [dubbox](https://github.com/dangdangdotcom/dubbox), [motan](https://github.com/weibocom/motan) etc., supports email-alert when application occurs unexpected exception。
-* SkyWalking's basic API, execution time of blocking saving span must less than 100μs.
+# Abstract
+* An open source Large-Scale Distributed Systems Tracing Infrastructure, also known a ditributed tracer.
+* Based on [Google Dapper Paper: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](http://research.google.com/pubs/pub36356.html), [Simplified Chines](http://duanple.blog.163.com/blog/static/70971767201329113141336/)
+* Supports popular rpc frameworks, such as [dubbo](https://github.com/alibaba/dubbo), [dubbox](https://github.com/dangdangdotcom/dubbox), [motan](https://github.com/weibocom/motan) etc., supports email-alert when application occurs unexpected exception。
+* Execution time of creating span than 100μs.
* By using [byte-buddy](https://github.com/raphw/byte-buddy) (Thanks to [raphw](https://github.com/raphw)), plugins use dynamic byte code generation to avoid invasive codes. plugins API, execution time of blocking saving span must between 200μs and 300μs, including execution time of dynamic byte code.
* By using [DataCarrier](https://github.com/wu-sheng/DataCarrier), provide parallel high-throughput processing capability.
* Provide trace log analysis and presentation capabilities, Reduce or avoid add-on functions development.
@@ -43,7 +37,7 @@ SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对
* config package name or class name (Recommend to use in dev or test enviroment. Will cost too many in product enviroment.)
-# 主要贡献者 / Contributors
+# Contributors
* 吴晟 [wusheng](https://github.com/wu-sheng) wu.sheng@foxmail.com
* 张鑫 [zhangxin](https://github.com/ascrutae)
@@ -59,12 +53,12 @@ In October 2016, Sky Walking won `OneAPM Open Source Achievement Award`. The awa
Thanks all users of sky walking project.
___
-# 交流
+# Discussion
* Mail to:wu.sheng@foxmail.com
-* QQ群:392443393,请注明“Sky Walking交流”
-* 谁在使用Sky Walking?[点击进入](https://github.com/wu-sheng/sky-walking/issues/34)。同时请各位使用者反馈下,都在哪些项目中使用。
-* if you are using SkyWalking,[Report to us](https://github.com/wu-sheng/sky-walking/issues/34) please.
+* QQ Group:392443393
+* If you are using SkyWalking,[Report to us](https://github.com/wu-sheng/sky-walking/issues/34) please.
+* **Developer Org of sky-walking** is https://github.com/skywalking-developer
@@ -104,14 +98,14 @@ ___
# v2.0-2016 Quick Start
-## 部署第三方软件 / Required of third party softwares
-- JDK 1.7
+## Required of third party softwares
+- JDK 1.8
- zookeeper 3.4.6
- mysql
- redis-3.0.5
-## 插件支持的JDK / Supported jdk version
-- 1.7以上版本 / support 1.7+
+## instrument javaagent jdk version
+- support 1.6+ , instruments applications can run in jdk6
## 编译与部署 / Build and deploy
- 服务端发布版本[下载](https://github.com/wu-sheng/sky-walking/releases) (.tar.gz)
@@ -122,7 +116,7 @@ ___
- [Code compilation instructions](BUILD_DOC.md)
-## 下载官方的agent / Download offical agent
+## Download offical agent
[  ](https://bintray.com/wu-sheng/skywalking/com.a.eye.skywalking-agent/_latestVersion)
- 通过github-release[下载](https://github.com/wu-sheng/sky-walking/releases)
diff --git a/skywalking-storage-center/skywalking-storage/src/test/java/StorageClient.java b/skywalking-storage-center/skywalking-storage/src/test/java/StorageClient.java
index 59bd31437..cd18e2c9f 100644
--- a/skywalking-storage-center/skywalking-storage/src/test/java/StorageClient.java
+++ b/skywalking-storage-center/skywalking-storage/src/test/java/StorageClient.java
@@ -9,7 +9,7 @@ import static com.a.eye.skywalking.network.grpc.SpanStorageServiceGrpc.newStub;
public class StorageClient {
private static ManagedChannel channel =
- ManagedChannelBuilder.forAddress("127.0.0.1", 34000).usePlaintext(true).build();
+ ManagedChannelBuilder.forAddress("10.128.35.79", 34000).usePlaintext(true).build();
private static SpanStorageServiceGrpc.SpanStorageServiceStub spanStorageServiceStub = newStub(channel);
@@ -19,23 +19,23 @@ public class StorageClient {
public static void main(String[] args) throws InterruptedException {
- RequestSpan requestSpan =
- RequestSpan.newBuilder().setSpanType(1).setAddress("127.0.0.1").setApplicationId("1").setCallType("1")
- .setParentLevel("0.0.0").setLevelId(0).setProcessNo("19287")
- .setStartDate(System.currentTimeMillis()).setTraceId(
- TraceId.newBuilder().addSegments(201611).addSegments(1478661327960L).addSegments(8504828)
- .addSegments(2277).addSegments(53).addSegments(3).build()).setUserId("1")
- .setViewPointId("com.a.eye.skywalking.storage.block.index.BlockIndexEngine.newFinder").build();
-
- AckSpan ackSpan = AckSpan.newBuilder().setParentLevel("0.0.0").setLevelId(0).setCost(10).setTraceId(
- TraceId.newBuilder().addSegments(201611).addSegments(1478661327960L).addSegments(8504828)
- .addSegments(2277).addSegments(53).addSegments(3).build()).setStatusCode(0)
- .setViewpointId("com.a.eye.skywalking.storage.block.index.BlockIndexEngine.newFinder").build();
long startTime = System.currentTimeMillis();
- for (int i = 0; i < 10000; i++) {
+ for (int i = 0; i < 1000000; i++) {
+ RequestSpan requestSpan =
+ RequestSpan.newBuilder().setSpanType(1).setAddress("127.0.0.1").setApplicationId("1").setCallType("1")
+ .setLevelId(0).setProcessNo("19287").setStartDate(System.currentTimeMillis()).setTraceId(
+ TraceId.newBuilder().addSegments(201611).addSegments(System.currentTimeMillis()).addSegments(8504828)
+ .addSegments(2277).addSegments(53).addSegments(3).build()).setUserId("1")
+ .setViewPointId("http://localhost:8080/wwww/test/helloWorld").build();
+
+ AckSpan ackSpan = AckSpan.newBuilder().setLevelId(0).setCost(10).setTraceId(
+ TraceId.newBuilder().addSegments(201611).addSegments(System.currentTimeMillis()).addSegments(8504828)
+ .addSegments(2277).addSegments(53).addSegments(3).build()).setStatusCode(0)
+ .setViewpointId("http://localhost:8080/wwww/test/helloWorld").build();
+
StreamObserver ackSpanStreamObserver =
spanStorageServiceStub.storageACKSpan(new StreamObserver() {
@Override
@@ -87,7 +87,7 @@ public class StorageClient {
requestSpanStreamObserver.onCompleted();
- if (i % 500_000 == 0) {
+ if(i % 1_000 == 0){
System.out.println(i);
}