From a321dda2f74b11858d3df6787f1c8ed4339251be Mon Sep 17 00:00:00 2001 From: wusheng Date: Thu, 24 Mar 2016 14:34:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E4=BD=BF=E7=94=A8=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skywalking-sdk-plugin/README.md | 256 +----------------- skywalking-sdk-plugin/dubbo-plugin/README.md | 67 +++++ .../README.md | 10 + .../httpClient-4.x-plugin/README.md | 9 + .../httpclient-4.2.x-plugin/README.md | 21 ++ .../httpclient-4.3.x-plugin/README.md | 19 ++ skywalking-sdk-plugin/jdbc-plugin/README.md | 69 +++++ .../jedis-2.x-plugin/README.md | 9 + skywalking-sdk-plugin/mysql-plugin/README.md | 10 + skywalking-sdk-plugin/spring-plugin/README.md | 37 +++ skywalking-sdk-plugin/web-plugin/README.md | 27 ++ 11 files changed, 290 insertions(+), 244 deletions(-) create mode 100644 skywalking-sdk-plugin/dubbo-plugin/README.md create mode 100644 skywalking-sdk-plugin/httpClient-4.x-plugin-dubbox-rest-attachment/README.md create mode 100644 skywalking-sdk-plugin/httpClient-4.x-plugin/README.md create mode 100644 skywalking-sdk-plugin/httpclient-4.2.x-plugin/README.md create mode 100644 skywalking-sdk-plugin/httpclient-4.3.x-plugin/README.md create mode 100644 skywalking-sdk-plugin/jdbc-plugin/README.md create mode 100644 skywalking-sdk-plugin/jedis-2.x-plugin/README.md create mode 100644 skywalking-sdk-plugin/mysql-plugin/README.md create mode 100644 skywalking-sdk-plugin/spring-plugin/README.md create mode 100644 skywalking-sdk-plugin/web-plugin/README.md diff --git a/skywalking-sdk-plugin/README.md b/skywalking-sdk-plugin/README.md index 6e9cbd831..dce0efd54 100644 --- a/skywalking-sdk-plugin/README.md +++ b/skywalking-sdk-plugin/README.md @@ -1,244 +1,12 @@ -# 如何追踪注册在Spring中类实例的方法调用? -- 引入所需插件 -```xml - - - com.ai.cloud - skywalking-spring-plugin - 1.0-SNAPSHOT - -``` -- Spring配置文件头部,配置所需的命名空间 -```xml -xmlns:skywalking="http://cloud.asiainfo.com/schema/skywalking" -xsi:schemaLocation="http://cloud.asiainfo.com/schema/skywalking - http://cloud.asiainfo.com/schema/skywalking/skywalking.xsd" -``` -- 典型Spring配置文件如下 -```xml - -``` -- Spring配置文件中,设置需要追踪包名、类名或方法名。可配置多个 -```xml - - -``` -- 对于方法的追踪,仅限于实例级的public方法。其他方法由于Java运行时原因,无法追踪。 -- 部分类由于被Spring代理后,类名发生变化,可能造成无法追踪 - -# 如何追踪dubbo调用? -- 引入所需插件 -```xml - - - com.ai.cloud - skywalking-dubbo-plugin - 1.0-SNAPSHOT - -``` -- 这里的dubbo,专指阿里发布的,已停止维护的标准dubbo版本([dubbo.io](http://dubbo.io/))。扩展版本dubbox请参考相关章节。 -- 在客户端和服务端配置全局filter:swEnhanceFilter。 -```xml -//客户端Spring配置文件 - - -//服务端Spring配置文件 - -``` - -# 如何追踪dubbox 2.8.4 调用? -- 引入所需插件 -```xml - - - com.ai.cloud - skywalking-dubbo-plugin - 1.0-SNAPSHOT - -``` -- dubbox 2.8.4 较为符合dubbo的服务规范,这里指dubbox支持RpcContext中的attachment。追踪方式和dubbo相同。 -- 在客户端和服务端配置全局filter:swEnhanceFilter。 -```xml -//客户端Spring配置文件 - - -//服务端Spring配置文件 - -``` - -# 如何追踪dubbox 2.8.3 以及之前版本的调用? -- 引入所需插件 -```xml - - - com.ai.cloud - skywalking-dubbo-plugin - 1.0-SNAPSHOT - -``` -- 由于引入dubbox,主要目的是使用rest+json协议,所以以下方案都是在此种调用模式下的解决方案。其他协议未测试,请谅解,望大家提供测试结果与反馈。 -- dubbox 2.8.3 以及之前版本不能正确的支持RpcContext中的attachment,存在BUG(2.8.4已修复)。采用扩展参数对象的方法支持追踪的传递性。 -- 注意:依然推荐升级到dubbox 2.8.4,此时能更好的进行追踪,并对程序侵入性更小。 -- 在客户端和服务端配置全局filter:swEnhanceFilter。 -```xml -//客户端Spring配置文件 - - -//服务端Spring配置文件 - -``` -- 在客户端和服务端启动时,开启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 - - - com.ai.cloud - skywalking-jdbc-plugin - 1.0-SNAPSHOT - -``` -- 设置特定的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 - - - com.ai.cloud - skywalking-jdbc-plugin - 1.0-SNAPSHOT - -``` -- 轻松实现自定义的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 - - - com.ai.cloud - skywalking-web-plugin - 1.0-SNAPSHOT - -``` -- 服务端使用Filter追踪web请求 -```xml - - tracingFilter - com.ai.cloud.skywalking.plugin.web.SkyWalkingFilter - - tracing-name - - SkyWalking-TRACING-NAME - - - - tracingFilter - - /request-uri - -``` - -# 如何追踪HttpClient发起HTTP调用? - -## httpclient 4.2.x -- 引入所需插件 -```xml - - - com.ai.cloud - skywalking-httpClient-4.2.x-plugin - 1.0-SNAPSHOT - -``` -- 使用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 - - - com.ai.cloud - skywalking-httpClient-4.3.x-plugin - 1.0-SNAPSHOT - -``` -- 使用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"); -``` +|插件名称|功能|配置说明| +| ----------- |---------| ----------| +|web-plugin|追踪指定的url访问| [查看](web-plugin) | +|dubbo-plugin| 追踪dubbo和dubbox的调用 | [查看](dubbo-plugin)| +|spring-plugin| 追踪spring托管的类实例 | [查看](spring-plugin) | +|jdbc-plugin| 追踪通过JDBC规范访问数据库 | [查看](jdbc-plugin) | +|mysql-plugin| 追踪通过mysql官方5.1驱动访问数据库 | [查看](mysql-plugin)| +|httpClient-4.x-plugin| 追踪通过httpClient发起的http访问 | [查看](httpClient-4.x-plugin) | +|httpClient-4.x-plugin-dubbox-rest-attachment| 追踪通过httpClient调用ubbox发布的rest服务 | [查看](httpClient-4.x-plugin-dubbox-rest-attachment) | +|jedis-2.x-plugin| 追踪jedis 2.8发起的redis访问 | [查看](jedis-2.x-plugin) | +|~~httpclient-4.2.x-plugin~~| 追踪httpclient发起的访问 | [查看](httpclient-4.2.x-plugin) | +|~~httpclient-4.3.x-plugin~~| 追踪httpclient发起的访问 | [查看](httpclient-4.3.x-plugin) | \ No newline at end of file diff --git a/skywalking-sdk-plugin/dubbo-plugin/README.md b/skywalking-sdk-plugin/dubbo-plugin/README.md new file mode 100644 index 000000000..85de2d243 --- /dev/null +++ b/skywalking-sdk-plugin/dubbo-plugin/README.md @@ -0,0 +1,67 @@ +# 如何追踪dubbo调用? +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-dubbo-plugin + 1.0-SNAPSHOT + +``` +- 这里的dubbo,专指阿里发布的,已停止维护的标准dubbo版本([dubbo.io](http://dubbo.io/))。扩展版本dubbox请参考相关章节。 +- 在客户端和服务端配置全局filter:swEnhanceFilter。 +```xml +//客户端Spring配置文件 + + +//服务端Spring配置文件 + +``` + +# 如何追踪dubbox 2.8.4 调用? +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-dubbo-plugin + 1.0-SNAPSHOT + +``` +- dubbox 2.8.4 较为符合dubbo的服务规范,这里指dubbox支持RpcContext中的attachment。追踪方式和dubbo相同。 +- 在客户端和服务端配置全局filter:swEnhanceFilter。 +```xml +//客户端Spring配置文件 + + +//服务端Spring配置文件 + +``` + +# 如何追踪dubbox 2.8.3 以及之前版本的调用? +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-dubbo-plugin + 1.0-SNAPSHOT + +``` +- 由于引入dubbox,主要目的是使用rest+json协议,所以以下方案都是在此种调用模式下的解决方案。其他协议未测试,请谅解,望大家提供测试结果与反馈。 +- dubbox 2.8.3 以及之前版本不能正确的支持RpcContext中的attachment,存在BUG(2.8.4已修复)。采用扩展参数对象的方法支持追踪的传递性。 +- 注意:依然推荐升级到dubbox 2.8.4,此时能更好的进行追踪,并对程序侵入性更小。 +- 在客户端和服务端配置全局filter:swEnhanceFilter。 +```xml +//客户端Spring配置文件 + + +//服务端Spring配置文件 + +``` +- 在客户端和服务端启动时,开启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。 diff --git a/skywalking-sdk-plugin/httpClient-4.x-plugin-dubbox-rest-attachment/README.md b/skywalking-sdk-plugin/httpClient-4.x-plugin-dubbox-rest-attachment/README.md new file mode 100644 index 000000000..745f33a56 --- /dev/null +++ b/skywalking-sdk-plugin/httpClient-4.x-plugin-dubbox-rest-attachment/README.md @@ -0,0 +1,10 @@ +# 追踪通过httpClient调用ubbox发布的rest服务? +- 使用httpClient-4.x-plugin插件,[查看](../mysql-plugin) +- 引入所需插件 +```xml + + com.ai.cloud + skywalking-httpClient-4.x-plugin-dubbox-rest-attachment + 1.0-SNAPSHOT + +``` diff --git a/skywalking-sdk-plugin/httpClient-4.x-plugin/README.md b/skywalking-sdk-plugin/httpClient-4.x-plugin/README.md new file mode 100644 index 000000000..a6b1406c8 --- /dev/null +++ b/skywalking-sdk-plugin/httpClient-4.x-plugin/README.md @@ -0,0 +1,9 @@ +# 如何追踪通过httpClient发起的http访问? +- 引入所需插件 +```xml + + com.ai.cloud + skywalking-httpClient-4.x-plugin + 1.0-SNAPSHOT + +``` diff --git a/skywalking-sdk-plugin/httpclient-4.2.x-plugin/README.md b/skywalking-sdk-plugin/httpclient-4.2.x-plugin/README.md new file mode 100644 index 000000000..28a8374f6 --- /dev/null +++ b/skywalking-sdk-plugin/httpclient-4.2.x-plugin/README.md @@ -0,0 +1,21 @@ +# 如何追踪HttpClient发起HTTP调用? + +## httpclient 4.2.x +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-httpClient-4.2.x-plugin + 1.0-SNAPSHOT + +``` +- 使用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"); +``` \ No newline at end of file diff --git a/skywalking-sdk-plugin/httpclient-4.3.x-plugin/README.md b/skywalking-sdk-plugin/httpclient-4.3.x-plugin/README.md new file mode 100644 index 000000000..d73e37d47 --- /dev/null +++ b/skywalking-sdk-plugin/httpclient-4.3.x-plugin/README.md @@ -0,0 +1,19 @@ +## httpclient 4.3.x +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-httpClient-4.3.x-plugin + 1.0-SNAPSHOT + +``` +- 使用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"); +``` diff --git a/skywalking-sdk-plugin/jdbc-plugin/README.md b/skywalking-sdk-plugin/jdbc-plugin/README.md new file mode 100644 index 000000000..23a4a094f --- /dev/null +++ b/skywalking-sdk-plugin/jdbc-plugin/README.md @@ -0,0 +1,69 @@ +# 如何追踪MySQL访问? +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-jdbc-plugin + 1.0-SNAPSHOT + +``` +- 设置特定的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 + + + com.ai.cloud + skywalking-jdbc-plugin + 1.0-SNAPSHOT + +``` +- 轻松实现自定义的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 +``` \ No newline at end of file diff --git a/skywalking-sdk-plugin/jedis-2.x-plugin/README.md b/skywalking-sdk-plugin/jedis-2.x-plugin/README.md new file mode 100644 index 000000000..e59499190 --- /dev/null +++ b/skywalking-sdk-plugin/jedis-2.x-plugin/README.md @@ -0,0 +1,9 @@ +# 如何追踪jedis 2.8发起的redis访问? +- 引入所需插件 +```xml + + com.ai.cloud + skywalking-jedis-2.x-plugin + 1.0-SNAPSHOT + +``` diff --git a/skywalking-sdk-plugin/mysql-plugin/README.md b/skywalking-sdk-plugin/mysql-plugin/README.md new file mode 100644 index 000000000..cd978deea --- /dev/null +++ b/skywalking-sdk-plugin/mysql-plugin/README.md @@ -0,0 +1,10 @@ +# 如何追踪MySQL访问? +- 引入所需插件 +```xml + + com.ai.cloud + skywalking-mysql-plugin + 1.0-SNAPSHOT + +``` + diff --git a/skywalking-sdk-plugin/spring-plugin/README.md b/skywalking-sdk-plugin/spring-plugin/README.md new file mode 100644 index 000000000..749bf436a --- /dev/null +++ b/skywalking-sdk-plugin/spring-plugin/README.md @@ -0,0 +1,37 @@ +# 如何追踪注册在Spring中类实例的方法调用? +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-spring-plugin + 1.0-SNAPSHOT + +``` +- Spring配置文件头部,配置所需的命名空间 +```xml +xmlns:skywalking="http://cloud.asiainfo.com/schema/skywalking" +xsi:schemaLocation="http://cloud.asiainfo.com/schema/skywalking + http://cloud.asiainfo.com/schema/skywalking/skywalking.xsd" +``` +- 典型Spring配置文件如下 +```xml + +``` +- Spring配置文件中,设置需要追踪包名、类名或方法名。可配置多个 +```xml + + +``` +- 对于方法的追踪,仅限于实例级的public方法。其他方法由于Java运行时原因,无法追踪。 +- 部分类由于被Spring代理后,类名发生变化,可能造成无法追踪 + diff --git a/skywalking-sdk-plugin/web-plugin/README.md b/skywalking-sdk-plugin/web-plugin/README.md new file mode 100644 index 000000000..76a47f3e9 --- /dev/null +++ b/skywalking-sdk-plugin/web-plugin/README.md @@ -0,0 +1,27 @@ +# 如何追踪web应用服务器访问? +- 引入所需插件 +```xml + + + com.ai.cloud + skywalking-web-plugin + 1.0-SNAPSHOT + +``` +- 服务端使用Filter追踪web请求 +```xml + + tracingFilter + com.ai.cloud.skywalking.plugin.web.SkyWalkingFilter + + tracing-name + + SkyWalking-TRACING-NAME + + + + tracingFilter + + /request-uri + +```