Go to file
wusheng f4df86de71 修改包名错误的问题,以及Pom依赖错误造成agent依赖错误 2016-06-12 11:39:52 +08:00
QA 修改大量文档说明 2016-05-26 14:24:31 +08:00
ci-dependencies 修复dubbo-plugin插件ci中的问题。 2016-03-19 23:11:12 +08:00
samples 移除sender.is_off。采用新的机制关闭数据发送。 2016-06-06 16:59:39 +08:00
skywalking-agent 1.添加redis测试工程 2016-06-05 11:21:56 +08:00
skywalking-alarm 提供1.0最终版本的版本号:1.0-Final。此版本将是1.0的最终版本。 2016-05-28 11:30:46 +08:00
skywalking-analysis 移除无用的工程 2016-06-05 00:05:38 +08:00
skywalking-api 修改日志打印两遍的问题 2016-06-12 11:04:38 +08:00
skywalking-log 修改Pom,避免源码没有发布的问题。 2016-05-29 18:57:34 +08:00
skywalking-protocol 提交ProtocolPackager 2016-06-04 09:13:20 +08:00
skywalking-sdk-plugin 修改包名错误的问题,以及Pom依赖错误造成agent依赖错误 2016-06-12 11:39:52 +08:00
skywalking-server 移除无用的工程 2016-06-05 00:05:38 +08:00
skywalking-webui 修改数据库脚本,移除无用的配置。 2016-06-09 22:36:00 +08:00
test 异常细分,去除排重功能 2016-06-07 16:27:02 +08:00
.gitignore 补充提交 2016-03-19 23:12:39 +08:00
.travis.yml 依然暂时移除testcase 2016-03-22 20:59:42 +08:00
BUILD_DOC.md 原有的编译文档,被分解为编译和配置两个文档。 2016-06-09 22:28:53 +08:00
CONFIG_DOC.md 原有的编译文档,被分解为编译和配置两个文档。 2016-06-09 22:28:53 +08:00
HOW_TO_FIND_TID.md 提交1.0b的完整代码,用于版本发布。 2016-05-28 11:21:18 +08:00
LICENSE Update LICENSE 2016-05-26 17:03:11 +08:00
README.md 原有的编译文档,被分解为编译和配置两个文档。 2016-06-09 22:28:53 +08:00
pom.xml 修改pom部分描述 2016-06-06 11:53:04 +08:00

README.md

Sky Walking

Sky Walking logo

SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对JAVA分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统。

Build Status license

简介 / abstract

  • 核心理论为Google Dapper论文Dapper, a Large-Scale Distributed Systems Tracing Infrastructure,英语有困难的同学可参考国内翻译
  • 本分析系统能通过不修改或少量修改代码的模式对现有的JAVA应用或J2EE应用进行监控和数据收集并针对应用进场进行准实时告警。此外提供大量的调用性能分析功能解决目前的监控系统主要监控进程、端口而非应用实际性能的问题。
  • 支持国内常用的dubbo以及dubbox等常见RPC框架支持应用异常的邮件告警
  • skywalking-sdk层面提供的埋点API同步阻塞访问时间小于100μs
  • 通过byte-buddy部分插件将通过动态字节码机制避免代码侵入性完成监控。动态代码模式埋点同步阻塞访问时间应在200-300μs
  • 提供一定的日志数据分析和展现能力,减少或者避免使用团队的二次开发
  • 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, dubbox, 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 (Thanks to raphw), some 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.
  • Provide trace log analysis and presentation capabilities, Reduce or avoid add-on functions development.
plugins using config file using dynamic byte code coding remarks
web-plugin web.xml - - -
dubbo-plugin dubbo/dubbox config file - - -
spring-plugin spring config file - - -
jdbc-plugin jdbc config file - - -
mysql-plugin - YES - -
httpClient-4.x-plugin - YES - -
httpClient-4.x-plugin-dubbox-rest-attachment - YES - required client-4.x-plugin
jedis-2.x-plugin - YES - -
httpclient-4.2.x-plugin - - YES 需要使用新提供的httpClient包装对象
httpclient-4.3.x-plugin - - YES 需要使用新提供的httpClient包装对象
  • 删除插件为最新版本不推荐使用的插件

