Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
月轩居士
SkyWalking
提交
7bf89427
S
SkyWalking
项目概览
月轩居士
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
4
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,体验更适合开发者的 AI 搜索 >>
提交
7bf89427
编写于
1月 17, 2017
作者:
Z
zhangxin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support open-tracing
上级
c9e90187
变更
55
隐藏空白更改
内联
并排
Showing
55 changed file
with
781 addition
and
180 deletion
+781
-180
skywalking-network/src/main/proto/Spans.proto
skywalking-network/src/main/proto/Spans.proto
+2
-2
skywalking-sniffer/skywalking-agent/pom.xml
skywalking-sniffer/skywalking-agent/pom.xml
+16
-10
skywalking-sniffer/skywalking-api/pom.xml
skywalking-sniffer/skywalking-api/pom.xml
+2
-2
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/BusinessKeyAppender.java
...in/java/com/a/eye/skywalking/api/BusinessKeyAppender.java
+2
-2
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/Tracing.java
...g-api/src/main/java/com/a/eye/skywalking/api/Tracing.java
+33
-3
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/context/CurrentThreadSpanStack.java
.../com/a/eye/skywalking/context/CurrentThreadSpanStack.java
+25
-0
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/invoke/monitor/BaseInvokeMonitor.java
...om/a/eye/skywalking/invoke/monitor/BaseInvokeMonitor.java
+3
-2
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Identification.java
.../main/java/com/a/eye/skywalking/model/Identification.java
+32
-7
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/RefContext.java
.../src/main/java/com/a/eye/skywalking/model/RefContext.java
+25
-0
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java
...ng-api/src/main/java/com/a/eye/skywalking/model/Span.java
+15
-4
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/SpanTagBuilder.java
.../main/java/com/a/eye/skywalking/model/SpanTagBuilder.java
+2
-2
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java
...main/java/com/a/eye/skywalking/util/ContextGenerator.java
+8
-0
skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/a/eye/skywalking/plugin/dubbo/DubboBuriedPointType.java
...m/a/eye/skywalking/plugin/dubbo/DubboBuriedPointType.java
+2
-15
skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/a/eye/skywalking/plugin/dubbo/MonitorFilterInterceptor.java
...eye/skywalking/plugin/dubbo/MonitorFilterInterceptor.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/a/eye/skywalking/plugin/httpClient/v4/HttpClientExecuteInterceptor.java
...ng/plugin/httpClient/v4/HttpClientExecuteInterceptor.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/a/eye/skywalking/plugin/httpClient/v4/WebBuriedPointType.java
...e/skywalking/plugin/httpClient/v4/WebBuriedPointType.java
+2
-14
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/CallableStatementTracing.java
.../eye/skywalking/plugin/jdbc/CallableStatementTracing.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/ConnectionTracing.java
...a/com/a/eye/skywalking/plugin/jdbc/ConnectionTracing.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/PreparedStatementTracing.java
.../eye/skywalking/plugin/jdbc/PreparedStatementTracing.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/StatementTracing.java
...va/com/a/eye/skywalking/plugin/jdbc/StatementTracing.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/define/JDBCBuriedPointType.java
...ye/skywalking/plugin/jdbc/define/JDBCBuriedPointType.java
+2
-14
skywalking-sniffer/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/a/eye/skywalking/plugin/jedis/v2/JedisMethodInterceptor.java
...ye/skywalking/plugin/jedis/v2/JedisMethodInterceptor.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/a/eye/skywalking/plugin/jedis/v2/RedisBuriedPointType.java
.../eye/skywalking/plugin/jedis/v2/RedisBuriedPointType.java
+2
-12
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanBuriedPointType.java
...m/a/eye/skywalking/plugin/motan/MotanBuriedPointType.java
+3
-15
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanClientCallInterceptor.java
...e/skywalking/plugin/motan/MotanClientCallInterceptor.java
+8
-9
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanClientFetchCallURLInterceptor.java
...king/plugin/motan/MotanClientFetchCallURLInterceptor.java
+8
-5
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanServerInterceptor.java
...a/eye/skywalking/plugin/motan/MotanServerInterceptor.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/define/MotanClientDefine.java
...eye/skywalking/plugin/motan/define/MotanClientDefine.java
+14
-14
skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/TomcatPluginInterceptor.java
.../skywalking/plugin/tomcat78x/TomcatPluginInterceptor.java
+1
-1
skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/WebBuriedPointType.java
...a/eye/skywalking/plugin/tomcat78x/WebBuriedPointType.java
+2
-14
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/pom.xml
...ivation/skywalking-toolkit-opentracing-activation/pom.xml
+12
-1
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/SkyWalkingSpanActivation.java
...activation/opentracing/span/SkyWalkingSpanActivation.java
+80
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/interceptor/SpanFinishInterceptor.java
...n/opentracing/span/interceptor/SpanFinishInterceptor.java
+40
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java
...ntracing/span/interceptor/SpanNewInstanceInterceptor.java
+18
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/interceptor/SpanSetOperationNameInterceptor.java
...ing/span/interceptor/SpanSetOperationNameInterceptor.java
+8
-5
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/interceptor/SpanSetTagInterceptor.java
...n/opentracing/span/interceptor/SpanSetTagInterceptor.java
+39
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/OpenTracingLocalBuriedPointType.java
...ntracing/spanbuilder/OpenTracingLocalBuriedPointType.java
+20
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/SkyWalkingSpanBuilderActivation.java
...ntracing/spanbuilder/SkyWalkingSpanBuilderActivation.java
+77
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/interceptor/SpanBuilderNewInstanceInterceptor.java
...uilder/interceptor/SpanBuilderNewInstanceInterceptor.java
+15
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/interceptor/SpanBuilderStartInterceptor.java
.../spanbuilder/interceptor/SpanBuilderStartInterceptor.java
+62
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/interceptor/SpanBuilderWithStartTimeInterceptor.java
...lder/interceptor/SpanBuilderWithStartTimeInterceptor.java
+8
-5
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/interceptor/SpanBuilderWithTagInterceptor.java
...panbuilder/interceptor/SpanBuilderWithTagInterceptor.java
+39
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/SkyWalkingTracerActivation.java
...vation/opentracing/tracer/SkyWalkingTracerActivation.java
+4
-4
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessByteBufferContextInterceptor.java
...racerExtractCrossProcessByteBufferContextInterceptor.java
+35
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessTextMapContextInterceptor.java
...r/TracerExtractCrossProcessTextMapContextInterceptor.java
+50
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerFormatCrossProcessContextInterceptor.java
...terceptor/TracerFormatCrossProcessContextInterceptor.java
+42
-0
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/resources/skywalking-plugin.def
...acing-activation/src/main/resources/skywalking-plugin.def
+3
-0
skywalking-storage-center/skywalking-routing/pom.xml
skywalking-storage-center/skywalking-routing/pom.xml
+1
-1
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/http/module/RequestSpanModule.java
...eye/skywalking/routing/http/module/RequestSpanModule.java
+1
-1
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java
...eye/skywalking/storage/data/spandata/RequestSpanData.java
+1
-1
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java
.../eye/skywalking/storage/data/spandata/SpanDataHelper.java
+1
-1
skywalking-storage-center/skywalking-storage/src/test/java/StorageThread.java
...enter/skywalking-storage/src/test/java/StorageThread.java
+1
-1
skywalking-webui/pom.xml
skywalking-webui/pom.xml
+4
-4
skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/FullSpan.java
.../src/main/java/com/a/eye/skywalking/web/dto/FullSpan.java
+1
-1
skywalking-webui/src/main/java/com/a/eye/skywalking/web/util/Constants.java
...rc/main/java/com/a/eye/skywalking/web/util/Constants.java
+2
-0
未找到文件。
skywalking-network/src/main/proto/Spans.proto
浏览文件 @
7bf89427
...
...
@@ -17,7 +17,7 @@ message RequestSpan {
TraceId
traceId
=
1
;
string
parentLevel
=
2
;
int32
levelId
=
3
;
int64
start
Date
=
4
;
int64
start
Timestamp
=
4
;
int32
routeKey
=
5
;
map
<
string
,
string
>
tags
=
6
;
}
...
...
@@ -31,7 +31,7 @@ message Span {
string
parentLevelId
=
2
;
int32
levelId
=
3
;
string
viewpoint
=
4
;
int64
startTime
=
5
;
int64
startTime
stamp
=
5
;
int64
cost
=
6
;
int32
statusCode
=
7
;
string
exceptionStack
=
8
;
...
...
skywalking-sniffer/skywalking-agent/pom.xml
浏览文件 @
7bf89427
...
...
@@ -30,56 +30,62 @@
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-jedis-2.x-plugin
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-jdbc-plugin
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-httpClient-4.x-plugin
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-dubbo-plugin
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
tomcat-7.x-8.x-plugin
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
motan-plugin
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<!-- activation -->
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-log4j-1.x-activation
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-log4j-2.x-activation
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-logback-1.x-activation
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-trace-context-activation
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-opentracing-activation
</artifactId>
<version>
${project.version}
</version>
</dependency>
</dependencies>
...
...
skywalking-sniffer/skywalking-api/pom.xml
浏览文件 @
7bf89427
...
...
@@ -39,12 +39,12 @@
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-health-report
</artifactId>
<version>
${project.
parent.
version}
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-logging-api
</artifactId>
<version>
${project.
parent.
version}
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.lmax
</groupId>
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/BusinessKeyAppender.java
浏览文件 @
7bf89427
...
...
@@ -12,8 +12,6 @@ public final class BusinessKeyAppender {
/**
* 在当前埋点上下文中设置业务级信息
*
* @param businessKey
*/
public
static
void
setBusinessKey2Trace
(
String
businessKey
)
{
...
...
@@ -27,4 +25,6 @@ public final class BusinessKeyAppender {
}
spanData
.
setBusinessKey
(
businessKey
.
substring
(
0
,
Config
.
BuriedPoint
.
BUSINESSKEY_MAX_LENGTH
));
}
}
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/Tracing.java
浏览文件 @
7bf89427
package
com.a.eye.skywalking.api
;
import
com.a.eye.skywalking.context.CurrentThreadSpanStack
;
import
com.a.eye.skywalking.model.
ContextData
;
import
com.a.eye.skywalking.model.
RefContext
;
import
com.a.eye.skywalking.model.Span
;
import
com.a.eye.skywalking.network.grpc.TraceId
;
import
static
com
.
a
.
eye
.
skywalking
.
util
.
TraceIdUtil
.
formatTraceId
;
public
class
Tracing
{
public
final
class
Tracing
{
/**
* Get the traceId of current trace context.
*
...
...
@@ -21,4 +20,35 @@ public class Tracing {
return
formatTraceId
(
spanData
.
getTraceId
());
}
/**
* Get the current span of current trace.
*
* @return span. if it exists, or null
*/
public
static
Span
getCurrentSpan
()
{
Span
spanData
=
CurrentThreadSpanStack
.
peek
();
return
spanData
;
}
/**
* the span will be tagged with the given key and value pair
*
* @param span
* @param tagKey key of tag
* @param tagValue value of tag
*/
public
static
void
tag
(
Span
span
,
String
tagKey
,
String
tagValue
)
{
span
.
tag
(
tagKey
,
tagValue
);
}
/**
* init the ref context
*
* @param refContext ref context
*/
public
static
void
initRefContext
(
RefContext
refContext
){
CurrentThreadSpanStack
.
initRefContext
(
refContext
);
}
}
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/context/CurrentThreadSpanStack.java
浏览文件 @
7bf89427
package
com.a.eye.skywalking.context
;
import
com.a.eye.skywalking.model.RefContext
;
import
com.a.eye.skywalking.model.Span
;
import
java.util.ArrayList
;
...
...
@@ -42,7 +43,20 @@ public class CurrentThreadSpanStack {
return
nodes
.
get
().
pop
();
}
public
static
void
initRefContext
(
RefContext
refContext
)
{
if
(
nodes
.
get
()
==
null
){
nodes
.
set
(
new
SpanNodeStack
());
}
nodes
.
get
().
initRefContext
(
refContext
);
}
static
class
SpanNodeStack
{
/**
* This {@link RefContext} contain the trace context from another processor.
*/
private
RefContext
refContext
=
null
;
/**
* The depth of call stack should less than 20, in most cases.
* The depth is calculated by span, not class or the depth of java stack.
...
...
@@ -53,6 +67,8 @@ public class CurrentThreadSpanStack {
Span
span
=
spans
.
remove
(
getTopElementIdx
()).
getData
();
if
(!
isEmpty
())
{
spans
.
get
(
getTopElementIdx
()).
incrementNextSubSpanLevelId
();
}
else
{
refContext
=
null
;
}
return
span
;
}
...
...
@@ -61,6 +77,12 @@ public class CurrentThreadSpanStack {
if
(!
isEmpty
())
{
listPush
(
new
SpanNode
(
span
,
spans
.
get
(
getTopElementIdx
()).
getNextSubSpanLevelId
()));
}
else
{
if
(
refContext
!=
null
)
{
span
.
setTraceId
(
refContext
.
getTraceId
());
span
.
setParentLevel
(
refContext
.
getParentLevelId
());
span
.
setLevelId
(
0
);
}
listPush
(
new
SpanNode
(
span
));
}
...
...
@@ -85,6 +107,9 @@ public class CurrentThreadSpanStack {
spans
.
add
(
spans
.
size
(),
spanNode
);
}
public
void
initRefContext
(
RefContext
refContext
)
{
this
.
refContext
=
refContext
;
}
}
static
class
SpanNode
{
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/invoke/monitor/BaseInvokeMonitor.java
浏览文件 @
7bf89427
...
...
@@ -15,6 +15,7 @@ import com.a.eye.skywalking.network.grpc.RequestSpan;
import
com.a.eye.skywalking.util.BuriedPointMachineUtil
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
/**
...
...
@@ -61,7 +62,7 @@ public abstract class BaseInvokeMonitor {
*/
protected
void
sendRequestSpan
(
Span
span
,
Identification
id
)
{
RequestSpan
requestSpan
=
SpanTagBuilder
.
newBuilder
(
span
).
setBusinessKey
(
id
.
getBusinessKey
()).
setSpanTypeDesc
(
id
.
getSpanTypeDesc
()).
setCallType
(
id
.
getCallType
())
.
setProcessNo
(
BuriedPointMachineUtil
.
getProcessNo
()).
setAddress
(
BuriedPointMachineUtil
.
getHostDesc
()).
buildRequestSpan
(
RequestSpan
.
newBuilder
());
.
setProcessNo
(
BuriedPointMachineUtil
.
getProcessNo
()).
setAddress
(
BuriedPointMachineUtil
.
getHostDesc
()).
setSpanType
(
span
.
getSpanType
()).
buildRequestSpan
(
RequestSpan
.
newBuilder
());
RequestSpanDisruptor
.
INSTANCE
.
ready2Send
(
requestSpan
);
}
...
...
@@ -72,7 +73,7 @@ public abstract class BaseInvokeMonitor {
* @param span
*/
protected
void
sendAckSpan
(
Span
span
)
{
AckSpan
ackSpan
=
SpanTagBuilder
.
newBuilder
(
span
).
setStatusCode
(
span
.
getStatusCode
()).
setExceptionStack
(
span
.
getExceptionStack
()).
buildAckSpan
(
AckSpan
.
newBuilder
());
AckSpan
ackSpan
=
SpanTagBuilder
.
newBuilder
(
span
).
setStatusCode
(
span
.
getStatusCode
()).
setExceptionStack
(
span
.
getExceptionStack
()).
setSpanType
(
span
.
getSpanType
()).
buildAckSpan
(
AckSpan
.
newBuilder
());
AckSpanDisruptor
.
INSTANCE
.
ready2Send
(
ackSpan
);
}
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Identification.java
浏览文件 @
7bf89427
...
...
@@ -3,11 +3,17 @@ package com.a.eye.skywalking.model;
import
com.a.eye.skywalking.api.IBuriedPointType
;
import
com.a.eye.skywalking.util.StringUtil
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
Identification
{
private
String
viewPoint
;
private
String
businessKey
;
private
String
spanTypeDesc
;
private
String
callType
;
private
long
startTimestamp
;
private
Map
<
String
,
String
>
tags
=
new
HashMap
<
String
,
String
>();
public
Identification
()
{
//Non
...
...
@@ -29,29 +35,39 @@ public class Identification {
return
businessKey
;
}
public
long
getStartTimestamp
()
{
return
startTimestamp
;
}
public
Map
<
String
,
String
>
getTags
()
{
if
(
tags
==
null
){
return
Collections
.
EMPTY_MAP
;
}
return
tags
;
}
public
static
IdentificationBuilder
newBuilder
()
{
return
new
IdentificationBuilder
();
}
public
static
class
IdentificationBuilder
{
private
Identification
sendData
;
private
Identification
identification
;
IdentificationBuilder
()
{
sendData
=
new
Identification
();
identification
=
new
Identification
();
}
public
Identification
build
()
{
return
sendData
;
return
identification
;
}
public
IdentificationBuilder
viewPoint
(
String
viewPoint
)
{
sendData
.
viewPoint
=
viewPoint
;
identification
.
viewPoint
=
viewPoint
;
return
this
;
}
public
IdentificationBuilder
businessKey
(
String
businessKey
)
{
sendData
.
businessKey
=
businessKey
;
identification
.
businessKey
=
businessKey
;
return
this
;
}
...
...
@@ -59,11 +75,20 @@ public class Identification {
if
(
StringUtil
.
isEmpty
(
spanType
.
getTypeName
()))
{
throw
new
IllegalArgumentException
(
"Span Type name cannot be null"
);
}
sendData
.
spanTypeDesc
=
spanType
.
getTypeName
();
sendData
.
callType
=
spanType
.
getCallType
().
toString
();
identification
.
spanTypeDesc
=
spanType
.
getTypeName
();
identification
.
callType
=
spanType
.
getCallType
().
toString
();
return
this
;
}
public
IdentificationBuilder
startTime
(
long
startTime
)
{
identification
.
startTimestamp
=
startTime
;
return
this
;
}
public
IdentificationBuilder
tag
(
String
tagKey
,
String
tagValue
)
{
identification
.
tags
.
put
(
tagKey
,
tagValue
);
return
this
;
}
}
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/RefContext.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.model
;
import
com.a.eye.skywalking.network.grpc.TraceId
;
/**
* Created by xin on 2017/1/17.
*/
public
class
RefContext
{
private
TraceId
traceId
;
private
String
parentLevelId
;
public
RefContext
(
String
contentDataStr
)
{
ContextData
contextData
=
new
ContextData
(
contentDataStr
);
this
.
traceId
=
contextData
.
getTraceId
();
this
.
parentLevelId
=
contextData
.
getParentLevel
();
}
public
TraceId
getTraceId
()
{
return
traceId
;
}
public
String
getParentLevelId
()
{
return
parentLevelId
;
}
}
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java
浏览文件 @
7bf89427
...
...
@@ -39,7 +39,7 @@ public class Span {
/**
* 节点调用开始时间
*/
protected
long
start
Date
=
System
.
currentTimeMillis
();
protected
long
start
Timestamp
=
System
.
currentTimeMillis
();
/**
* 节点调用的状态<br/>
...
...
@@ -87,7 +87,6 @@ public class Span {
this
.
parentLevel
=
parentLevel
;
this
.
levelId
=
levelId
;
this
.
routeKey
=
routeKey
;
this
.
startDate
=
System
.
currentTimeMillis
();
this
.
setTag
(
Tag
.
USER_NAME
,
Config
.
SkyWalking
.
USERNAME
);
this
.
setTag
(
Tag
.
APPLICATION_CODE
,
Config
.
SkyWalking
.
APPLICATION_CODE
);
...
...
@@ -106,6 +105,10 @@ public class Span {
this
.
parentLevel
=
parentLevel
;
}
public
void
setTraceId
(
TraceId
traceId
)
{
this
.
traceId
=
traceId
;
}
public
int
getLevelId
()
{
return
levelId
;
}
...
...
@@ -166,12 +169,12 @@ public class Span {
public
RequestSpan
.
Builder
buildRequestSpan
(
RequestSpan
.
Builder
builder
)
{
return
builder
.
setTraceId
(
this
.
traceId
).
setParentLevel
(
this
.
parentLevel
).
setLevelId
(
this
.
levelId
)
.
setStart
Date
(
this
.
startDate
).
setRouteKey
(
routeKey
).
putAllTags
(
tags
);
.
setStart
Timestamp
(
this
.
startTimestamp
).
setRouteKey
(
routeKey
).
putAllTags
(
tags
);
}
public
AckSpan
.
Builder
buildAckSpan
(
AckSpan
.
Builder
builder
)
{
return
builder
.
setTraceId
(
this
.
traceId
).
setParentLevel
(
this
.
parentLevel
).
setLevelId
(
this
.
levelId
)
.
setCost
(
System
.
currentTimeMillis
()
-
this
.
start
Date
).
setRouteKey
(
routeKey
).
putAllTags
(
tags
);
.
setCost
(
System
.
currentTimeMillis
()
-
this
.
start
Timestamp
).
setRouteKey
(
routeKey
).
putAllTags
(
tags
);
}
public
int
getRouteKey
()
{
...
...
@@ -197,4 +200,12 @@ public class Span {
public
String
getExceptionStack
()
{
return
exceptionStack
;
}
public
void
tag
(
String
key
,
String
value
)
{
tags
.
put
(
key
,
value
);
}
public
void
setStartTimestamp
(
long
startTimestamp
)
{
this
.
startTimestamp
=
startTimestamp
;
}
}
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/SpanTagBuilder.java
浏览文件 @
7bf89427
...
...
@@ -20,8 +20,8 @@ public class SpanTagBuilder {
}
public
SpanTagBuilder
setSpanType
(
int
spanType
)
{
span
.
setTag
(
Tag
.
SPAN_TYPE
,
spanType
+
""
);
public
SpanTagBuilder
setSpanType
(
String
spanType
)
{
span
.
setTag
(
Tag
.
SPAN_TYPE
,
spanType
);
return
this
;
}
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java
浏览文件 @
7bf89427
...
...
@@ -5,6 +5,8 @@ import com.a.eye.skywalking.model.ContextData;
import
com.a.eye.skywalking.model.Identification
;
import
com.a.eye.skywalking.model.Span
;
import
java.util.Map
;
public
final
class
ContextGenerator
{
/**
* 利用本地ThreadLocal的信息创建Context,主要用于非跨JVM的操作
...
...
@@ -50,6 +52,12 @@ public final class ContextGenerator {
span
=
new
Span
(
parentSpan
,
id
.
getViewPoint
());
}
if
(
id
.
getStartTimestamp
()
!=
0
)
{
span
.
setStartTimestamp
(
id
.
getStartTimestamp
());
}
for
(
Map
.
Entry
<
String
,
String
>
entry
:
id
.
getTags
().
entrySet
())
{
span
.
tag
(
entry
.
getKey
(),
entry
.
getValue
());
}
return
span
;
}
...
...
skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/a/eye/skywalking/plugin/dubbo/DubboBuriedPointType.java
浏览文件 @
7bf89427
...
...
@@ -2,17 +2,8 @@ package com.a.eye.skywalking.plugin.dubbo;
import
com.a.eye.skywalking.api.IBuriedPointType
;
public
class
DubboBuriedPointType
implements
IBuriedPointType
{
private
static
DubboBuriedPointType
dubboBuriedPointType
;
public
static
IBuriedPointType
instance
()
{
if
(
dubboBuriedPointType
==
null
)
{
dubboBuriedPointType
=
new
DubboBuriedPointType
();
}
return
dubboBuriedPointType
;
}
public
enum
DubboBuriedPointType
implements
IBuriedPointType
{
INSTANCE
;
@Override
public
String
getTypeName
()
{
...
...
@@ -24,8 +15,4 @@ public class DubboBuriedPointType implements IBuriedPointType {
return
CallType
.
SYNC
;
}
private
DubboBuriedPointType
()
{
//Non
}
}
skywalking-sniffer/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/a/eye/skywalking/plugin/dubbo/MonitorFilterInterceptor.java
浏览文件 @
7bf89427
...
...
@@ -128,7 +128,7 @@ public class MonitorFilterInterceptor implements InstanceMethodsAroundIntercepto
}
viewPoint
.
append
(
")"
);
return
Identification
.
newBuilder
().
viewPoint
(
viewPoint
.
toString
()).
spanType
(
DubboBuriedPointType
.
instance
()
)
return
Identification
.
newBuilder
().
viewPoint
(
viewPoint
.
toString
()).
spanType
(
DubboBuriedPointType
.
INSTANCE
)
.
build
();
}
...
...
skywalking-sniffer/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/a/eye/skywalking/plugin/httpClient/v4/HttpClientExecuteInterceptor.java
浏览文件 @
7bf89427
...
...
@@ -41,7 +41,7 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
.
toString
())
.
spanType
(
WebBuriedPointType
.
instance
()
)
.
INSTANCE
)
.
build
()).
toString
());
}
...
...
skywalking-sniffer/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/com/a/eye/skywalking/plugin/httpClient/v4/WebBuriedPointType.java
浏览文件 @
7bf89427
...
...
@@ -2,17 +2,8 @@ package com.a.eye.skywalking.plugin.httpClient.v4;
import
com.a.eye.skywalking.api.IBuriedPointType
;
public
class
WebBuriedPointType
implements
IBuriedPointType
{
private
static
WebBuriedPointType
webBuriedPointType
;
public
static
IBuriedPointType
instance
()
{
if
(
webBuriedPointType
==
null
)
{
webBuriedPointType
=
new
WebBuriedPointType
();
}
return
webBuriedPointType
;
}
public
enum
WebBuriedPointType
implements
IBuriedPointType
{
INSTANCE
;
@Override
public
String
getTypeName
()
{
...
...
@@ -24,7 +15,4 @@ public class WebBuriedPointType implements IBuriedPointType {
return
CallType
.
SYNC
;
}
private
WebBuriedPointType
()
{
// Non
}
}
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/CallableStatementTracing.java
浏览文件 @
7bf89427
...
...
@@ -25,7 +25,7 @@ public class CallableStatementTracing {
"callableStatement."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()
).
build
());
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
INSTANCE
).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
rpcClientInvokeMonitor
.
occurException
(
e
);
...
...
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/ConnectionTracing.java
浏览文件 @
7bf89427
...
...
@@ -25,7 +25,7 @@ public class ConnectionTracing {
"connection."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()
).
build
());
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
INSTANCE
).
build
());
return
exec
.
exe
(
realConnection
,
sql
);
}
catch
(
SQLException
e
)
{
rpcClientInvokeMonitor
.
occurException
(
e
);
...
...
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/PreparedStatementTracing.java
浏览文件 @
7bf89427
...
...
@@ -26,7 +26,7 @@ public class PreparedStatementTracing {
"preaparedStatement."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()
).
build
());
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
INSTANCE
).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
rpcClientInvokeMonitor
.
occurException
(
e
);
...
...
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/StatementTracing.java
浏览文件 @
7bf89427
...
...
@@ -25,7 +25,7 @@ public class StatementTracing {
"statement."
+
method
+
(
sql
==
null
||
sql
.
length
()
==
0
?
""
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()
).
build
());
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
INSTANCE
).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
rpcClientInvokeMonitor
.
occurException
(
e
);
...
...
skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/define/JDBCBuriedPointType.java
浏览文件 @
7bf89427
...
...
@@ -2,18 +2,9 @@ package com.a.eye.skywalking.plugin.jdbc.define;
import
com.a.eye.skywalking.api.IBuriedPointType
;
public
class
JDBCBuriedPointType
implements
IBuriedPointType
{
private
static
JDBCBuriedPointType
jdbcBuriedPointType
;
public
static
IBuriedPointType
instance
()
{
if
(
jdbcBuriedPointType
==
null
)
{
jdbcBuriedPointType
=
new
JDBCBuriedPointType
();
}
return
jdbcBuriedPointType
;
}
public
enum
JDBCBuriedPointType
implements
IBuriedPointType
{
INSTANCE
;
@Override
public
String
getTypeName
()
{
...
...
@@ -25,7 +16,4 @@ public class JDBCBuriedPointType implements IBuriedPointType {
return
CallType
.
LOCAL
;
}
private
JDBCBuriedPointType
()
{
//Non
}
}
skywalking-sniffer/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/a/eye/skywalking/plugin/jedis/v2/JedisMethodInterceptor.java
浏览文件 @
7bf89427
...
...
@@ -24,7 +24,7 @@ public class JedisMethodInterceptor extends SimpleObjectFirstInvokeInterceptor {
.
viewPoint
(
context
.
get
(
REDIS_CONN_INFO_KEY
,
String
.
class
)
+
" "
+
interceptorContext
.
methodName
())
.
spanType
(
RedisBuriedPointType
.
instance
()
);
.
spanType
(
RedisBuriedPointType
.
INSTANCE
);
if
(
interceptorContext
.
allArguments
().
length
>
0
&&
interceptorContext
.
allArguments
()[
0
]
instanceof
String
)
{
builder
.
businessKey
(
"key="
...
...
skywalking-sniffer/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/a/eye/skywalking/plugin/jedis/v2/RedisBuriedPointType.java
浏览文件 @
7bf89427
...
...
@@ -2,17 +2,8 @@ package com.a.eye.skywalking.plugin.jedis.v2;
import
com.a.eye.skywalking.api.IBuriedPointType
;
public
class
RedisBuriedPointType
implements
IBuriedPointType
{
private
static
RedisBuriedPointType
redisBuriedPointType
;
public
static
IBuriedPointType
instance
()
{
if
(
redisBuriedPointType
==
null
)
{
redisBuriedPointType
=
new
RedisBuriedPointType
();
}
return
redisBuriedPointType
;
}
public
enum
RedisBuriedPointType
implements
IBuriedPointType
{
INSTANCE
;
@Override
public
String
getTypeName
()
{
...
...
@@ -24,5 +15,4 @@ public class RedisBuriedPointType implements IBuriedPointType {
return
CallType
.
SYNC
;
}
private
RedisBuriedPointType
(){}
}
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanBuriedPointType.java
浏览文件 @
7bf89427
...
...
@@ -2,21 +2,13 @@ package com.a.eye.skywalking.plugin.motan;
import
com.a.eye.skywalking.api.IBuriedPointType
;
public
class
MotanBuriedPointType
implements
IBuriedPointType
{
public
enum
MotanBuriedPointType
implements
IBuriedPointType
{
private
static
MotanBuriedPointType
motanBuriedPointType
;
public
static
IBuriedPointType
instance
()
{
if
(
motanBuriedPointType
==
null
)
{
motanBuriedPointType
=
new
MotanBuriedPointType
();
}
return
motanBuriedPointType
;
}
INSTANCE
;
@Override
public
String
getTypeName
()
{
return
"M"
;
return
"M
O
"
;
}
@Override
...
...
@@ -24,8 +16,4 @@ public class MotanBuriedPointType implements IBuriedPointType {
return
CallType
.
SYNC
;
}
private
MotanBuriedPointType
()
{
//Non
}
}
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanClientInterceptor.java
→
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanClient
Call
Interceptor.java
浏览文件 @
7bf89427
...
...
@@ -15,19 +15,18 @@ import com.weibo.api.motan.rpc.URL;
/**
* Motan client interceptor
*/
public
class
MotanClientInterceptor
implements
InstanceMethodsAroundInterceptor
,
InstanceConstructorInterceptor
{
@Override
public
void
onConstruct
(
EnhancedClassInstanceContext
context
,
ConstructorInvokeContext
interceptorContext
)
{
context
.
set
(
"serviceURI"
,
interceptorContext
.
allArguments
()[
1
]);
}
public
class
MotanClientCallInterceptor
implements
InstanceMethodsAroundInterceptor
{
private
static
final
String
REQUEST_URL
=
"REQUEST_URL"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
com
.
weibo
.
api
.
motan
.
rpc
.
Request
request
=
(
com
.
weibo
.
api
.
motan
.
rpc
.
Request
)
interceptorContext
.
allArguments
()[
0
];
if
(
request
!=
null
)
{
URL
url
=
(
URL
)
context
.
get
(
REQUEST_URL
);
Request
request
=
(
Request
)
interceptorContext
.
allArguments
()[
0
];
if
(
url
!=
null
)
{
ContextData
contextData
=
new
RPCClientInvokeMonitor
()
.
beforeInvoke
(
generateIdentify
(
request
,
(
com
.
weibo
.
api
.
motan
.
rpc
.
URL
)
context
.
get
(
"serviceURI"
)
));
.
beforeInvoke
(
generateIdentify
(
request
,
url
));
String
contextDataStr
=
contextData
.
toString
();
request
.
setAttachment
(
"contextData"
,
contextDataStr
);
}
...
...
@@ -57,6 +56,6 @@ public class MotanClientInterceptor implements InstanceMethodsAroundInterceptor,
public
static
Identification
generateIdentify
(
Request
request
,
URL
serviceURI
)
{
return
Identification
.
newBuilder
().
viewPoint
(
generateViewPoint
(
serviceURI
,
request
))
.
spanType
(
MotanBuriedPointType
.
instance
()
).
build
();
.
spanType
(
MotanBuriedPointType
.
INSTANCE
).
build
();
}
}
skywalking-sniffer/skywalking-
toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/ExtractCrossProcessByteBufferContext
Interceptor.java
→
skywalking-sniffer/skywalking-
sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanClientFetchCallURL
Interceptor.java
浏览文件 @
7bf89427
package
com.a.eye.skywalking.
toolkit.activation.opentracing
;
package
com.a.eye.skywalking.
plugin.motan
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
...
...
@@ -6,17 +6,20 @@ import com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInte
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
/**
* Created by
wusheng on 2017/1/
3.
* Created by
xin on 2017/1/2
3.
*/
public
class
ExtractCrossProcessByteBufferContextInterceptor
implements
InstanceMethodsAroundInterceptor
{
public
class
MotanClientFetchCallURLInterceptor
implements
InstanceMethodsAroundInterceptor
{
private
static
final
String
REQUEST_URL
=
"REQUEST_URL"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
context
.
set
(
REQUEST_URL
,
interceptorContext
.
allArguments
()[
0
]);
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
null
;
return
ret
;
}
@Override
...
...
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/MotanServerInterceptor.java
浏览文件 @
7bf89427
...
...
@@ -52,6 +52,6 @@ public class MotanServerInterceptor implements InstanceConstructorInterceptor, I
public
static
Identification
generateIdentify
(
Request
request
,
URL
serviceURI
)
{
return
Identification
.
newBuilder
().
viewPoint
(
generateViewPoint
(
serviceURI
,
request
))
.
spanType
(
MotanBuriedPointType
.
instance
()
).
build
();
.
spanType
(
MotanBuriedPointType
.
INSTANCE
).
build
();
}
}
skywalking-sniffer/skywalking-sdk-plugin/motan-plugin/src/main/java/com/a/eye/skywalking/plugin/motan/define/MotanClientDefine.java
浏览文件 @
7bf89427
...
...
@@ -3,36 +3,36 @@ package com.a.eye.skywalking.plugin.motan.define;
import
com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine
;
import
net.bytebuddy.description.method.MethodDescription
;
import
net.bytebuddy.matcher.ElementMatcher
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
any
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
named
;
public
class
MotanClientDefine
extends
ClassInstanceMethodsEnhancePluginDefine
{
@Override
protected
String
enhanceClassName
()
{
return
"com.weibo.api.motan.
rpc.AbstractReferer
"
;
return
"com.weibo.api.motan.
cluster.support.ClusterSpi
"
;
}
@Override
protected
ConstructorInterceptPoint
[]
getConstructorsInterceptPoints
()
{
return
new
ConstructorInterceptPoint
[]
{
new
ConstructorInterceptPoint
()
{
return
new
ConstructorInterceptPoint
[
0
];
}
@Override
protected
InstanceMethodsInterceptPoint
[]
getInstanceMethodsInterceptPoints
()
{
return
new
InstanceMethodsInterceptPoint
[]{
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
get
Constructor
Matcher
()
{
return
any
(
);
public
ElementMatcher
<
MethodDescription
>
get
Methods
Matcher
()
{
return
named
(
"setUrl"
);
}
@Override
public
String
get
Constructor
Interceptor
()
{
return
"com.a.eye.skywalking.plugin.motan.MotanClientInterceptor"
;
public
String
get
Methods
Interceptor
()
{
return
"com.a.eye.skywalking.plugin.motan.MotanClient
FetchCallURL
Interceptor"
;
}
}};
}
@Override
protected
InstanceMethodsInterceptPoint
[]
getInstanceMethodsInterceptPoints
()
{
return
new
InstanceMethodsInterceptPoint
[]
{
new
InstanceMethodsInterceptPoint
()
{
},
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getMethodsMatcher
()
{
return
named
(
"call"
);
...
...
@@ -40,7 +40,7 @@ public class MotanClientDefine extends ClassInstanceMethodsEnhancePluginDefine {
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.plugin.motan.MotanClientInterceptor"
;
return
"com.a.eye.skywalking.plugin.motan.MotanClient
Call
Interceptor"
;
}
}};
}
...
...
skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/TomcatPluginInterceptor.java
浏览文件 @
7bf89427
...
...
@@ -47,7 +47,7 @@ public class TomcatPluginInterceptor implements InstanceMethodsAroundInterceptor
private
Identification
generateIdentification
(
HttpServletRequest
request
)
{
return
Identification
.
newBuilder
()
.
viewPoint
(
request
.
getRequestURL
().
toString
())
.
spanType
(
WebBuriedPointType
.
instance
()
)
.
spanType
(
WebBuriedPointType
.
INSTANCE
)
.
build
();
}
...
...
skywalking-sniffer/skywalking-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/com/a/eye/skywalking/plugin/tomcat78x/WebBuriedPointType.java
浏览文件 @
7bf89427
...
...
@@ -2,17 +2,8 @@ package com.a.eye.skywalking.plugin.tomcat78x;
import
com.a.eye.skywalking.api.IBuriedPointType
;
public
class
WebBuriedPointType
implements
IBuriedPointType
{
private
static
WebBuriedPointType
webBuriedPointType
;
public
static
IBuriedPointType
instance
()
{
if
(
webBuriedPointType
==
null
)
{
webBuriedPointType
=
new
WebBuriedPointType
();
}
return
webBuriedPointType
;
}
public
enum
WebBuriedPointType
implements
IBuriedPointType
{
INSTANCE
;
@Override
public
String
getTypeName
()
{
...
...
@@ -24,7 +15,4 @@ public class WebBuriedPointType implements IBuriedPointType {
return
CallType
.
SYNC
;
}
private
WebBuriedPointType
()
{
// Non
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/pom.xml
浏览文件 @
7bf89427
...
...
@@ -11,5 +11,16 @@
<artifactId>
skywalking-toolkit-opentracing-activation
</artifactId>
<dependencies>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-api
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-opentracing
</artifactId>
<version>
${project.version}
</version>
</dependency>
</dependencies>
</project>
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/SkyWalkingSpanActivation.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.span
;
import
com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine
;
import
net.bytebuddy.description.method.MethodDescription
;
import
net.bytebuddy.matcher.ElementMatcher
;
import
java.util.Map
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
named
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
noneOf
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
takesArguments
;
/**
* Created by xin on 2017/1/16.
*/
public
class
SkyWalkingSpanActivation
extends
ClassInstanceMethodsEnhancePluginDefine
{
@Override
protected
String
enhanceClassName
()
{
return
"com.a.eye.skywalking.toolkit.opentracing.SkyWalkingSpan"
;
}
@Override
protected
ConstructorInterceptPoint
[]
getConstructorsInterceptPoints
()
{
return
new
ConstructorInterceptPoint
[]{
new
ConstructorInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getConstructorMatcher
()
{
return
takesArguments
(
String
.
class
,
long
.
class
,
Map
.
class
);
}
@Override
public
String
getConstructorInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.span.interceptor.SpanNewInstanceInterceptor"
;
}
}
};
}
@Override
protected
InstanceMethodsInterceptPoint
[]
getInstanceMethodsInterceptPoints
()
{
return
new
InstanceMethodsInterceptPoint
[]{
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getMethodsMatcher
()
{
return
named
(
"setTag"
);
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.span.interceptor.SpanSetTagInterceptor"
;
}
},
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getMethodsMatcher
()
{
return
named
(
"setOperationName"
);
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.span.interceptor.SpanSetOperationNameInterceptor"
;
}
},
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getMethodsMatcher
()
{
return
named
(
"finish"
);
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.span.interceptor.SpanFinishInterceptor"
;
}
}
};
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/interceptor/SpanFinishInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.span.interceptor
;
import
com.a.eye.skywalking.api.Tracing
;
import
com.a.eye.skywalking.invoke.monitor.LocalMethodInvokeMonitor
;
import
com.a.eye.skywalking.model.Span
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
import
java.util.Map
;
/**
* Created by xin on 2017/1/16.
*/
public
class
SpanFinishInterceptor
implements
InstanceMethodsAroundInterceptor
{
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
// do nothing
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
Span
currentSpan
=
Tracing
.
getCurrentSpan
();
Map
<
String
,
String
>
tags
=
(
Map
<
String
,
String
>)
context
.
get
(
"tags"
);
if
(
tags
!=
null
)
{
for
(
Map
.
Entry
<
String
,
String
>
entry
:
tags
.
entrySet
())
{
Tracing
.
tag
(
currentSpan
,
entry
.
getKey
(),
entry
.
getValue
());
}
}
new
LocalMethodInvokeMonitor
().
afterInvoke
();
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.span.interceptor
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceConstructorInterceptor
;
/**
* @author zhangxin
*/
public
class
SpanNewInstanceInterceptor
implements
InstanceConstructorInterceptor
{
private
static
final
String
OPERATION_NAME
=
"operationName"
;
@Override
public
void
onConstruct
(
EnhancedClassInstanceContext
context
,
ConstructorInvokeContext
interceptorContext
)
{
context
.
set
(
OPERATION_NAME
,
interceptorContext
.
allArguments
()[
0
]);
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/
ExtractCrossProcessTextMapContext
Interceptor.java
→
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/
span/interceptor/SpanSetOperationName
Interceptor.java
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing
;
package
com.a.eye.skywalking.toolkit.activation.opentracing
.span.interceptor
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
...
...
@@ -6,17 +6,20 @@ import com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInte
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
/**
* Created by
wusheng on 2017/1/3
.
* Created by
xin on 2017/1/16
.
*/
public
class
ExtractCrossProcessTextMapContextInterceptor
implements
InstanceMethodsAroundInterceptor
{
public
class
SpanSetOperationNameInterceptor
implements
InstanceMethodsAroundInterceptor
{
private
static
final
String
OPERATION_NAME
=
"operationName"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
context
.
set
(
OPERATION_NAME
,
interceptorContext
.
allArguments
()[
0
]);
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
null
;
return
ret
;
}
@Override
...
...
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/span/interceptor/SpanSetTagInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.span.interceptor
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* Created by xin on 2017/1/16.
*/
public
class
SpanSetTagInterceptor
implements
InstanceMethodsAroundInterceptor
{
private
static
final
String
TAGS
=
"tags"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
Map
<
String
,
String
>
contextTags
=
(
Map
<
String
,
String
>)
context
.
get
(
TAGS
);
if
(!
context
.
isContain
(
TAGS
)){
contextTags
=
new
HashMap
<
String
,
String
>();
context
.
set
(
TAGS
,
contextTags
);
}
contextTags
.
put
((
String
)
interceptorContext
.
allArguments
()[
0
],
String
.
valueOf
(
interceptorContext
.
allArguments
()[
1
]));
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/OpenTracingLocalBuriedPointType.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder
;
import
com.a.eye.skywalking.api.IBuriedPointType
;
/**
* @author zhangxin
*/
public
enum
OpenTracingLocalBuriedPointType
implements
IBuriedPointType
{
INSTANCE
;
@Override
public
String
getTypeName
()
{
return
"OT"
;
}
@Override
public
CallType
getCallType
()
{
return
CallType
.
LOCAL
;
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/SkyWalkingSpanBuilderActivation.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder
;
import
com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine
;
import
net.bytebuddy.description.method.MethodDescription
;
import
net.bytebuddy.matcher.ElementMatcher
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
named
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
takesArguments
;
/**
* Created by xin on 2017/1/16.
*/
public
class
SkyWalkingSpanBuilderActivation
extends
ClassInstanceMethodsEnhancePluginDefine
{
@Override
protected
String
enhanceClassName
()
{
return
"com.a.eye.skywalking.toolkit.opentracing.SkyWalkingSpanBuilder"
;
}
@Override
protected
ConstructorInterceptPoint
[]
getConstructorsInterceptPoints
()
{
return
new
ConstructorInterceptPoint
[]{
new
ConstructorInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getConstructorMatcher
()
{
return
takesArguments
(
String
.
class
);
}
@Override
public
String
getConstructorInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.interceptor.SpanBuilderNewInstanceInterceptor"
;
}
}
};
}
@Override
protected
InstanceMethodsInterceptPoint
[]
getInstanceMethodsInterceptPoints
()
{
return
new
InstanceMethodsInterceptPoint
[]{
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getMethodsMatcher
()
{
return
named
(
"withTag"
);
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.interceptor.SpanBuilderWithTagInterceptor"
;
}
},
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getMethodsMatcher
()
{
return
named
(
"withStartTimestamp"
);
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.interceptor.SpanBuilderWithStartTimeInterceptor"
;
}
},
new
InstanceMethodsInterceptPoint
()
{
@Override
public
ElementMatcher
<
MethodDescription
>
getMethodsMatcher
()
{
return
named
(
"start"
);
}
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.interceptor.SpanBuilderStartInterceptor"
;
}
}
};
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/interceptor/SpanBuilderNewInstanceInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.interceptor
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceConstructorInterceptor
;
public
class
SpanBuilderNewInstanceInterceptor
implements
InstanceConstructorInterceptor
{
public
static
final
String
OPERATION_NAME
=
"operationName"
;
@Override
public
void
onConstruct
(
EnhancedClassInstanceContext
context
,
ConstructorInvokeContext
interceptorContext
)
{
context
.
set
(
OPERATION_NAME
,
interceptorContext
.
allArguments
()[
0
]);
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/interceptor/SpanBuilderStartInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.interceptor
;
import
com.a.eye.skywalking.invoke.monitor.LocalMethodInvokeMonitor
;
import
com.a.eye.skywalking.model.Identification
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
import
com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.OpenTracingLocalBuriedPointType
;
import
java.util.Map
;
/**
* @author zhangxin
*/
public
class
SpanBuilderStartInterceptor
implements
InstanceMethodsAroundInterceptor
{
public
static
final
String
START_TIME
=
"startTimestamp"
;
public
static
final
String
OPERATION_NAME
=
"operationName"
;
public
static
final
String
TAGS
=
"tags"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
Long
startTime
=
fetchStartTime
(
context
);
String
operationName
=
(
String
)
context
.
get
(
OPERATION_NAME
);
Identification
.
IdentificationBuilder
builder
=
Identification
.
newBuilder
().
viewPoint
(
operationName
)
.
spanType
(
OpenTracingLocalBuriedPointType
.
INSTANCE
);
if
(
startTime
!=
null
){
builder
.
startTime
(
startTime
);
}
Map
<
String
,
String
>
tags
=
(
Map
<
String
,
String
>)
context
.
get
(
TAGS
);
if
(
tags
!=
null
)
{
for
(
Map
.
Entry
<
String
,
String
>
tag
:
tags
.
entrySet
())
{
builder
.
tag
(
tag
.
getKey
(),
tag
.
getValue
());
}
}
new
LocalMethodInvokeMonitor
().
beforeInvoke
(
builder
.
build
());
}
private
Long
fetchStartTime
(
EnhancedClassInstanceContext
context
)
{
Object
startTime
=
context
.
get
(
START_TIME
);
if
(
startTime
!=
null
){
return
(
Long
)
startTime
;
}
return
null
;
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/
FormatCrossProcessContext
Interceptor.java
→
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/
spanbuilder/interceptor/SpanBuilderWithStartTime
Interceptor.java
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing
;
package
com.a.eye.skywalking.toolkit.activation.opentracing
.spanbuilder.interceptor
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
...
...
@@ -6,17 +6,20 @@ import com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInte
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
/**
* Created by
wusheng on 2017/1/3
.
* Created by
xin on 2017/1/16
.
*/
public
class
FormatCrossProcessContextInterceptor
implements
InstanceMethodsAroundInterceptor
{
public
class
SpanBuilderWithStartTimeInterceptor
implements
InstanceMethodsAroundInterceptor
{
public
static
final
String
START_TIME
=
"startTimestamp"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
context
.
set
(
START_TIME
,
interceptorContext
.
allArguments
()[
0
]);
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
null
;
return
ret
;
}
@Override
...
...
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/spanbuilder/interceptor/SpanBuilderWithTagInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.interceptor
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* Created by xin on 2017/1/16.
*/
public
class
SpanBuilderWithTagInterceptor
implements
InstanceMethodsAroundInterceptor
{
public
static
final
String
TAGS
=
"tags"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
Map
<
String
,
String
>
contextTags
=
(
Map
<
String
,
String
>)
context
.
get
(
TAGS
);
if
(!
context
.
isContain
(
TAGS
)){
contextTags
=
new
HashMap
<
String
,
String
>();
context
.
set
(
TAGS
,
contextTags
);
}
contextTags
.
put
((
String
)
interceptorContext
.
allArguments
()[
0
],
String
.
valueOf
(
interceptorContext
.
allArguments
()[
1
]));
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
// Do nothing
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/SkyWalkingTracerActivation.java
→
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/
tracer/
SkyWalkingTracerActivation.java
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing
;
package
com.a.eye.skywalking.toolkit.activation.opentracing
.tracer
;
import
com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint
;
import
com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint
;
...
...
@@ -36,7 +36,7 @@ public class SkyWalkingTracerActivation extends ClassInstanceMethodsEnhancePlugi
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.FormatCrossProcessContextInterceptor"
;
return
"com.a.eye.skywalking.toolkit.activation.opentracing.
tracer.interceptor.Tracer
FormatCrossProcessContextInterceptor"
;
}
},
new
InstanceMethodsInterceptPoint
()
{
@Override
...
...
@@ -46,7 +46,7 @@ public class SkyWalkingTracerActivation extends ClassInstanceMethodsEnhancePlugi
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.ExtractCrossProcessTextMapContextInterceptor"
;
return
"com.a.eye.skywalking.toolkit.activation.opentracing.
tracer.interceptor.Tracer
ExtractCrossProcessTextMapContextInterceptor"
;
}
},
new
InstanceMethodsInterceptPoint
()
{
@Override
...
...
@@ -56,7 +56,7 @@ public class SkyWalkingTracerActivation extends ClassInstanceMethodsEnhancePlugi
@Override
public
String
getMethodsInterceptor
()
{
return
"com.a.eye.skywalking.toolkit.activation.opentracing.ExtractCrossProcessByteBufferContextInterceptor"
;
return
"com.a.eye.skywalking.toolkit.activation.opentracing.
tracer.interceptor.Tracer
ExtractCrossProcessByteBufferContextInterceptor"
;
}
}};
}
...
...
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessByteBufferContextInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.tracer.interceptor
;
import
com.a.eye.skywalking.api.Tracing
;
import
com.a.eye.skywalking.model.RefContext
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
import
java.nio.ByteBuffer
;
import
java.nio.charset.Charset
;
/**
*
* @author zhangxin
*/
public
class
TracerExtractCrossProcessByteBufferContextInterceptor
implements
InstanceMethodsAroundInterceptor
{
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
ByteBuffer
byteBuffer
=
(
ByteBuffer
)
interceptorContext
.
allArguments
()[
0
];
String
contextDataStr
=
new
String
(
byteBuffer
.
array
(),
Charset
.
forName
(
"UTF-8"
));
Tracing
.
initRefContext
(
new
RefContext
(
contextDataStr
));
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerExtractCrossProcessTextMapContextInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.tracer.interceptor
;
import
com.a.eye.skywalking.api.Tracing
;
import
com.a.eye.skywalking.model.RefContext
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
import
java.util.Iterator
;
import
java.util.Map
;
import
io.opentracing.propagation.TextMap
;
/**
*
* @author zhangxin
*/
public
class
TracerExtractCrossProcessTextMapContextInterceptor
implements
InstanceMethodsAroundInterceptor
{
public
static
final
String
SKY_WALKING_TRACING_NAME
=
"SkyWalking-TRACING-NAME"
;
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
// Do nothing
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
TextMap
textMap
=
(
TextMap
)
interceptorContext
.
allArguments
()[
0
];
Iterator
<
Map
.
Entry
<
String
,
String
>>
iterator
=
textMap
.
iterator
();
while
(
iterator
.
hasNext
()){
Map
.
Entry
<
String
,
String
>
entry
=
iterator
.
next
();
if
(
SKY_WALKING_TRACING_NAME
.
equals
(
entry
.
getKey
())){
try
{
Tracing
.
initRefContext
(
new
RefContext
(
entry
.
getValue
()));
}
catch
(
Throwable
e
){
// do something
}
}
}
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/opentracing/tracer/interceptor/TracerFormatCrossProcessContextInterceptor.java
0 → 100644
浏览文件 @
7bf89427
package
com.a.eye.skywalking.toolkit.activation.opentracing.tracer.interceptor
;
import
com.a.eye.skywalking.api.Tracing
;
import
com.a.eye.skywalking.model.ContextData
;
import
com.a.eye.skywalking.model.Span
;
import
com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult
;
import
com.a.eye.skywalking.toolkit.opentracing.SkyWalkingTracer
;
/**
* @author zhangxin
*/
public
class
TracerFormatCrossProcessContextInterceptor
implements
InstanceMethodsAroundInterceptor
{
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
Span
span
=
Tracing
.
getCurrentSpan
();
if
(
span
!=
null
)
{
return
new
ContextData
(
span
.
getTraceId
(),
generateSubParentLevelId
(
span
),
span
.
getRouteKey
()).
toString
();
}
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
}
private
String
generateSubParentLevelId
(
Span
spanData
)
{
if
(
spanData
.
getParentLevel
()
==
null
||
spanData
.
getParentLevel
().
length
()
==
0
)
{
return
spanData
.
getLevelId
()
+
""
;
}
return
spanData
.
getParentLevel
()
+
"."
+
spanData
.
getLevelId
();
}
}
skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-opentracing-activation/src/main/resources/skywalking-plugin.def
0 → 100644
浏览文件 @
7bf89427
com.a.eye.skywalking.toolkit.activation.opentracing.span.SkyWalkingSpanActivation
com.a.eye.skywalking.toolkit.activation.opentracing.spanbuilder.SkyWalkingSpanBuilderActivation
com.a.eye.skywalking.toolkit.activation.opentracing.tracer.SkyWalkingTracerActivation
\ No newline at end of file
skywalking-storage-center/skywalking-routing/pom.xml
浏览文件 @
7bf89427
...
...
@@ -28,7 +28,7 @@
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-util
</artifactId>
<version>
${project.
parent.
version}
</version>
<version>
${project.version}
</version>
</dependency>
<!-- nano httpd -->
<dependency>
...
...
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/http/module/RequestSpanModule.java
浏览文件 @
7bf89427
...
...
@@ -26,7 +26,7 @@ public class RequestSpanModule {
return
null
;
}
return
RequestSpan
.
newBuilder
().
putAllTags
(
tags
).
setLevelId
(
levelId
).
setParentLevel
(
parentLevelId
)
.
setRouteKey
(
routeKey
).
setStart
Date
(
startTime
).
setTraceId
(
TraceIdUtil
.
toTraceId
(
traceId
)).
build
();
.
setRouteKey
(
routeKey
).
setStart
Timestamp
(
startTime
).
setTraceId
(
TraceIdUtil
.
toTraceId
(
traceId
)).
build
();
}
...
...
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java
浏览文件 @
7bf89427
...
...
@@ -67,7 +67,7 @@ public class RequestSpanData extends AbstractSpanData {
}
public
long
getStartTime
()
{
return
requestSpan
.
getStart
Date
();
return
requestSpan
.
getStart
Timestamp
();
}
public
String
getBusinessKey
()
{
...
...
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java
浏览文件 @
7bf89427
...
...
@@ -51,7 +51,7 @@ public class SpanDataHelper {
}
builder
=
builder
.
setLevelId
(
requestSpanData
.
getLevelId
()).
setParentLevelId
(
requestSpanData
.
getParentLevelId
()).
setProcessNo
(
requestSpanData
.
getProcessNo
())
.
setSpanType
(
requestSpanData
.
getType
()).
setSpanTypeDesc
(
requestSpanData
.
getSpanTypeDesc
()).
setStartTime
(
requestSpanData
.
getStartTime
())
.
setSpanType
(
requestSpanData
.
getType
()).
setSpanTypeDesc
(
requestSpanData
.
getSpanTypeDesc
()).
setStartTime
stamp
(
requestSpanData
.
getStartTime
())
.
setStatusCode
(
ackSpanData
.
getStatusCode
())
.
setViewpoint
(
requestSpanData
.
getViewPoint
())
.
setTraceId
(
TraceId
.
newBuilder
().
addAllSegments
(
Arrays
.
asList
(
requestSpanData
.
getTraceIdSegments
())));
...
...
skywalking-storage-center/skywalking-storage/src/test/java/StorageThread.java
浏览文件 @
7bf89427
...
...
@@ -40,7 +40,7 @@ public class StorageThread extends Thread {
.
putTags
(
Tag
.
ADDRESS
.
toString
(),
NetUtils
.
getLocalAddress
().
toString
())
.
putTags
(
Tag
.
APPLICATION_CODE
.
toString
(),
"1"
)
.
putTags
(
Tag
.
CALL_TYPE
.
toString
(),
"1"
).
setLevelId
(
0
)
.
putTags
(
Tag
.
PROCESS_NO
.
toString
(),
"19287"
).
setStart
Date
(
System
.
currentTimeMillis
())
.
putTags
(
Tag
.
PROCESS_NO
.
toString
(),
"19287"
).
setStart
Timestamp
(
System
.
currentTimeMillis
())
.
setTraceId
(
TraceId
.
newBuilder
().
addSegments
(
201611
).
addSegments
(
value
).
addSegments
(
8504828
).
addSegments
(
2277
).
addSegments
(
53
).
addSegments
(
3
).
build
())
.
putTags
(
Tag
.
USER_NAME
.
toString
(),
"1"
).
putTags
(
Tag
.
VIEW_POINT
.
toString
(),
"http://localhost:8080/wwww/test/helloWorld"
).
setRouteKey
(
i
).
build
();
...
...
skywalking-webui/pom.xml
浏览文件 @
7bf89427
...
...
@@ -20,22 +20,22 @@
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-network
</artifactId>
<version>
2.1-2017
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-logging-api
</artifactId>
<version>
${project.
parent.
version}
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-logging-impl-log4j2
</artifactId>
<version>
${project.
parent.
version}
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-registry
</artifactId>
<version>
${project.
parent.
version}
</version>
<version>
${project.version}
</version>
</dependency>
<dependency>
...
...
skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/FullSpan.java
浏览文件 @
7bf89427
...
...
@@ -42,7 +42,7 @@ public class FullSpan {
this
.
businessKey
=
span
.
getBusinessKey
();
this
.
spanTypeDesc
=
span
.
getSpanTypeDesc
();
this
.
username
=
span
.
getUsername
();
this
.
startDate
=
span
.
getStartTime
();
this
.
startDate
=
span
.
getStartTime
stamp
();
this
.
viewPointId
=
span
.
getViewpoint
();
this
.
spanType
=
span
.
getSpanType
()
+
""
;
this
.
address
=
span
.
getAddress
();
...
...
skywalking-webui/src/main/java/com/a/eye/skywalking/web/util/Constants.java
浏览文件 @
7bf89427
...
...
@@ -27,6 +27,8 @@ public class Constants {
put
(
"D"
,
"DUBBO"
);
put
(
"L"
,
"LOCAL"
);
put
(
"U"
,
"UNKNOWN"
);
put
(
"MO"
,
"Motan"
);
put
(
"OT"
,
"OpenTracing"
);
}
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录