Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
b69e61a6
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 1 年多
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
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,发现更多精彩内容 >>
提交
b69e61a6
编写于
7月 02, 2016
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
重构大量方法,修改原有的大量基础类名称和方法名。
上级
e1455e44
变更
24
显示空白变更内容
内联
并排
Showing
24 changed file
with
142 addition
and
265 deletion
+142
-265
samples/skywalking-example/account-application/account-impl/src/main/java/com/ai/cloud/skywalking/example/account/dubbo/impl/AccountMaintainImpl.java
...lking/example/account/dubbo/impl/AccountMaintainImpl.java
+1
-1
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/BusinessKeyAppender.java
...java/com/ai/cloud/skywalking/api/BusinessKeyAppender.java
+2
-2
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointReceiver.java
...ava/com/ai/cloud/skywalking/api/IBuriedPointReceiver.java
+0
-10
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointSender.java
.../java/com/ai/cloud/skywalking/api/IBuriedPointSender.java
+0
-10
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IExceptionHandler.java
...n/java/com/ai/cloud/skywalking/api/IExceptionHandler.java
+0
-5
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/Tracing.java
...pi/src/main/java/com/ai/cloud/skywalking/api/Tracing.java
+3
-3
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadBuriedPointSender.java
...cloud/skywalking/buriedpoint/ThreadBuriedPointSender.java
+0
-69
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadFactoryBuriedPointSender.java
...kywalking/buriedpoint/ThreadFactoryBuriedPointSender.java
+0
-39
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/CurrentThreadSpanStack.java
...m/ai/cloud/skywalking/context/CurrentThreadSpanStack.java
+22
-22
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/BaseTracer.java
.../main/java/com/ai/cloud/skywalking/tracer/BaseTracer.java
+10
-10
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/LocalMethodTracer.java
...ava/com/ai/cloud/skywalking/tracer/LocalMethodTracer.java
+13
-9
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCClientTracer.java
.../java/com/ai/cloud/skywalking/tracer/RPCClientTracer.java
+15
-12
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/tracer/RPCServerTracer.java
.../java/com/ai/cloud/skywalking/tracer/RPCServerTracer.java
+17
-14
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/util/ContextGenerator.java
...n/java/com/ai/cloud/skywalking/util/ContextGenerator.java
+2
-2
skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/api/TimeTest.java
...walking-api/src/test/java/test/ai/cloud/api/TimeTest.java
+4
-4
skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java
...i/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java
+12
-12
skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java
...ng/httpClient/v4/plugin/HttpClientExecuteInterceptor.java
+5
-5
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/CallableStatementTracing.java
...loud/skywalking/plugin/jdbc/CallableStatementTracing.java
+5
-5
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/ConnectionTracing.java
...om/ai/cloud/skywalking/plugin/jdbc/ConnectionTracing.java
+5
-5
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/PreparedStatementTracing.java
...loud/skywalking/plugin/jdbc/PreparedStatementTracing.java
+5
-5
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/StatementTracing.java
...com/ai/cloud/skywalking/plugin/jdbc/StatementTracing.java
+5
-5
skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/JedisBaseInterceptor.java
...loud/skywalking/jedis/v2/plugin/JedisBaseInterceptor.java
+5
-5
skywalking-collector/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java
.../com/ai/cloud/skywalking/plugin/spring/TracingAspect.java
+5
-5
skywalking-collector/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java
.../com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java
+6
-6
未找到文件。
samples/skywalking-example/account-application/account-impl/src/main/java/com/ai/cloud/skywalking/example/account/dubbo/impl/AccountMaintainImpl.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.example.account.dubbo.impl
;
import
com.ai.cloud.skywalking.
buriedpoint
.RPCBuriedPointSender
;
import
com.ai.cloud.skywalking.
tracer
.RPCBuriedPointSender
;
import
com.ai.cloud.skywalking.example.account.dubbo.interfaces.IAccountMaintain
;
import
com.ai.cloud.skywalking.example.account.dubbo.interfaces.param.AccountInfo
;
import
com.ai.cloud.skywalking.example.account.exception.BusinessException
;
...
...
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/BusinessKeyAppender.java
浏览文件 @
b69e61a6
...
...
@@ -2,7 +2,7 @@ package com.ai.cloud.skywalking.api;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.conf.Config
;
import
com.ai.cloud.skywalking.context.C
ontext
;
import
com.ai.cloud.skywalking.context.C
urrentThreadSpanStack
;
import
com.ai.cloud.skywalking.protocol.Span
;
public
final
class
BusinessKeyAppender
{
...
...
@@ -20,7 +20,7 @@ public final class BusinessKeyAppender {
if
(!
AuthDesc
.
isAuth
())
return
;
Span
spanData
=
C
ontext
.
getLastSpan
();
Span
spanData
=
C
urrentThreadSpanStack
.
peek
();
if
(
spanData
==
null
)
{
return
;
}
...
...
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointReceiver.java
已删除
100644 → 0
浏览文件 @
e1455e44
package
com.ai.cloud.skywalking.api
;
import
com.ai.cloud.skywalking.model.ContextData
;
import
com.ai.cloud.skywalking.model.Identification
;
public
interface
IBuriedPointReceiver
extends
IExceptionHandler
{
void
afterReceived
();
void
beforeReceived
(
ContextData
contextData
,
Identification
id
);
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IBuriedPointSender.java
已删除
100644 → 0
浏览文件 @
e1455e44
package
com.ai.cloud.skywalking.api
;
import
com.ai.cloud.skywalking.model.Identification
;
import
com.ai.cloud.skywalking.model.ContextData
;
public
interface
IBuriedPointSender
extends
IExceptionHandler
{
ContextData
beforeSend
(
Identification
id
);
void
afterSend
();
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/IExceptionHandler.java
已删除
100644 → 0
浏览文件 @
e1455e44
package
com.ai.cloud.skywalking.api
;
public
interface
IExceptionHandler
{
void
handleException
(
Throwable
th
);
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/api/Tracing.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.api
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.context.C
ontext
;
import
com.ai.cloud.skywalking.context.C
urrentThreadSpanStack
;
import
com.ai.cloud.skywalking.model.ContextData
;
import
com.ai.cloud.skywalking.protocol.Span
;
...
...
@@ -15,7 +15,7 @@ public class Tracing {
if
(!
AuthDesc
.
isAuth
())
return
""
;
Span
spanData
=
C
ontext
.
getLastSpan
();
Span
spanData
=
C
urrentThreadSpanStack
.
peek
();
if
(
spanData
==
null
)
{
return
""
;
}
...
...
@@ -27,7 +27,7 @@ public class Tracing {
if
(!
AuthDesc
.
isAuth
())
return
null
;
Span
spanData
=
C
ontext
.
getLastSpan
();
Span
spanData
=
C
urrentThreadSpanStack
.
peek
();
if
(
spanData
==
null
)
{
return
null
;
}
...
...
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadBuriedPointSender.java
已删除
100644 → 0
浏览文件 @
e1455e44
package
com.ai.cloud.skywalking.buriedpoint
;
import
com.ai.cloud.skywalking.api.IBuriedPointSender
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.conf.Config
;
import
com.ai.cloud.skywalking.context.Context
;
import
com.ai.cloud.skywalking.logging.LogManager
;
import
com.ai.cloud.skywalking.logging.Logger
;
import
com.ai.cloud.skywalking.model.ContextData
;
import
com.ai.cloud.skywalking.model.EmptyContextData
;
import
com.ai.cloud.skywalking.model.Identification
;
import
com.ai.cloud.skywalking.protocol.Span
;
import
com.ai.cloud.skywalking.util.BuriedPointMachineUtil
;
import
com.ai.cloud.skywalking.util.TraceIdGenerator
;
/**
* 暂不确定多线程的实现方式
*
* @author wusheng
*/
@Deprecated
public
class
ThreadBuriedPointSender
extends
BuriedPointInvoker
implements
IBuriedPointSender
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
ThreadBuriedPointSender
.
class
);
private
Span
span
;
public
ThreadBuriedPointSender
(
int
threadSeqId
)
{
if
(!
AuthDesc
.
isAuth
())
return
;
Span
spanData
;
// 从ThreadLocal中取出上下文
final
Span
parentSpanData
=
Context
.
getLastSpan
();
if
(
parentSpanData
==
null
)
{
spanData
=
new
Span
(
TraceIdGenerator
.
generate
(),
Config
.
SkyWalking
.
APPLICATION_CODE
,
Config
.
SkyWalking
.
USER_ID
);
}
else
{
// 如果不为空,则将当前的Context存放到上下文
spanData
=
new
Span
(
parentSpanData
.
getTraceId
(),
Config
.
SkyWalking
.
APPLICATION_CODE
,
Config
.
SkyWalking
.
USER_ID
);
spanData
.
setParentLevel
(
parentSpanData
.
getParentLevel
()
+
"."
+
parentSpanData
.
getLevelId
());
spanData
.
setLevelId
(
threadSeqId
);
}
this
.
span
=
spanData
;
}
public
ContextData
beforeSend
(
Identification
id
)
{
if
(!
AuthDesc
.
isAuth
())
return
new
EmptyContextData
();
if
(
this
.
span
==
null
)
{
return
null
;
}
span
.
setStartDate
(
System
.
currentTimeMillis
());
span
.
setViewPointId
(
id
.
getViewPoint
());
span
.
setProcessNo
(
BuriedPointMachineUtil
.
getProcessNo
());
Context
.
append
(
span
);
return
new
ContextData
(
span
);
}
public
void
afterSend
()
{
super
.
afterInvoker
();
}
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/buriedpoint/ThreadFactoryBuriedPointSender.java
已删除
100644 → 0
浏览文件 @
e1455e44
package
com.ai.cloud.skywalking.buriedpoint
;
import
com.ai.cloud.skywalking.api.IBuriedPointSender
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.context.Context
;
import
com.ai.cloud.skywalking.logging.LogManager
;
import
com.ai.cloud.skywalking.logging.Logger
;
import
com.ai.cloud.skywalking.model.ContextData
;
import
com.ai.cloud.skywalking.model.EmptyContextData
;
import
com.ai.cloud.skywalking.model.Identification
;
import
com.ai.cloud.skywalking.protocol.Span
;
import
com.ai.cloud.skywalking.util.ContextGenerator
;
/**
* 暂不确定多线程的实现方式
*
* @author wusheng
*/
@Deprecated
public
class
ThreadFactoryBuriedPointSender
extends
BuriedPointInvoker
implements
IBuriedPointSender
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
ThreadBuriedPointSender
.
class
);
public
ContextData
beforeSend
(
Identification
id
)
{
if
(!
AuthDesc
.
isAuth
())
return
new
EmptyContextData
();
Span
spanData
=
ContextGenerator
.
generateSpanFromThreadLocal
(
id
);
// 将新创建的Context存放到ThreadLocal栈中。
Context
.
append
(
spanData
);
// 并将当前的Context返回回去
return
new
ContextData
(
spanData
);
}
public
void
afterSend
()
{
super
.
afterInvoker
();
}
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/C
ontext
.java
→
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/context/C
urrentThreadSpanStack
.java
浏览文件 @
b69e61a6
...
...
@@ -5,56 +5,60 @@ import com.ai.cloud.skywalking.protocol.Span;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
C
ontext
{
public
class
C
urrentThreadSpanStack
{
private
static
ThreadLocal
<
SpanNodeStack
>
nodes
=
new
ThreadLocal
<
SpanNodeStack
>();
private
C
ontext
()
{
private
C
urrentThreadSpanStack
()
{
}
public
static
void
append
(
Span
span
)
{
public
static
void
push
(
Span
span
)
{
if
(
nodes
.
get
()
==
null
)
{
nodes
.
set
(
new
SpanNodeStack
());
}
nodes
.
get
().
push
(
span
);
}
public
static
Span
getLastSpan
()
{
public
static
Span
peek
()
{
if
(
nodes
.
get
()
==
null
)
{
return
null
;
}
return
nodes
.
get
().
peek
();
}
public
static
Span
removeLastSpan
()
{
public
static
Span
pop
()
{
if
(
nodes
.
get
()
==
null
)
{
return
null
;
}
return
nodes
.
get
().
pop
();
}
public
static
void
invalidate
AllSpan
()
{
public
static
void
invalidate
PresentSpans
()
{
if
(
nodes
.
get
()
==
null
)
{
nodes
.
set
(
new
SpanNodeStack
());
}
nodes
.
get
().
invalidate
AllCurrentSpan
();
nodes
.
get
().
invalidate
PresentSpans
();
}
static
class
SpanNodeStack
{
private
List
<
SpanNode
>
spans
=
new
ArrayList
<
SpanNode
>();
/**
* 单JVM的单线程,埋点数量一般不会超过20.
* 超过20会影响性能,不推荐使用
*/
private
List
<
SpanNode
>
spans
=
new
ArrayList
<
SpanNode
>(
20
);
public
Span
pop
()
{
Span
span
=
listPop
();
Span
span
=
spans
.
remove
(
getTopElementIdx
()).
getData
();
if
(!
isEmpty
())
{
listPeek
(
).
incrementNextSubSpanLevelId
();
spans
.
get
(
getTopElementIdx
()
).
incrementNextSubSpanLevelId
();
}
return
span
;
}
public
void
push
(
Span
span
)
{
if
(!
isEmpty
())
{
listPush
(
new
SpanNode
(
span
,
listPeek
(
).
getNextSubSpanLevelId
()));
listPush
(
new
SpanNode
(
span
,
spans
.
get
(
getTopElementIdx
()
).
getNextSubSpanLevelId
()));
}
else
{
listPush
(
new
SpanNode
(
span
));
}
...
...
@@ -65,26 +69,22 @@ public class Context {
if
(
spans
.
isEmpty
())
{
return
null
;
}
return
listPeek
(
).
getData
();
return
spans
.
get
(
getTopElementIdx
()
).
getData
();
}
public
boolean
isEmpty
()
{
return
spans
.
isEmpty
();
}
private
Span
listPop
()
{
return
spans
.
remove
(
spans
.
size
()
-
1
).
getData
();
private
int
getTopElementIdx
()
{
return
spans
.
size
()
-
1
;
}
private
SpanNode
listPeek
()
{
return
spans
.
get
(
spans
.
size
()
-
1
);
private
boolean
isEmpty
()
{
return
spans
.
isEmpty
(
);
}
private
void
listPush
(
SpanNode
spanNode
)
{
spans
.
add
(
spans
.
size
(),
spanNode
);
}
public
void
invalidate
AllCurrentSpan
()
{
public
void
invalidate
PresentSpans
()
{
for
(
SpanNode
spanNode
:
spans
)
{
spanNode
.
getData
().
setIsInvalidate
(
true
);
}
...
...
@@ -93,7 +93,7 @@ public class Context {
static
class
SpanNode
{
private
Span
data
;
//
private
int
nextSubSpanLevelId
=
0
;
public
SpanNode
(
Span
data
)
{
...
...
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
buriedpoint/BuriedPointInvok
er.java
→
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
tracer/BaseTrac
er.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.
buriedpoint
;
package
com.ai.cloud.skywalking.
tracer
;
import
com.ai.cloud.skywalking.buffer.ContextBuffer
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.conf.Config
;
import
com.ai.cloud.skywalking.context.C
ontext
;
import
com.ai.cloud.skywalking.context.C
urrentThreadSpanStack
;
import
com.ai.cloud.skywalking.logging.LogManager
;
import
com.ai.cloud.skywalking.logging.Logger
;
import
com.ai.cloud.skywalking.model.ContextData
;
...
...
@@ -14,17 +14,17 @@ import java.util.Set;
import
static
com
.
ai
.
cloud
.
skywalking
.
conf
.
Config
.
BuriedPoint
.
EXCLUSIVE_EXCEPTIONS
;
public
class
BuriedPointInvok
er
{
public
abstract
class
BaseTrac
er
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
B
uriedPointInvok
er
.
class
);
.
getLogger
(
B
aseTrac
er
.
class
);
private
static
String
EXCEPTION_SPLIT
=
","
;
private
static
Set
<
String
>
exclusiveExceptionSet
=
null
;
p
ublic
ContextData
beforeInvoker
(
Span
spanData
)
{
p
rotected
ContextData
traceBeforeInvoke
(
Span
spanData
)
{
if
(
Config
.
BuriedPoint
.
PRINTF
)
{
logger
.
debug
(
"TraceId:"
+
spanData
.
getTraceId
()
+
"\tviewpointId:"
+
spanData
.
getViewPointId
()
...
...
@@ -33,18 +33,18 @@ public class BuriedPointInvoker {
}
// 将新创建的Context存放到ThreadLocal栈中。
C
ontext
.
append
(
spanData
);
C
urrentThreadSpanStack
.
push
(
spanData
);
// 并将当前的Context返回回去
return
new
ContextData
(
spanData
);
}
p
ublic
void
afterInvoker
()
{
p
rotected
void
traceAfterInvoke
()
{
try
{
if
(!
AuthDesc
.
isAuth
())
return
;
// 弹出上下文的栈顶中的元素
Span
spanData
=
C
ontext
.
removeLastSpan
();
Span
spanData
=
C
urrentThreadSpanStack
.
pop
();
if
(
spanData
==
null
||
spanData
.
isInvalidate
())
{
return
;
}
...
...
@@ -67,7 +67,7 @@ public class BuriedPointInvoker {
}
}
p
ublic
void
handle
Exception
(
Throwable
th
)
{
p
rotected
void
occur
Exception
(
Throwable
th
)
{
try
{
if
(
exclusiveExceptionSet
==
null
)
{
Set
<
String
>
exclusiveExceptions
=
new
HashSet
<
String
>();
...
...
@@ -80,7 +80,7 @@ public class BuriedPointInvoker {
exclusiveExceptionSet
=
exclusiveExceptions
;
}
Span
span
=
C
ontext
.
getLastSpan
();
Span
span
=
C
urrentThreadSpanStack
.
peek
();
span
.
handleException
(
th
,
exclusiveExceptionSet
,
Config
.
BuriedPoint
.
MAX_EXCEPTION_STACK_LENGTH
);
}
catch
(
Throwable
t
)
{
...
...
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
buriedpoint/LocalBuriedPointSend
er.java
→
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
tracer/LocalMethodTrac
er.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.
buriedpoint
;
package
com.ai.cloud.skywalking.
tracer
;
import
com.ai.cloud.skywalking.api.IBuriedPointSender
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.logging.LogManager
;
import
com.ai.cloud.skywalking.logging.Logger
;
...
...
@@ -10,27 +9,32 @@ import com.ai.cloud.skywalking.model.Identification;
import
com.ai.cloud.skywalking.protocol.Span
;
import
com.ai.cloud.skywalking.util.ContextGenerator
;
public
class
LocalBuriedPointSender
extends
BuriedPointInvoker
implements
IBuriedPointSender
{
public
class
LocalMethodTracer
extends
BaseTracer
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
Local
BuriedPointSend
er
.
class
);
.
getLogger
(
Local
MethodTrac
er
.
class
);
public
ContextData
beforeSend
(
Identification
id
)
{
public
ContextData
traceBeforeInvoke
(
Identification
id
)
{
try
{
if
(!
AuthDesc
.
isAuth
())
return
new
EmptyContextData
();
Span
spanData
=
ContextGenerator
.
generateSpanFromThreadLocal
(
id
);
return
super
.
beforeInvoker
(
spanData
);
return
super
.
traceBeforeInvoke
(
spanData
);
}
catch
(
Throwable
t
)
{
logger
.
error
(
t
.
getMessage
(),
t
);
return
new
EmptyContextData
();
}
}
public
void
afterSend
()
{
super
.
afterInvoker
();
public
void
traceAfterInvoke
()
{
super
.
traceAfterInvoke
();
}
public
void
occurException
(
Throwable
th
){
super
.
occurException
(
th
);
}
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
buriedpoint/RPCBuriedPointSend
er.java
→
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
tracer/RPCClientTrac
er.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.
buriedpoint
;
package
com.ai.cloud.skywalking.
tracer
;
import
com.ai.cloud.skywalking.api.IBuriedPointSender
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.context.C
ontext
;
import
com.ai.cloud.skywalking.context.C
urrentThreadSpanStack
;
import
com.ai.cloud.skywalking.logging.LogManager
;
import
com.ai.cloud.skywalking.logging.Logger
;
import
com.ai.cloud.skywalking.model.ContextData
;
...
...
@@ -12,13 +11,12 @@ import com.ai.cloud.skywalking.protocol.Span;
import
com.ai.cloud.skywalking.protocol.SpanType
;
import
com.ai.cloud.skywalking.util.ContextGenerator
;
public
class
RPC
BuriedPointSender
extends
BuriedPointInvoker
implements
IBuriedPointSender
{
public
class
RPC
ClientTracer
extends
BaseTracer
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
RPC
BuriedPointSend
er
.
class
);
.
getLogger
(
RPC
ClientTrac
er
.
class
);
@Override
public
ContextData
beforeSend
(
Identification
id
)
{
public
ContextData
traceBeforeInvoke
(
Identification
id
)
{
try
{
if
(!
AuthDesc
.
isAuth
())
return
new
EmptyContextData
();
...
...
@@ -27,7 +25,7 @@ public class RPCBuriedPointSender extends BuriedPointInvoker implements IBuriedP
//设置SpanType的类型
spanData
.
setSpanType
(
SpanType
.
RPC_CLIENT
);
C
ontext
.
append
(
spanData
);
C
urrentThreadSpanStack
.
push
(
spanData
);
return
new
ContextData
(
spanData
.
getTraceId
(),
generateSubParentLevelId
(
spanData
),
spanData
.
getCallType
());
}
catch
(
Throwable
t
)
{
...
...
@@ -36,6 +34,15 @@ public class RPCBuriedPointSender extends BuriedPointInvoker implements IBuriedP
}
}
public
void
traceAfterInvoke
(){
super
.
traceAfterInvoke
();
}
public
void
occurException
(
Throwable
th
){
super
.
occurException
(
th
);
}
private
String
generateSubParentLevelId
(
Span
spanData
)
{
if
(
spanData
.
getParentLevel
()
==
null
)
{
return
spanData
.
getLevelId
()
+
""
;
...
...
@@ -44,8 +51,4 @@ public class RPCBuriedPointSender extends BuriedPointInvoker implements IBuriedP
return
spanData
.
getParentLevel
()
+
"."
+
spanData
.
getLevelId
();
}
@Override
public
void
afterSend
()
{
super
.
afterInvoker
();
}
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
buriedpoint/RPCBuriedPointReceiv
er.java
→
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/
tracer/RPCServerTrac
er.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.
buriedpoint
;
package
com.ai.cloud.skywalking.
tracer
;
import
com.ai.cloud.skywalking.api.IBuriedPointReceiver
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.context.C
ontext
;
import
com.ai.cloud.skywalking.context.C
urrentThreadSpanStack
;
import
com.ai.cloud.skywalking.logging.LogManager
;
import
com.ai.cloud.skywalking.logging.Logger
;
import
com.ai.cloud.skywalking.model.ContextData
;
...
...
@@ -11,17 +10,12 @@ import com.ai.cloud.skywalking.protocol.Span;
import
com.ai.cloud.skywalking.protocol.SpanType
;
import
com.ai.cloud.skywalking.util.ContextGenerator
;
public
class
RPCBuriedPointReceiver
extends
BuriedPointInvoker
implements
IBuriedPointReceiver
{
public
class
RPCServerTracer
extends
BaseTracer
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
RPC
BuriedPointReceiv
er
.
class
);
.
getLogger
(
RPC
ServerTrac
er
.
class
);
public
void
afterReceived
()
{
super
.
afterInvoker
();
}
public
void
beforeReceived
(
ContextData
context
,
Identification
id
)
{
public
void
traceBeforeInvoke
(
ContextData
context
,
Identification
id
)
{
try
{
if
(!
AuthDesc
.
isAuth
())
return
;
...
...
@@ -33,15 +27,24 @@ public class RPCBuriedPointReceiver extends BuriedPointInvoker
invalidateAllSpanIfIsNotFirstSpan
(
spanData
);
super
.
beforeInvoker
(
spanData
);
super
.
traceBeforeInvoke
(
spanData
);
}
catch
(
Throwable
t
)
{
logger
.
error
(
t
.
getMessage
(),
t
);
}
}
public
void
traceAfterInvoke
(){
super
.
traceAfterInvoke
();
}
public
void
occurException
(
Throwable
th
){
super
.
occurException
(
th
);
}
private
void
invalidateAllSpanIfIsNotFirstSpan
(
Span
spanData
)
{
if
(!
C
ontext
.
getLastSpan
().
getTraceId
().
equals
(
spanData
.
getTraceId
()))
{
C
ontext
.
invalidateAllSpan
();
if
(!
C
urrentThreadSpanStack
.
peek
().
getTraceId
().
equals
(
spanData
.
getTraceId
()))
{
C
urrentThreadSpanStack
.
invalidatePresentSpans
();
}
}
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/util/ContextGenerator.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.util
;
import
com.ai.cloud.skywalking.conf.Config
;
import
com.ai.cloud.skywalking.context.C
ontext
;
import
com.ai.cloud.skywalking.context.C
urrentThreadSpanStack
;
import
com.ai.cloud.skywalking.model.ContextData
;
import
com.ai.cloud.skywalking.model.Identification
;
import
com.ai.cloud.skywalking.protocol.Span
;
...
...
@@ -57,7 +57,7 @@ public final class ContextGenerator {
private
static
Span
getSpanFromThreadLocal
()
{
Span
span
;
// 1.获取Context,从ThreadLocal栈中获取中
final
Span
parentSpan
=
C
ontext
.
getLastSpan
();
final
Span
parentSpan
=
C
urrentThreadSpanStack
.
peek
();
// 2 校验Context,Context是否存在
if
(
parentSpan
==
null
)
{
// 不存在,新创建一个Context
...
...
skywalking-collector/skywalking-api/src/test/java/test/ai/cloud/api/TimeTest.java
浏览文件 @
b69e61a6
...
...
@@ -2,21 +2,21 @@ package test.ai.cloud.api;
import
org.junit.Test
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
com.ai.cloud.skywalking.model.Identification.IdentificationBuilder
;
public
class
TimeTest
{
@Test
public
void
test
(){
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
RPC
ClientTracer
sender
=
new
RPCClientTrac
er
();
long
start
=
System
.
currentTimeMillis
();
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
IdentificationBuilder
builder
=
Identification
.
newBuilder
()
.
viewPoint
(
"1111"
);
sender
.
beforeSend
(
builder
.
build
());
sender
.
afterSend
();
sender
.
traceBeforeInvoke
(
builder
.
build
());
sender
.
traceAfterInvoke
();
}
long
end
=
System
.
currentTimeMillis
();
System
.
out
.
println
(
end
-
start
+
"ms"
);
...
...
skywalking-collector/skywalking-sdk-plugin/dubbo-plugin/src/main/java/com/ai/cloud/skywalking/plugin/dubbo/SWDubboEnhanceFilter.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.plugin.dubbo
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointReceiv
er
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCServerTrac
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.model.ContextData
;
import
com.ai.cloud.skywalking.model.Identification
;
...
...
@@ -22,9 +22,9 @@ public class SWDubboEnhanceFilter implements Filter {
boolean
isConsumer
=
context
.
isConsumerSide
();
Result
result
=
null
;
if
(
isConsumer
)
{
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
RPC
ClientTracer
clientTracer
=
new
RPCClientTrac
er
();
ContextData
contextData
=
sender
.
beforeSend
(
createIdentification
(
invoker
,
invocation
));
ContextData
contextData
=
clientTracer
.
traceBeforeInvoke
(
createIdentification
(
invoker
,
invocation
));
String
contextDataStr
=
contextData
.
toString
();
//追加参数
...
...
@@ -53,18 +53,18 @@ public class SWDubboEnhanceFilter implements Filter {
result
=
invoker
.
invoke
(
invocation
);
//结果是否包含异常
if
(
result
.
getException
()
!=
null
)
{
sender
.
handle
Exception
(
result
.
getException
());
clientTracer
.
occur
Exception
(
result
.
getException
());
}
}
catch
(
RpcException
e
)
{
// 自身异常
sender
.
handle
Exception
(
e
);
clientTracer
.
occur
Exception
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
clientTracer
.
traceAfterInvoke
();
}
}
else
{
// 读取参数
RPC
BuriedPointReceiver
rpcBuriedPointReceiver
=
new
RPCBuriedPointReceiv
er
();
RPC
ServerTracer
serverTracer
=
new
RPCServerTrac
er
();
String
contextDataStr
;
if
(!
BugFixAcitve
.
isActive
)
{
...
...
@@ -78,21 +78,21 @@ public class SWDubboEnhanceFilter implements Filter {
contextData
=
new
ContextData
(
contextDataStr
);
}
rpcBuriedPointReceiver
.
beforeReceived
(
contextData
,
createIdentification
(
invoker
,
invocation
));
serverTracer
.
traceBeforeInvoke
(
contextData
,
createIdentification
(
invoker
,
invocation
));
try
{
//执行结果
result
=
invoker
.
invoke
(
invocation
);
//结果是否包含异常
if
(
result
.
getException
()
!=
null
)
{
rpcBuriedPointReceiver
.
handle
Exception
(
result
.
getException
());
serverTracer
.
occur
Exception
(
result
.
getException
());
}
}
catch
(
RpcException
e
)
{
// 自身异常
rpcBuriedPointReceiver
.
handle
Exception
(
e
);
serverTracer
.
occur
Exception
(
e
);
throw
e
;
}
finally
{
rpcBuriedPointReceiver
.
afterReceived
();
serverTracer
.
traceAfterInvoke
();
}
}
...
...
skywalking-collector/skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java
浏览文件 @
b69e61a6
...
...
@@ -3,7 +3,7 @@ package org.skywalking.httpClient.v4.plugin;
import
org.apache.http.HttpHost
;
import
org.apache.http.HttpRequest
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.ai.cloud.skywalking.plugin.interceptor.enhance.ConstructorInvokeContext
;
...
...
@@ -17,7 +17,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce
*/
public
static
String
TRACE_HEAD_NAME
=
"SkyWalking-TRACING-NAME"
;
private
static
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
private
static
RPC
ClientTracer
clientTracer
=
new
RPCClientTrac
er
();
@Override
public
void
onConstruct
(
EnhancedClassInstanceContext
context
,
...
...
@@ -38,7 +38,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce
.
setHeader
(
TRACE_HEAD_NAME
,
"ContextData="
+
sender
.
beforeSend
(
+
clientTracer
.
traceBeforeInvoke
(
Identification
.
newBuilder
()
.
viewPoint
(
...
...
@@ -58,7 +58,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce
// illegal args, can't trace. ignore.
return
ret
;
}
sender
.
afterSend
();
clientTracer
.
traceAfterInvoke
();
return
ret
;
}
...
...
@@ -71,7 +71,7 @@ public class HttpClientExecuteInterceptor implements IntanceMethodsAroundInterce
// illegal args, can't trace. ignore.
return
;
}
sender
.
handle
Exception
(
t
);
clientTracer
.
occur
Exception
(
t
);
}
}
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/CallableStatementTracing.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
java.sql.SQLException
;
...
...
@@ -11,13 +11,13 @@ import java.sql.SQLException;
* @author wusheng
*/
public
class
CallableStatementTracing
{
private
static
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
private
static
RPC
ClientTracer
clientTracer
=
new
RPCClientTrac
er
();
public
static
<
R
>
R
execute
(
java
.
sql
.
CallableStatement
realStatement
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
clientTracer
.
traceBeforeInvoke
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
...
...
@@ -27,10 +27,10 @@ public class CallableStatementTracing {
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handle
Exception
(
e
);
clientTracer
.
occur
Exception
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
clientTracer
.
traceAfterInvoke
();
}
}
...
...
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/ConnectionTracing.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
java.sql.SQLException
;
...
...
@@ -11,13 +11,13 @@ import java.sql.SQLException;
* @author wusheng
*/
public
class
ConnectionTracing
{
private
static
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
private
static
RPC
ClientTracer
clientTracer
=
new
RPCClientTrac
er
();
public
static
<
R
>
R
execute
(
java
.
sql
.
Connection
realConnection
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
clientTracer
.
traceBeforeInvoke
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
...
...
@@ -27,10 +27,10 @@ public class ConnectionTracing {
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realConnection
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handle
Exception
(
e
);
clientTracer
.
occur
Exception
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
clientTracer
.
traceAfterInvoke
();
}
}
...
...
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/PreparedStatementTracing.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
java.sql.SQLException
;
...
...
@@ -12,13 +12,13 @@ import java.sql.SQLException;
*
*/
public
class
PreparedStatementTracing
{
private
static
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
private
static
RPC
ClientTracer
clientTracer
=
new
RPCClientTrac
er
();
public
static
<
R
>
R
execute
(
java
.
sql
.
PreparedStatement
realStatement
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
clientTracer
.
traceBeforeInvoke
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
...
...
@@ -28,10 +28,10 @@ public class PreparedStatementTracing {
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handle
Exception
(
e
);
clientTracer
.
occur
Exception
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
clientTracer
.
traceAfterInvoke
();
}
}
...
...
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/StatementTracing.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.plugin.jdbc
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
java.sql.SQLException
;
...
...
@@ -11,13 +11,13 @@ import java.sql.SQLException;
* @author wusheng
*/
public
class
StatementTracing
{
private
static
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
private
static
RPC
ClientTracer
clientTracer
=
new
RPCClientTrac
er
();
public
static
<
R
>
R
execute
(
java
.
sql
.
Statement
realStatement
,
String
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
sender
.
beforeSend
(
Identification
clientTracer
.
traceBeforeInvoke
(
Identification
.
newBuilder
()
.
viewPoint
(
connectInfo
)
.
businessKey
(
...
...
@@ -27,10 +27,10 @@ public class StatementTracing {
:
":"
+
sql
)).
spanType
(
JDBCBuriedPointType
.
instance
()).
build
());
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
sender
.
handle
Exception
(
e
);
clientTracer
.
occur
Exception
(
e
);
throw
e
;
}
finally
{
sender
.
afterSend
();
clientTracer
.
traceAfterInvoke
();
}
}
...
...
skywalking-collector/skywalking-sdk-plugin/jedis-2.x-plugin/src/main/java/com/ai/cloud/skywalking/jedis/v2/plugin/JedisBaseInterceptor.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.jedis.v2.plugin
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.RPCClientTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext
;
import
com.ai.cloud.skywalking.plugin.interceptor.assist.SimpleObjectFirstInvokeInterceptor
;
...
...
@@ -10,7 +10,7 @@ import com.ai.cloud.skywalking.plugin.interceptor.enhance.MethodInterceptResult;
public
abstract
class
JedisBaseInterceptor
extends
SimpleObjectFirstInvokeInterceptor
{
protected
static
final
String
REDIS_CONN_INFO_KEY
=
"redisClusterConnInfo"
;
private
static
RPC
BuriedPointSender
sender
=
new
RPCBuriedPointSend
er
();
private
static
RPC
ClientTracer
clientTracer
=
new
RPCClientTrac
er
();
@Override
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
...
...
@@ -30,20 +30,20 @@ public abstract class JedisBaseInterceptor extends SimpleObjectFirstInvokeInterc
builder
.
businessKey
(
"key="
+
interceptorContext
.
allArguments
()[
0
]);
}
sender
.
beforeSend
(
builder
.
build
());
clientTracer
.
traceBeforeInvoke
(
builder
.
build
());
}
}
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
if
(
this
.
isLastAfterMethod
(
context
))
{
sender
.
afterSend
();
clientTracer
.
traceAfterInvoke
();
}
return
ret
;
}
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
sender
.
handle
Exception
(
t
);
clientTracer
.
occur
Exception
(
t
);
}
}
skywalking-collector/skywalking-sdk-plugin/spring-plugin/src/main/java/com/ai/cloud/skywalking/plugin/spring/TracingAspect.java
浏览文件 @
b69e61a6
package
com.ai.cloud.skywalking.plugin.spring
;
import
com.ai.cloud.skywalking.
buriedpoint.LocalBuriedPointSend
er
;
import
com.ai.cloud.skywalking.
tracer.LocalMethodTrac
er
;
import
com.ai.cloud.skywalking.model.Identification
;
import
org.aspectj.lang.ProceedingJoinPoint
;
public
class
TracingAspect
{
public
Object
doTracing
(
ProceedingJoinPoint
proceedingJoinPoint
)
throws
Throwable
{
Local
BuriedPointSender
_sender
=
new
LocalBuriedPointSend
er
();
Local
MethodTracer
localMethodTracer
=
new
LocalMethodTrac
er
();
try
{
_sender
.
beforeSend
(
Identification
.
newBuilder
().
viewPoint
(
proceedingJoinPoint
.
getSignature
().
toString
()).
spanType
(
SpringBuriedPointType
.
instance
()).
build
());
localMethodTracer
.
traceBeforeInvoke
(
Identification
.
newBuilder
().
viewPoint
(
proceedingJoinPoint
.
getSignature
().
toString
()).
spanType
(
SpringBuriedPointType
.
instance
()).
build
());
return
proceedingJoinPoint
.
proceed
();
}
catch
(
Throwable
e
)
{
_sender
.
handle
Exception
(
e
);
localMethodTracer
.
occur
Exception
(
e
);
throw
e
;
}
finally
{
_sender
.
afterSend
();
localMethodTracer
.
traceAfterInvoke
();
}
}
}
skywalking-collector/skywalking-sdk-plugin/web-plugin/src/main/java/com/ai/cloud/skywalking/plugin/web/SkyWalkingFilter.java
浏览文件 @
b69e61a6
...
...
@@ -2,7 +2,7 @@ package com.ai.cloud.skywalking.plugin.web;
import
com.ai.cloud.skywalking.api.Tracing
;
import
com.ai.cloud.skywalking.
buriedpoint.RPCBuriedPointReceiv
er
;
import
com.ai.cloud.skywalking.
tracer.RPCServerTrac
er
;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.model.ContextData
;
import
com.ai.cloud.skywalking.model.Identification
;
...
...
@@ -32,7 +32,7 @@ public class SkyWalkingFilter implements Filter {
return
;
}
RPC
BuriedPointReceiver
receiv
er
=
null
;
RPC
ServerTracer
trac
er
=
null
;
try
{
HttpServletRequest
request
=
(
HttpServletRequest
)
servletRequest
;
String
tracingHeaderValue
=
request
.
getHeader
(
tracingName
);
...
...
@@ -51,17 +51,17 @@ public class SkyWalkingFilter implements Filter {
contextData
=
new
ContextData
(
contextDataStr
);
}
}
receiver
=
new
RPCBuriedPointReceiv
er
();
receiver
.
beforeReceived
(
contextData
,
generateIdentification
(
request
));
tracer
=
new
RPCServerTrac
er
();
tracer
.
traceBeforeInvoke
(
contextData
,
generateIdentification
(
request
));
filterChain
.
doFilter
(
servletRequest
,
servletResponse
);
HttpServletResponse
httpServletResponse
=
(
HttpServletResponse
)
servletResponse
;
httpServletResponse
.
addHeader
(
TRACE_ID_HEADER_NAME
,
Tracing
.
getTraceId
());
}
catch
(
Throwable
e
)
{
receiver
.
handle
Exception
(
e
);
tracer
.
occur
Exception
(
e
);
throw
new
ServletException
(
e
);
}
finally
{
receiver
.
afterReceived
();
tracer
.
traceAfterInvoke
();
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录