README.md 9.7 KB
Newer Older
wu-sheng's avatar
wu-sheng 已提交
1 2 3
Sky Walking
==========

T
The Gitter Badger 已提交
4 5
[![Join the chat at https://gitter.im/sky-walking/Lobby](https://badges.gitter.im/sky-walking/Lobby.svg)](https://gitter.im/sky-walking/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

wu-sheng's avatar
wu-sheng 已提交
6
<img src="http://wu-sheng.github.io/sky-walking/images/skywalking.png" alt="Sky Walking logo" height="90px" align="right" />
wu-sheng's avatar
wu-sheng 已提交
7

wu-sheng's avatar
wu-sheng 已提交
8
SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, also known Distributed Tracer。
wu-sheng's avatar
wu-sheng 已提交
9

wu-sheng's avatar
wu-sheng 已提交
10
[![Build Status](https://travis-ci.org/wu-sheng/sky-walking.svg?branch=master)](https://travis-ci.org/wu-sheng/sky-walking)
11
![license](https://img.shields.io/aur/license/yaourt.svg)
wu-sheng's avatar
wu-sheng 已提交
12

wu-sheng's avatar
wu-sheng 已提交
13 14 15 16 17
# 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.
18
* 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.
wu-sheng's avatar
wu-sheng 已提交
19
* By using [DataCarrier](https://github.com/wu-sheng/DataCarrier), provide parallel high-throughput processing capability.
wu-sheng's avatar
wu-sheng 已提交
20
* Provide trace log analysis and presentation capabilities, Reduce or avoid add-on functions development.
wu-sheng's avatar
wu-sheng 已提交
21

wu-sheng's avatar
wu-sheng 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34
# Supported components
* web container
  * Tomcat7
  * Tomcat8
* database
  * mysql
  * oracle
  * h2
  * easily extend to support sybase, sqlserver, jtds, db2, informix
* rpc framework
  * dubbo (tested 2.5.3)
  * dubbox (tested 2.8.4-dubbo protocol, 2.8.4-rest protocol)
  * httpClient 4.x
wu-sheng's avatar
wu-sheng 已提交
35
  * motan (tested 0.1.2)
wu-sheng's avatar
wu-sheng 已提交
36 37
* cache
  * jedix 2.x
38 39
* java local method
	* config package name or class name (Recommend to use in dev or test enviroment. Will cost too many in product enviroment.)
wu-sheng's avatar
wu-sheng 已提交
40

wu-sheng's avatar
wu-sheng 已提交
41

wu-sheng's avatar
wu-sheng 已提交
42
# Contributors
43 44
* 吴晟 [wusheng](https://github.com/wu-sheng) &nbsp;&nbsp;wu.sheng@foxmail.com
* 张鑫 [zhangxin](https://github.com/ascrutae) &nbsp;&nbsp;
wu-sheng's avatar
wu-sheng 已提交
45

wu-sheng's avatar
wu-sheng 已提交
46 47 48 49 50 51 52 53

___

<a href="https://github.com/wu-sheng/sky-walking">
<img src="http://wu-sheng.github.io/sky-walking/sample-code/award/oneapm-award.png" alt="OneAPM Open Source Achievement Award" height="110px" align="left" />
</a>

In October 2016, Sky Walking won `OneAPM Open Source Achievement Award`. The award appreciates sky walking for its "*contribution to popularization of APM technology*". <br/>
wu-sheng's avatar
wu-sheng 已提交
54
[OneAPM](http://www.oneapm.com/) will provide financial support for the project in 2016-2017.<br/><br/> 
wu-sheng's avatar
wu-sheng 已提交
55 56 57
Thanks all users of sky walking project.
___

wu-sheng's avatar
wu-sheng 已提交
58
# Discussion
wu-sheng's avatar
wu-sheng 已提交
59
<img src="http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/chatapp/toutiao.JPG" alt="Sky Walking TouTiao" height="280px" align="left" />
wu-sheng's avatar
wu-sheng 已提交
60
* Mail to:wu.sheng@foxmail.com
wu-sheng's avatar
wu-sheng 已提交
61 62 63
* 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
wu-sheng's avatar
wu-sheng 已提交
64 65 66 67 68 69 70
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
wu-sheng's avatar
wu-sheng 已提交
71
<br/>
wu-sheng's avatar
wu-sheng 已提交
72

wu-sheng's avatar
wu-sheng 已提交
73
# 整体架构图
wu-sheng's avatar
wu-sheng 已提交
74
![2.0 架构图](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/2.0-2016/SkyWalkingArch.jpg)
wu-sheng's avatar
wu-sheng 已提交
75

76
# 典型页面展现 / Typical UI show
77
* 支持浏览器:Firefox/Chrome
wu-sheng's avatar
wu-sheng 已提交
78

wu-sheng's avatar
wu-sheng 已提交
79 80
## 实时调用链路
* 实时链路追踪展现
wu-sheng's avatar
wu-sheng 已提交
81
![追踪连路图1](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/callChain.png)
wu-sheng's avatar
wu-sheng 已提交
82
* 实时链路追踪详细信息查看
wu-sheng's avatar
wu-sheng 已提交
83
![追踪连路图2](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/callChainDetail.png)
wu-sheng's avatar
wu-sheng 已提交
84
* 实时链路追踪日志查看
wu-sheng's avatar
wu-sheng 已提交
85
![追踪连路图3](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/callChainLog.png)
wu-sheng's avatar
wu-sheng 已提交
86
* 实时链路异常告警邮件
wu-sheng's avatar
wu-sheng 已提交
87
![告警邮件](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/alarmMail.png)
wu-sheng's avatar
wu-sheng 已提交
88 89 90 91
* 添加应用
![添加应用](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/addApp.png)
* 应用列表展现
![应用列表展现](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/appList.png)
wu-sheng's avatar
wu-sheng 已提交
92 93

## 分析汇总
wu-sheng's avatar
wu-sheng 已提交
94
* 分析结果查询,根据viewpoint模糊匹配查询。查询方式为viewpoint: + 关键字
wu-sheng's avatar
wu-sheng 已提交
95
![应用列表展现](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/searchAnalysisResult.png)
wu-sheng's avatar
wu-sheng 已提交
96
* 分析结果展现,通过分析结果查询页面点击进入
wu-sheng's avatar
wu-sheng 已提交
97 98 99
![应用列表展现](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/analysisResult.png)
* 分析典型调用链展现
![应用列表展现](http://wu-sheng.github.io/sky-walking/sample-code/screenshoot/1.0b/typicalAnalysisResult.png)
wu-sheng's avatar
wu-sheng 已提交
100

101
# v2.0-2016 Quick Start
102

wu-sheng's avatar
wu-sheng 已提交
103 104
## Required of third party softwares
- JDK 1.8
105 106 107 108
- zookeeper 3.4.6
- mysql
- redis-3.0.5

wu-sheng's avatar
wu-sheng 已提交
109 110
## instrument javaagent jdk version
- support 1.6+ , instruments applications can run in jdk6
111

wu-sheng's avatar
wu-sheng 已提交
112
## 编译与部署 / Build and deploy
wu-sheng's avatar
wu-sheng 已提交
113 114
- 服务端发布版本[下载](https://github.com/wu-sheng/sky-walking/releases)  (.tar.gz)
- Download Server release version. [Download](https://github.com/wu-sheng/sky-walking/releases)  (.tar.gz)
115 116 117 118
- [配置应用服务器](CONFIG_DOC.md)
- [config servers](CONFIG_DOC.md)
- 如果您想自己编译最新版本,可参考《[代码编译说明](BUILD_DOC.md)
- [Code compilation instructions](BUILD_DOC.md)
wu-sheng's avatar
wu-sheng 已提交
119

wu-sheng's avatar
wu-sheng 已提交
120

wu-sheng's avatar
wu-sheng 已提交
121
## Download offical agent
wu-sheng's avatar
wu-sheng 已提交
122
[ ![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)
wu-sheng's avatar
wu-sheng 已提交
123

wu-sheng's avatar
wu-sheng 已提交
124 125
- 通过github-release[下载](https://github.com/wu-sheng/sky-walking/releases)
- 通过[skywalking bintray官网](https://bintray.com/wu-sheng/skywalking/)托管,可使用公网仓库[https://jcenter.bintray.com/](https://jcenter.bintray.com/)下载。
wu-sheng's avatar
wu-sheng 已提交
126
- use public repository  [https://jcenter.bintray.com/](https://jcenter.bintray.com/) to download sdk
wu-sheng's avatar
wu-sheng 已提交
127

128

129
## 下载并设置授权文件 / Download auth file
wu-sheng's avatar
wu-sheng 已提交
130
- 注册并登陆过skywalking-webui,创建应用。(一个用户代表一个逻辑集群,一个应用代表一个服务集群。如前后端应用应该设置两个应用,但归属一个用户)
131
- Sign up and login in skywalking-webui. Create application as needed.
wu-sheng's avatar
wu-sheng 已提交
132 133
- 下载授权文件,放在在agent jar所在目录中
- download auth file(*.auth), and copy the auth file to directory of the agent jar
wu-sheng's avatar
wu-sheng 已提交
134

135
## 在运行时环境中设置环境变量 / set environment variables 
wu-sheng's avatar
wu-sheng 已提交
136
```
wu-sheng's avatar
wu-sheng 已提交
137
export SKYWALKING_RUN=true
wu-sheng's avatar
wu-sheng 已提交
138
```
wu-sheng's avatar
wu-sheng 已提交
139 140 141
- 设置完成后,SkyWalking将随应用启动运行
- After set env, SkyWalking will be working, when application startup.

wu-sheng's avatar
wu-sheng 已提交
142 143 144 145 146 147 148 149

## 使用-javaagent 并启动应用程序 / start application with -javaagent
- 为应用程序添加启动参数
```shell
java -jar ...  -javaagent:/..ospath../skywalking-agent-x.x-Final.jar
```
- Tomcat可以使用修改启动文件,配置-javaagent参数

wu-sheng's avatar
wu-sheng 已提交
150
# 在应用程序中显示traceid / How to find tid
wu-sheng's avatar
wu-sheng 已提交
151
- 通过web应用的http调用入口,通过返回的header信息,找到此次调用的traceid。前提:此web应用的url,已经使用skywalking进行监控。
wu-sheng's avatar
wu-sheng 已提交
152

wu-sheng's avatar
wu-sheng 已提交
153 154 155
# Development Documents
- [Development Guide of Plugin](https://github.com/wu-sheng/sky-walking/wiki/Development-Guide-of-Plugin)

wu-sheng's avatar
wu-sheng 已提交
156 157
# QA
- [SkyWalking SDK是否已经工作? Is SkyWalking SDK Running?](QA/IS_RUNNING.md)
wu-sheng's avatar
wu-sheng 已提交
158
- [tid在web-ui上无法查询. tid can't be search on web-ui](QA/TID_CANNOT_BE_SEARCH.md)
159
- [SkyWalking Server的运行情况. The status of SkyWalking Server](QA/SERVER_RUNNING_STAUTS.md)
wu-sheng's avatar
wu-sheng 已提交
160
- [SkyWalking Analysis部署运行常见问题. The FAQ of SkyWalking Analysis deployment](QA/deploy-sw_analysis-problem.md)
wu-sheng's avatar
wu-sheng 已提交
161

wu-sheng's avatar
wu-sheng 已提交
162
# 源代码说明
163
* [网络传输协议、缓存文件协议说明. the protocols of transform between agent and collector, collector buffer file](doc/protocol.md)
164

165
# Recent RoadMap
wu-sheng's avatar
wu-sheng 已提交
166 167 168
* [In the schedule] v2.1-2017
	* release a version following OpenTracing.io
	* provide bridge mode lib to integrate data of system and tracer
wu-sheng's avatar
wu-sheng 已提交
169
	* provide English doc as default. Also provide Chinese version on Gitbook or Wiki
wu-sheng's avatar
wu-sheng 已提交
170 171
	* support log framework(log4j, log4j2, logback) to output traceid in system log.
	
172 173 174 175 176 177
* [Dev] v2.0-2016
	* 移除对于Hadoop,HBase的依赖,降低部署和运维难度
	* 使用内嵌式数据库,和分布式集群
	* 移除副本发送机制
	* 支持数据文件的时间分片,支持集群TB级别日志文件存储
	* 支持统计和高效的准实时统计汇总
wu-sheng's avatar
wu-sheng 已提交
178 179
	* 更多插件的支持
		* motan rpc framework (provided)
180 181
	
* [Release] v1.0-Final
wu-sheng's avatar
wu-sheng 已提交
182 183 184
	* 客户端与服务端间使用扩展后的网络协议,前置的测试版本无法兼容,以提高服务端的稳定性和健壮性。(在内部使用过程中,发生因为安全扫描,导致服务端宕机)
	* 引入javaagent模式,<b>无需修改任何代码</b>,完成监控。
	* 所有插件将基于字节码技术实现,原有的配置文件模式将被移除。
185 186 187 188 189 190 191 192 193 194
	
* [Release] v1.0 beta
	* 修复大量前置版本的BUG
	* 提供基于MR的分析能力,能够对调用链进行分析汇总,并形成调用链统计视图

* [Release] v1.0 alpha2
	* 基于v1.0-alpha1的较稳定版本,在内部环境进行数月运行,修复大量影响服务端运行稳定性的问题。
	* v1.0-beta,将提供定时分析任务,部分分析页面展现功能。
	* 预计:后续版本将在插件模式上有较大改变,计划针对java api的拦截和第三方拦截提供更小侵入性的方法。配置和拦截模式会发生相应变化。具体模式,参考v1.0-beta发布时的说明。

wu-sheng's avatar
wu-sheng 已提交
195
 [More...](https://github.com/wu-sheng/sky-walking/releases)