提交 43ca1a0e 编写于 作者: A ascrutae

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	skywalking-storage-center/skywalking-storage/src/test/java/StorageClient.java
### 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.
...@@ -3,22 +3,16 @@ Sky Walking ...@@ -3,22 +3,16 @@ Sky Walking
<img src="http://wu-sheng.github.io/sky-walking/images/skywalking.png" alt="Sky Walking logo" height="90px" align="right" /> <img src="http://wu-sheng.github.io/sky-walking/images/skywalking.png" alt="Sky Walking logo" height="90px" align="right" />
SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对JAVA分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统 SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, also known Distributed Tracer
[![Build Status](https://travis-ci.org/wu-sheng/sky-walking.svg?branch=master)](https://travis-ci.org/wu-sheng/sky-walking) [![Build Status](https://travis-ci.org/wu-sheng/sky-walking.svg?branch=master)](https://travis-ci.org/wu-sheng/sky-walking)
![license](https://img.shields.io/aur/license/yaourt.svg) ![license](https://img.shields.io/aur/license/yaourt.svg)
# 简介 / abstract # 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/) * An open source Large-Scale Distributed Systems Tracing Infrastructure, also known a ditributed tracer.
* 本分析系统能通过动态字节码技术,对现有的JAVA应用或J2EE应用进行监控和数据收集,并针对应用进场进行准实时告警。此外提供大量的调用性能分析功能,解决目前的监控系统主要监控进程、端口而非应用实际性能的问题。 * 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/)
* 支持国内常用的dubbo、dubbox、motan、httpclient等常见RPC框架,支持应用异常的邮件告警 * 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-sdk层面提供的埋点API,同步阻塞访问时间小于100μs * Execution time of creating span than 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.
* 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 [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. * 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. * 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, 是一个对 ...@@ -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.) * 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) &nbsp;&nbsp;wu.sheng@foxmail.com * 吴晟 [wusheng](https://github.com/wu-sheng) &nbsp;&nbsp;wu.sheng@foxmail.com
* 张鑫 [zhangxin](https://github.com/ascrutae) &nbsp;&nbsp; * 张鑫 [zhangxin](https://github.com/ascrutae) &nbsp;&nbsp;
...@@ -59,12 +53,12 @@ In October 2016, Sky Walking won `OneAPM Open Source Achievement Award`. The awa ...@@ -59,12 +53,12 @@ In October 2016, Sky Walking won `OneAPM Open Source Achievement Award`. The awa
Thanks all users of sky walking project. Thanks all users of sky walking project.
___ ___
# 交流 # Discussion
<img src="http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/chatapp/toutiao.JPG" alt="Sky Walking TouTiao" height="280px" align="left" /> <img src="http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/chatapp/toutiao.JPG" alt="Sky Walking TouTiao" height="280px" align="left" />
* Mail to:wu.sheng@foxmail.com * Mail to:wu.sheng@foxmail.com
* QQ群:392443393,请注明“Sky Walking交流” * QQ Group:392443393
* 谁在使用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.
* 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
<br/> <br/>
<br/> <br/>
<br/> <br/>
...@@ -104,14 +98,14 @@ ___ ...@@ -104,14 +98,14 @@ ___
# v2.0-2016 Quick Start # v2.0-2016 Quick Start
## 部署第三方软件 / Required of third party softwares ## Required of third party softwares
- JDK 1.7 - JDK 1.8
- zookeeper 3.4.6 - zookeeper 3.4.6
- mysql - mysql
- redis-3.0.5 - redis-3.0.5
## 插件支持的JDK / Supported jdk version ## instrument javaagent jdk version
- 1.7以上版本 / support 1.7+ - support 1.6+ , instruments applications can run in jdk6
## 编译与部署 / Build and deploy ## 编译与部署 / Build and deploy
- 服务端发布版本[下载](https://github.com/wu-sheng/sky-walking/releases) (.tar.gz) - 服务端发布版本[下载](https://github.com/wu-sheng/sky-walking/releases) (.tar.gz)
...@@ -122,7 +116,7 @@ ___ ...@@ -122,7 +116,7 @@ ___
- [Code compilation instructions](BUILD_DOC.md) - [Code compilation instructions](BUILD_DOC.md)
## 下载官方的agent / Download offical agent ## Download offical agent
[ ![Download](https://api.bintray.com/packages/wu-sheng/skywalking/com.a.eye.skywalking-agent/images/download.svg) ](https://bintray.com/wu-sheng/skywalking/com.a.eye.skywalking-agent/_latestVersion) [ ![Download](https://api.bintray.com/packages/wu-sheng/skywalking/com.a.eye.skywalking-agent/images/download.svg) ](https://bintray.com/wu-sheng/skywalking/com.a.eye.skywalking-agent/_latestVersion)
- 通过github-release[下载](https://github.com/wu-sheng/sky-walking/releases) - 通过github-release[下载](https://github.com/wu-sheng/sky-walking/releases)
......
...@@ -9,7 +9,7 @@ import static com.a.eye.skywalking.network.grpc.SpanStorageServiceGrpc.newStub; ...@@ -9,7 +9,7 @@ import static com.a.eye.skywalking.network.grpc.SpanStorageServiceGrpc.newStub;
public class StorageClient { public class StorageClient {
private static ManagedChannel channel = 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); private static SpanStorageServiceGrpc.SpanStorageServiceStub spanStorageServiceStub = newStub(channel);
...@@ -19,23 +19,23 @@ public class StorageClient { ...@@ -19,23 +19,23 @@ public class StorageClient {
public static void main(String[] args) throws InterruptedException { 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(); 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<AckSpan> ackSpanStreamObserver = StreamObserver<AckSpan> ackSpanStreamObserver =
spanStorageServiceStub.storageACKSpan(new StreamObserver<SendResult>() { spanStorageServiceStub.storageACKSpan(new StreamObserver<SendResult>() {
@Override @Override
...@@ -87,7 +87,7 @@ public class StorageClient { ...@@ -87,7 +87,7 @@ public class StorageClient {
requestSpanStreamObserver.onCompleted(); requestSpanStreamObserver.onCompleted();
if (i % 500_000 == 0) { if(i % 1_000 == 0){
System.out.println(i); System.out.println(i);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册