主要贡献者 / Contributors

交流

  • Mail towu.sheng@foxmail.com
  • QQ群392443393请注明“Sky Walking交流”
  • 谁在使用Sky Walking?点击进入。同时请各位使用者反馈下,都在哪些项目中使用。
  • if you are using SkyWalkingReport to us please.

整体架构图

整体架构图

典型页面展现 / Typical UI show

  • 支持浏览器Firefox/Chrome

实时调用链路

  • 实时链路追踪展现 追踪连路图1
  • 实时链路追踪详细信息查看 追踪连路图2
  • 实时链路追踪日志查看 追踪连路图3
  • 实时链路异常告警邮件 告警邮件
  • 添加应用 添加应用
  • 应用列表展现 应用列表展现

分析汇总

  • 分析结果查询根据viewpoint模糊匹配查询。查询方式为viewpoint: + 关键字 应用列表展现
  • 分析结果展现,通过分析结果查询页面点击进入 应用列表展现
  • 分析典型调用链展现 应用列表展现

Quick Start

  • master分支正在进行1.0-Final迭代。1.0b的完整代码,请参见 1.0-beta-tag
  • Developing of version 1.0-Final on branch Master. The source code of version 1.0-beta-tag

部署第三方软件 / Required of third party softwares

  • JDK 1.7
  • zookeeper 3.4.6
  • apache hbase 1.1.2
  • mysql
  • tomcat 7
  • redis-3.0.5

编译与部署 / Build and deploy

引入核心SDK / Import SDK

Download

<!-- API日志输出客户端可指定所需的log4j2版本 -->
<!-- 2.4.1为开发过程所选用版本 -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.4.1</version>
</dependency>
<!-- 监控api可监控插件不支持的调用 -->
<dependency>
    <groupId>com.ai.cloud</groupId>
    <artifactId>skywalking-api</artifactId>
    <version>{lastest-version}</version>
</dependency>

使用全新的main class

  • using new main class, instead of the original main class.
#原进程启动命令:
#original starup command
java com.company.product.Startup arg0 arg1

#全新的进程启动命令:
#new starup command
java com.ai.cloud.skywalking.plugin.TracingBootstrap com.company.product.Startup arg0 arg1
  • 如果应用为Tomcat需要修改tomcat相关启动文件:catalina.sh。推荐将项目转为tomcat-embeded模式。以下修改仅作为参考。
  • If you want to trace a tomcat application, you need to modify 'catalina.sh'
# add skywalking jar into CLASSPATH
CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib/skywalking-api-{lastest-version}.jar:$CATALINA_HOME/lib/log4j-api.jar:$CATALINA_HOME/lib/log4j-core.jar

# use new main, samples in Tomcat8
exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
  -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
  -sourcepath "$CATALINA_HOME"/../../java \
  -Djava.security.manager \
  -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
  -Dcatalina.base="$CATALINA_BASE" \
  -Dcatalina.home="$CATALINA_HOME" \
  -Djava.io.tmpdir="$CATALINA_TMPDIR" \
  com.ai.cloud.skywalking.plugin.TracingBootstrap org.apache.catalina.startup.Bootstrap "$@" start

根据所需插件,配置应用程序 / Config application

下载并设置授权文件 / Download auth file

  • 注册并登陆过skywalking-webui创建应用。一个用户代表一个逻辑集群一个应用代表一个服务集群。如前后端应用应该设置两个应用但归属一个用户
  • Sign up and login in skywalking-webui. Create application as needed.
  • 下载授权文件并在运行时环境中将授权文件加入到CLASSPATH或LIB中
  • download auth file(*.jar), and add the jar file to the CLASSPATH or lib.

在运行时环境中设置环境变量 / set environment variables

export SKYWALKING_RUN=true
  • 设置完成后SkyWalking将随应用启动运行
  • After set env, SkyWalking will be working, when application startup.

在应用程序中显示traceid / How to find tid

QA

源代码说明