Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
killuaz丶x
SkyWalking
提交
733235b9
S
SkyWalking
项目概览
killuaz丶x
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
733235b9
编写于
2月 26, 2016
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.将文档从
http://wu-sheng.github.io/sky-walking/sample-code/codeView.html迁回github。
上级
53031943
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
196 addition
and
42 deletion
+196
-42
README.md
README.md
+4
-40
skywalking-sdk-plugin/README.md
skywalking-sdk-plugin/README.md
+192
-2
未找到文件。
README.md
浏览文件 @
733235b9
...
...
@@ -146,8 +146,8 @@ INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val
## 使用maven发布各插件工程
发布skywalking-sdk-plugin下的各子工程(dubbo-plugin,spring-plugin,web-plugin,jdbc-plugin,httpclient-4.2.x-plugin,httpclient-4.3.x-plugin)
##
根据所需的监控点,引入maven依赖
暂不存在公网仓库,需要本地编译并发布
##
引入核心SDK
无论试用哪种插件,都必须引入
```
xml
<!-- API日志输出,客户端可指定所需的log4j2版本 -->
<!-- 2.4.1为开发过程所选用版本 -->
...
...
@@ -162,47 +162,11 @@ INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val
<artifactId>
skywalking-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- Spring插件,监控所有Spring托管对象的调用-->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-spring-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- dubbo插件,监控dubbo/dubbox调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-dubbo-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- jdbc插件,监控所有的jdbc调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-jdbc-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- web,监控web调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-web-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- httpClient插件,监控httpClient 4.2的调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-httpClient-4.2.x-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<!-- httpClient插件,监控httpClient 4.3的调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-httpClient-4.3.x-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
插件不会引用所需的第三方组件(如Spring、dubbo、dubbox等),请自行引入所需的版本。
## 根据所需插件,配置应用程序
参考
[
SDK用户指南
](
https://github.com/wu-sheng/sky-walking/tree/master/skywalking-sdk-plugin
)
-
参考
[
SDK用户指南
](
https://github.com/wu-sheng/sky-walking/tree/master/skywalking-sdk-plugin
)
-
注意:插件不会引用所需的第三方组件(如Spring、dubbo、dubbox等),请自行引入所需的版本。
## 下载并设置授权文件
...
...
skywalking-sdk-plugin/README.md
浏览文件 @
733235b9
# 如何追踪注册在Spring中类实例的方法调用?
-
引入所需插件
```
xml
<!-- Spring插件,监控所有Spring托管对象的调用-->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-spring-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
Spring配置文件头部,配置所需的命名空间
```
xml
xmlns:skywalking="http://cloud.asiainfo.com/schema/skywalking"
...
...
@@ -27,6 +36,15 @@ xsi:schemaLocation="http://cloud.asiainfo.com/schema/skywalking
-
部分类由于被Spring代理后,类名发生变化,可能造成无法追踪
# 如何追踪dubbo调用?
-
引入所需插件
```
xml
<!-- dubbo插件,监控dubbo/dubbox调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-dubbo-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
这里的dubbo,专指阿里发布的,已停止维护的标准dubbo版本(
[
dubbo.io
](
http://dubbo.io/
)
)。扩展版本dubbox请参考相关章节。
-
在客户端和服务端配置全局filter:swEnhanceFilter。
```
xml
...
...
@@ -38,6 +56,15 @@ xsi:schemaLocation="http://cloud.asiainfo.com/schema/skywalking
```
# 如何追踪dubbox 2.8.4 调用?
-
引入所需插件
```
xml
<!-- dubbo插件,监控dubbo/dubbox调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-dubbo-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
dubbox 2.8.4 较为符合dubbo的服务规范,这里指dubbox支持RpcContext中的attachment。追踪方式和dubbo相同。
-
在客户端和服务端配置全局filter:swEnhanceFilter。
```
xml
...
...
@@ -48,7 +75,170 @@ xsi:schemaLocation="http://cloud.asiainfo.com/schema/skywalking
<dubbo:provider
filter=
"swEnhanceFilter"
/>
```
# 如何追踪dubbox 2.8.3 以及之前的调用?
# 如何追踪dubbox 2.8.3 以及之前版本的调用?
-
引入所需插件
```
xml
<!-- dubbo插件,监控dubbo/dubbox调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-dubbo-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
由于引入dubbox,主要目的是使用rest+json协议,所以以下方案都是在此种调用模式下的解决方案。其他协议未测试,请谅解,望大家提供测试结果与反馈。
-
dubbox 2.8.3 以及之前版本不能正确的支持RpcContext中的attachment,存在BUG(2.8.4已修复)。采用扩展参数对象的方法支持追踪的传递性。
-
注意:依然推荐升级到dubbox 2.8.4,此时能更好的进行追踪,并对程序侵入性更小。
\ No newline at end of file
-
注意:依然推荐升级到dubbox 2.8.4,此时能更好的进行追踪,并对程序侵入性更小。
-
在客户端和服务端配置全局filter:swEnhanceFilter。
```
xml
//客户端Spring配置文件
<dubbo:consumer
filter=
"swEnhanceFilter"
/>
//服务端Spring配置文件
<dubbo:provider
filter=
"swEnhanceFilter"
/>
```
-
在客户端和服务端启动时,开启dubbox 2.8.3之前版本的修复功能。在服务启动前调用如下代码,或将com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.BugFixAcitve注册到Spring中。
```
java
new
com
.
ai
.
cloud
.
skywalking
.
plugin
.
dubbox
.
bugfix
.
below283
.
BugFixAcitve
();
```
-
dubbox调用参数包含javabean参数,并继承com.ai.cloud.skywalking.plugin.dubbox.bugfix.below283.SWBaseBean。只包含java基础类型(如:String、Integer等)的调用,无法支持追踪传递
-
客户端如果直接使用非dubbox客户端发起http restful调用,需要在发送的参数中设置contextData。
# 如何追踪MySQL访问?
-
引入所需插件
```
xml
<!-- jdbc插件,监控所有的jdbc调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-jdbc-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
设置特定的JDBC Driver
```
properties
Driver
=
"com.ai.cloud.skywalking.plugin.jdbc.mysql.MySQLTracingDriver"
```
-
设置特定的JDBC URL
```
properties
jdbc.url
=
tracing:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
```
# 如何追踪MySQL之外的其他JDBC?
-
引入所需插件
```
xml
<!-- jdbc插件,监控所有的jdbc调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-jdbc-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
轻松实现自定义的JDBC Driver扩展
```
java
import
java.sql.Driver
;
import
java.sql.DriverManager
;
import
java.sql.SQLException
;
import
com.ai.cloud.skywalking.plugin.jdbc.TracingDriver
;
public
class
XXXDBTracingDriver
extends
TracingDriver
{
static
{
try
{
DriverManager
.
registerDriver
(
new
XXXDBTracingDriver
());
}
catch
(
SQLException
e
)
{
throw
new
RuntimeException
(
"register "
+
MySQLTracingDriver
.
class
.
getName
()
+
" driver failure."
);
}
}
/**
* 继承自TracingDriver,返回真实的Driver
*/
@Override
protected
Driver
registerTracingDriver
()
{
try
{
//示例:return new com.mysql.jdbc.Driver();
return
new
Driver
();
}
catch
(
SQLException
e
)
{
throw
new
RuntimeException
(
"create Driver failure."
);
}
}
}
```
-
设置新实现的JDBC Driver
```
properties
Driver
=
"XXXDBTracingDriver"
```
-
设置特定的JDBC URL
```
properties
jdbc.url
=
tracing:jdbc:xxxdb://localhost:3306/test
```
# 如何追踪web应用服务器访问?
-
引入所需插件
```
xml
<!-- web,监控web调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-web-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
服务端使用Filter追踪web请求
```
xml
<filter>
<filter-namer>
tracingFilter
</filter-namer>
<filter-classr>
com.ai.cloud.skywalking.plugin.web.SkyWalkingFilter
</filter-class>
<init-param>
<param-name>
tracing-name
</param-name>
<!--分布式埋点信息,默认放在request的header中,key=SkyWalking-TRACING-NAME,可根据需要修改-->
<param-value>
SkyWalking-TRACING-NAME
</param-value>
</init-param>
</filterr>
<filter-mappingr>
<filter-name>
tracingFilter
</filter-namer>
<!--追踪路径应为MVC的请求路径,不建议包括js/css/图片等资源路径-->
<url-patternr>
/request-uri
</url-patternr>
</filter-mappingr>
```
# 如何追踪HttpClient发起HTTP调用?
## httpclient 4.2.x
-
引入所需插件
```
xml
<!-- httpClient插件,监控httpClient 4.2的调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-httpClient-4.2.x-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
使用SWTracingHttpClient封装所需的httpClient,此httpClient所有调用都会被监控
```
java
HttpClient
httpclient
=
new
SWTracingHttpClient
(
new
DefaultHttpClient
());
```
-
上下文将被存储在http request head,中,默认名称和SkyWalkingFilter保持一致。
-
如果服务端使用dubbox 2.8.4 的提供的http-rest,请使用方法重载
```
java
HttpClient
httpclient
=
new
SWTracingHttpClient
(
new
DefaultHttpClient
(),
"Dubbo-Attachments"
);
```
## httpclient 4.3.x
-
引入所需插件
```
xml
<!-- httpClient插件,监控httpClient 4.3的调用 -->
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-httpClient-4.3.x-plugin
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
```
-
使用SWTracingCloseableHttpClient封装所需的httpClient,此httpClient所有调用都会被监控
```
java
CloseableHttpClient
httpclient
=
new
SWTracingCloseableHttpClient
(
closeableHttpClient
);
```
-
上下文将被存储在http request head,中,默认名称和SkyWalkingFilter保持一致。
-
如果服务端使用dubbox 2.8.4 的提供的http-rest,请使用方法重载
```
java
CloseableHttpClient
httpclient
=
new
SWTracingCloseableHttpClient
(
closeableHttpClient
,
"Dubbo-Attachments"
);
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录