Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
javalover123888
SkyWalking
提交
f4f0d1cb
S
SkyWalking
项目概览
javalover123888
/
SkyWalking
与 Fork 源项目一致
Fork自
山不在高_有仙则灵 / SkyWalking
通知
2
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,发现更多精彩内容 >>
提交
f4f0d1cb
编写于
8月 09, 2017
作者:
wu-sheng
提交者:
GitHub
8月 09, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' into feature/336
上级
9009baa6
303cc1ca
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
141 addition
and
36 deletion
+141
-36
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextCarrier.java
...org/skywalking/apm/agent/core/context/ContextCarrier.java
+31
-17
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextSnapshot.java
...rg/skywalking/apm/agent/core/context/ContextSnapshot.java
+12
-0
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracingContext.java
...org/skywalking/apm/agent/core/context/TracingContext.java
+11
-1
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/TraceSegment.java
...skywalking/apm/agent/core/context/trace/TraceSegment.java
+4
-0
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/TraceSegmentRef.java
...walking/apm/agent/core/context/trace/TraceSegmentRef.java
+15
-5
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/match/HierarchyMatch.java
...kywalking/apm/agent/core/plugin/match/HierarchyMatch.java
+37
-3
apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTest.java
...skywalking/apm/agent/core/context/ContextManagerTest.java
+2
-2
apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
...org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
+3
-2
apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
...alking/apm/plugin/motan/MotanProviderInterceptorTest.java
+2
-1
apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java
...kywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java
+2
-1
apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java
...kywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java
+2
-1
apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java
...kywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java
+2
-1
apm-sniffer/apm-test-tools/src/main/java/org/skywalking/apm/agent/test/helper/SegmentRefHelper.java
...rg/skywalking/apm/agent/test/helper/SegmentRefHelper.java
+9
-0
apm-sniffer/apm-test-tools/src/main/java/org/skywalking/apm/agent/test/tools/SegmentRefAssert.java
...org/skywalking/apm/agent/test/tools/SegmentRefAssert.java
+5
-0
apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
.../activation/opentracing/SkywalkingSpanActivationTest.java
+4
-2
未找到文件。
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextCarrier.java
浏览文件 @
f4f0d1cb
...
...
@@ -23,7 +23,9 @@ public class ContextCarrier implements Serializable {
private
int
spanId
=
-
1
;
private
int
applicationInstanceId
=
DictionaryUtil
.
nullValue
();
private
int
parentApplicationInstanceId
=
DictionaryUtil
.
nullValue
();
private
int
entryApplicationInstanceId
=
DictionaryUtil
.
nullValue
();
private
String
peerHost
;
...
...
@@ -47,11 +49,12 @@ public class ContextCarrier implements Serializable {
return
StringUtil
.
join
(
'|'
,
this
.
getTraceSegmentId
().
toBase64
(),
this
.
getSpanId
()
+
""
,
this
.
getApplicationInstanceId
()
+
""
,
this
.
getParentApplicationInstanceId
()
+
""
,
this
.
getEntryApplicationInstanceId
()
+
""
,
this
.
getPeerHost
(),
this
.
getEntryOperationName
(),
this
.
getParentOperationName
(),
this
.
getPrimaryDistributedTraceId
());
this
.
getPrimaryDistributedTraceId
()
.
toBase64
()
);
}
else
{
return
""
;
}
...
...
@@ -64,16 +67,17 @@ public class ContextCarrier implements Serializable {
*/
public
ContextCarrier
deserialize
(
String
text
)
{
if
(
text
!=
null
)
{
String
[]
parts
=
text
.
split
(
"\\|"
,
7
);
if
(
parts
.
length
==
7
)
{
String
[]
parts
=
text
.
split
(
"\\|"
,
8
);
if
(
parts
.
length
==
8
)
{
try
{
this
.
traceSegmentId
=
new
ID
(
parts
[
0
]);
this
.
spanId
=
Integer
.
parseInt
(
parts
[
1
]);
this
.
applicationInstanceId
=
Integer
.
parseInt
(
parts
[
2
]);
this
.
peerHost
=
parts
[
3
];
this
.
entryOperationName
=
parts
[
4
];
this
.
parentOperationName
=
parts
[
5
];
this
.
primaryDistributedTraceId
=
new
PropagatedTraceId
(
parts
[
6
]);
this
.
parentApplicationInstanceId
=
Integer
.
parseInt
(
parts
[
2
]);
this
.
entryApplicationInstanceId
=
Integer
.
parseInt
(
parts
[
3
]);
this
.
peerHost
=
parts
[
4
];
this
.
entryOperationName
=
parts
[
5
];
this
.
parentOperationName
=
parts
[
6
];
this
.
primaryDistributedTraceId
=
new
PropagatedTraceId
(
parts
[
7
]);
}
catch
(
NumberFormatException
e
)
{
}
...
...
@@ -90,7 +94,8 @@ public class ContextCarrier implements Serializable {
public
boolean
isValid
()
{
return
traceSegmentId
!=
null
&&
getSpanId
()
>
-
1
&&
applicationInstanceId
!=
DictionaryUtil
.
nullValue
()
&&
parentApplicationInstanceId
!=
DictionaryUtil
.
nullValue
()
&&
entryApplicationInstanceId
!=
DictionaryUtil
.
nullValue
()
&&
!
StringUtil
.
isEmpty
(
peerHost
)
&&
!
StringUtil
.
isEmpty
(
entryOperationName
)
&&
!
StringUtil
.
isEmpty
(
parentOperationName
)
...
...
@@ -133,12 +138,12 @@ public class ContextCarrier implements Serializable {
this
.
spanId
=
spanId
;
}
public
int
getApplicationInstanceId
()
{
return
a
pplicationInstanceId
;
public
int
get
Parent
ApplicationInstanceId
()
{
return
parentA
pplicationInstanceId
;
}
void
set
ApplicationInstanceId
(
int
a
pplicationInstanceId
)
{
this
.
applicationInstanceId
=
a
pplicationInstanceId
;
void
set
ParentApplicationInstanceId
(
int
parentA
pplicationInstanceId
)
{
this
.
parentApplicationInstanceId
=
parentA
pplicationInstanceId
;
}
public
String
getPeerHost
()
{
...
...
@@ -161,11 +166,20 @@ public class ContextCarrier implements Serializable {
this
.
primaryDistributedTraceId
=
distributedTraceIds
.
get
(
0
);
}
private
String
getPrimaryDistributedTraceId
()
{
return
primaryDistributedTraceId
.
toBase64
()
;
private
DistributedTraceId
getPrimaryDistributedTraceId
()
{
return
primaryDistributedTraceId
;
}
public
String
getParentOperationName
()
{
return
parentOperationName
;
}
public
int
getEntryApplicationInstanceId
()
{
return
entryApplicationInstanceId
;
}
public
void
setEntryApplicationInstanceId
(
int
entryApplicationInstanceId
)
{
this
.
entryApplicationInstanceId
=
entryApplicationInstanceId
;
}
}
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextSnapshot.java
浏览文件 @
f4f0d1cb
...
...
@@ -3,6 +3,7 @@ package org.skywalking.apm.agent.core.context;
import
java.util.List
;
import
org.skywalking.apm.agent.core.context.ids.DistributedTraceId
;
import
org.skywalking.apm.agent.core.context.ids.ID
;
import
org.skywalking.apm.agent.core.dictionary.DictionaryUtil
;
import
org.skywalking.apm.util.StringUtil
;
/**
...
...
@@ -31,6 +32,8 @@ public class ContextSnapshot {
*/
private
DistributedTraceId
primaryDistributedTraceId
;
private
int
entryApplicationInstanceId
=
DictionaryUtil
.
nullValue
();
ContextSnapshot
(
ID
traceSegmentId
,
int
spanId
,
List
<
DistributedTraceId
>
distributedTraceIds
)
{
this
.
traceSegmentId
=
traceSegmentId
;
...
...
@@ -75,6 +78,7 @@ public class ContextSnapshot {
public
boolean
isValid
()
{
return
traceSegmentId
!=
null
&&
spanId
>
-
1
&&
entryApplicationInstanceId
!=
DictionaryUtil
.
nullValue
()
&&
primaryDistributedTraceId
!=
null
&&
!
StringUtil
.
isEmpty
(
entryOperationName
)
&&
!
StringUtil
.
isEmpty
(
parentOperationName
);
...
...
@@ -83,4 +87,12 @@ public class ContextSnapshot {
public
String
getEntryOperationName
()
{
return
entryOperationName
;
}
public
void
setEntryApplicationInstanceId
(
int
entryApplicationInstanceId
)
{
this
.
entryApplicationInstanceId
=
entryApplicationInstanceId
;
}
public
int
getEntryApplicationInstanceId
()
{
return
entryApplicationInstanceId
;
}
}
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracingContext.java
浏览文件 @
f4f0d1cb
...
...
@@ -84,7 +84,7 @@ public class TracingContext implements AbstractTracerContext {
carrier
.
setTraceSegmentId
(
this
.
segment
.
getTraceSegmentId
());
carrier
.
setSpanId
(
span
.
getSpanId
());
carrier
.
set
ApplicationInstanceId
(
segment
.
getApplication
Id
());
carrier
.
set
ParentApplicationInstanceId
(
segment
.
getApplicationInstance
Id
());
if
(
DictionaryUtil
.
isNull
(
exitSpan
.
getPeerId
()))
{
carrier
.
setPeerHost
(
exitSpan
.
getPeer
());
...
...
@@ -94,15 +94,20 @@ public class TracingContext implements AbstractTracerContext {
List
<
TraceSegmentRef
>
refs
=
this
.
segment
.
getRefs
();
int
operationId
;
String
operationName
;
int
entryApplicationInstanceId
;
if
(
refs
!=
null
&&
refs
.
size
()
>
0
)
{
TraceSegmentRef
ref
=
refs
.
get
(
0
);
operationId
=
ref
.
getEntryOperationId
();
operationName
=
ref
.
getEntryOperationName
();
entryApplicationInstanceId
=
ref
.
getEntryApplicationInstanceId
();
}
else
{
AbstractTracingSpan
firstSpan
=
first
();
operationId
=
firstSpan
.
getOperationId
();
operationName
=
firstSpan
.
getOperationName
();
entryApplicationInstanceId
=
this
.
segment
.
getApplicationInstanceId
();
}
carrier
.
setEntryApplicationInstanceId
(
entryApplicationInstanceId
);
if
(
operationId
==
DictionaryUtil
.
nullValue
())
{
carrier
.
setEntryOperationName
(
operationName
);
}
else
{
...
...
@@ -145,15 +150,20 @@ public class TracingContext implements AbstractTracerContext {
segment
.
getRelatedGlobalTraces
());
int
entryOperationId
;
String
entryOperationName
;
int
entryApplicationInstanceId
;
AbstractTracingSpan
firstSpan
=
first
();
if
(
refs
!=
null
&&
refs
.
size
()
>
0
)
{
TraceSegmentRef
ref
=
refs
.
get
(
0
);
entryOperationId
=
ref
.
getEntryOperationId
();
entryOperationName
=
ref
.
getEntryOperationName
();
entryApplicationInstanceId
=
ref
.
getEntryApplicationInstanceId
();
}
else
{
entryOperationId
=
firstSpan
.
getOperationId
();
entryOperationName
=
firstSpan
.
getOperationName
();
entryApplicationInstanceId
=
this
.
segment
.
getApplicationInstanceId
();
}
snapshot
.
setEntryApplicationInstanceId
(
entryApplicationInstanceId
);
if
(
entryOperationId
==
DictionaryUtil
.
nullValue
())
{
snapshot
.
setEntryOperationName
(
entryOperationName
);
}
else
{
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/TraceSegment.java
浏览文件 @
f4f0d1cb
...
...
@@ -191,4 +191,8 @@ public class TraceSegment {
", relatedGlobalTraces="
+
relatedGlobalTraces
+
'}'
;
}
public
int
getApplicationInstanceId
()
{
return
RemoteDownstreamConfig
.
Agent
.
APPLICATION_INSTANCE_ID
;
}
}
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/TraceSegmentRef.java
浏览文件 @
f4f0d1cb
package
org.skywalking.apm.agent.core.context.trace
;
import
org.skywalking.apm.agent.core.conf.RemoteDownstreamConfig
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextSnapshot
;
import
org.skywalking.apm.agent.core.context.ids.ID
;
...
...
@@ -20,11 +21,13 @@ public class TraceSegmentRef {
private
int
spanId
=
-
1
;
private
int
applicationInstanceId
;
private
int
peerId
=
DictionaryUtil
.
nullValue
()
;
private
String
peerHost
;
private
int
peerId
=
DictionaryUtil
.
nullValue
();
private
int
entryApplicationInstanceId
=
DictionaryUtil
.
nullValue
();
private
int
parentApplicationInstanceId
=
DictionaryUtil
.
nullValue
();
private
String
entryOperationName
;
...
...
@@ -43,7 +46,8 @@ public class TraceSegmentRef {
this
.
type
=
SegmentRefType
.
CROSS_PROCESS
;
this
.
traceSegmentId
=
carrier
.
getTraceSegmentId
();
this
.
spanId
=
carrier
.
getSpanId
();
this
.
applicationInstanceId
=
carrier
.
getApplicationInstanceId
();
this
.
parentApplicationInstanceId
=
carrier
.
getParentApplicationInstanceId
();
this
.
entryApplicationInstanceId
=
carrier
.
getEntryApplicationInstanceId
();
String
host
=
carrier
.
getPeerHost
();
if
(
host
.
charAt
(
0
)
==
'#'
)
{
this
.
peerHost
=
host
.
substring
(
1
);
...
...
@@ -68,6 +72,8 @@ public class TraceSegmentRef {
this
.
type
=
SegmentRefType
.
CROSS_THREAD
;
this
.
traceSegmentId
=
snapshot
.
getTraceSegmentId
();
this
.
spanId
=
snapshot
.
getSpanId
();
this
.
parentApplicationInstanceId
=
RemoteDownstreamConfig
.
Agent
.
APPLICATION_INSTANCE_ID
;
this
.
entryApplicationInstanceId
=
snapshot
.
getEntryApplicationInstanceId
();
String
entryOperationName
=
snapshot
.
getEntryOperationName
();
if
(
entryOperationName
.
charAt
(
0
)
==
'#'
)
{
this
.
entryOperationName
=
entryOperationName
.
substring
(
1
);
...
...
@@ -90,11 +96,15 @@ public class TraceSegmentRef {
return
entryOperationId
;
}
public
int
getEntryApplicationInstanceId
()
{
return
entryApplicationInstanceId
;
}
public
TraceSegmentReference
transform
()
{
TraceSegmentReference
.
Builder
refBuilder
=
TraceSegmentReference
.
newBuilder
();
if
(
SegmentRefType
.
CROSS_PROCESS
.
equals
(
type
))
{
refBuilder
.
setRefType
(
RefType
.
CrossProcess
);
refBuilder
.
setParentApplicationInstanceId
(
a
pplicationInstanceId
);
refBuilder
.
setParentApplicationInstanceId
(
parentA
pplicationInstanceId
);
if
(
peerId
==
DictionaryUtil
.
nullValue
())
{
refBuilder
.
setNetworkAddress
(
peerHost
);
}
else
{
...
...
@@ -104,6 +114,7 @@ public class TraceSegmentRef {
refBuilder
.
setRefType
(
RefType
.
CrossThread
);
}
refBuilder
.
setEntryApplicationInstanceId
(
entryApplicationInstanceId
);
refBuilder
.
setParentTraceSegmentId
(
traceSegmentId
.
transform
());
refBuilder
.
setParentSpanId
(
spanId
);
if
(
entryOperationId
==
DictionaryUtil
.
nullValue
())
{
...
...
@@ -139,7 +150,6 @@ public class TraceSegmentRef {
result
=
31
*
result
+
spanId
;
return
result
;
}
public
enum
SegmentRefType
{
CROSS_PROCESS
,
CROSS_THREAD
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/match/HierarchyMatch.java
浏览文件 @
f4f0d1cb
package
org.skywalking.apm.agent.core.plugin.match
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
net.bytebuddy.description.type.TypeDescription
;
import
net.bytebuddy.description.type.TypeList
;
import
net.bytebuddy.matcher.ElementMatcher
;
import
static
net
.
bytebuddy
.
matcher
.
ElementMatchers
.
hasSuperType
;
...
...
@@ -28,24 +32,54 @@ public class HierarchyMatch implements IndirectMatch {
ElementMatcher
.
Junction
junction
=
null
;
for
(
String
superTypeName
:
parentTypes
)
{
if
(
junction
==
null
)
{
junction
=
build
EachAnnotation
(
superTypeName
);
junction
=
build
SuperClassMatcher
(
superTypeName
);
}
else
{
junction
=
junction
.
and
(
build
EachAnnotation
(
superTypeName
));
junction
=
junction
.
and
(
build
SuperClassMatcher
(
superTypeName
));
}
}
junction
=
junction
.
and
(
not
(
isInterface
()));
return
junction
;
}
private
ElementMatcher
.
Junction
build
EachAnnotation
(
String
superTypeName
)
{
private
ElementMatcher
.
Junction
build
SuperClassMatcher
(
String
superTypeName
)
{
return
hasSuperType
(
named
(
superTypeName
));
}
@Override
public
boolean
isMatch
(
TypeDescription
typeDescription
)
{
List
<
String
>
parentTypes
=
new
ArrayList
<
String
>(
Arrays
.
asList
(
this
.
parentTypes
));
TypeList
.
Generic
implInterfaces
=
typeDescription
.
getInterfaces
();
for
(
TypeDescription
.
Generic
implInterface
:
implInterfaces
)
{
matchHierarchyClass
(
implInterface
,
parentTypes
);
}
matchHierarchyClass
(
typeDescription
.
getSuperClass
(),
parentTypes
);
if
(
parentTypes
.
size
()
==
0
)
{
return
true
;
}
return
false
;
}
private
void
matchHierarchyClass
(
TypeDescription
.
Generic
clazz
,
List
<
String
>
parentTypes
)
{
parentTypes
.
remove
(
clazz
.
getTypeName
());
if
(
parentTypes
.
size
()
==
0
)
{
return
;
}
for
(
TypeDescription
.
Generic
generic
:
clazz
.
getInterfaces
())
{
matchHierarchyClass
(
generic
,
parentTypes
);
}
TypeDescription
.
Generic
superClazz
=
clazz
.
getSuperClass
();
if
(
superClazz
!=
null
&&
!
clazz
.
getTypeName
().
equals
(
"java.lang.Object"
))
{
matchHierarchyClass
(
superClazz
,
parentTypes
);
}
}
public
static
ClassMatch
byHierarchyMatch
(
String
[]
parentTypes
)
{
return
new
HierarchyMatch
(
parentTypes
);
}
...
...
apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTest.java
浏览文件 @
f4f0d1cb
...
...
@@ -79,7 +79,7 @@ public class ContextManagerTest {
@Test
public
void
createMultipleEntrySpan
()
{
ContextCarrier
contextCarrier
=
new
ContextCarrier
().
deserialize
(
"#AQA*#AQA*4WcWe0tQNQA*|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
ContextCarrier
contextCarrier
=
new
ContextCarrier
().
deserialize
(
"#AQA*#AQA*4WcWe0tQNQA*|1|1|
1|
#127.0.0.1:8080|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
assertTrue
(
contextCarrier
.
isValid
());
AbstractSpan
firstEntrySpan
=
ContextManager
.
createEntrySpan
(
"/testFirstEntry"
,
contextCarrier
);
...
...
@@ -202,7 +202,7 @@ public class ContextManagerTest {
@Test
public
void
testTransform
()
throws
InvalidProtocolBufferException
{
ContextCarrier
contextCarrier
=
new
ContextCarrier
().
deserialize
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
ContextCarrier
contextCarrier
=
new
ContextCarrier
().
deserialize
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#127.0.0.1:8080|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
assertTrue
(
contextCarrier
.
isValid
());
AbstractSpan
firstEntrySpan
=
ContextManager
.
createEntrySpan
(
"/testFirstEntry"
,
contextCarrier
);
...
...
apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
浏览文件 @
f4f0d1cb
...
...
@@ -148,7 +148,7 @@ public class DubboInterceptorTest {
@Test
public
void
testProviderWithAttachment
()
throws
Throwable
{
when
(
rpcContext
.
isConsumerSide
()).
thenReturn
(
false
);
when
(
rpcContext
.
getAttachment
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
when
(
rpcContext
.
getAttachment
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
dubboInterceptor
.
beforeMethod
(
enhancedInstance
,
"invoke"
,
allArguments
,
argumentTypes
,
methodInterceptResult
);
dubboInterceptor
.
afterMethod
(
enhancedInstance
,
"invoke"
,
allArguments
,
argumentTypes
,
result
);
...
...
@@ -160,7 +160,7 @@ public class DubboInterceptorTest {
when
(
rpcContext
.
isConsumerSide
()).
thenReturn
(
false
);
FieldSetter
.
setStaticValue
(
BugFixActive
.
class
,
"ACTIVE"
,
true
);
testParam
.
setTraceContext
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
testParam
.
setTraceContext
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
dubboInterceptor
.
beforeMethod
(
enhancedInstance
,
"invoke"
,
allArguments
,
argumentTypes
,
methodInterceptResult
);
dubboInterceptor
.
afterMethod
(
enhancedInstance
,
"invoke"
,
allArguments
,
argumentTypes
,
result
);
...
...
@@ -194,6 +194,7 @@ public class DubboInterceptorTest {
private
void
assertTraceSegmentRef
(
TraceSegmentRef
actual
)
{
assertThat
(
SegmentRefHelper
.
getSpanId
(
actual
),
is
(
3
));
assertThat
(
SegmentRefHelper
.
getEntryApplicationInstanceId
(
actual
),
is
(
1
));
assertThat
(
SegmentRefHelper
.
getTraceSegmentId
(
actual
).
toString
(),
is
(
"1.1.15006458883500001"
));
}
...
...
apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
浏览文件 @
f4f0d1cb
...
...
@@ -91,7 +91,7 @@ public class MotanProviderInterceptorTest {
@Test
public
void
testInvokerWithRefSegment
()
throws
Throwable
{
HashMap
attachments
=
new
HashMap
();
attachments
.
put
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
,
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
attachments
.
put
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
,
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
when
(
request
.
getAttachments
()).
thenReturn
(
attachments
);
invokeInterceptor
.
beforeMethod
(
enhancedInstance
,
"execute"
,
arguments
,
argumentType
,
null
);
...
...
@@ -137,6 +137,7 @@ public class MotanProviderInterceptorTest {
private
void
assertRefSegment
(
TraceSegmentRef
primaryRef
)
{
assertThat
(
SegmentRefHelper
.
getTraceSegmentId
(
primaryRef
).
toString
(),
is
(
"1.1.15006458883500001"
));
assertThat
(
SegmentRefHelper
.
getSpanId
(
primaryRef
),
is
(
3
));
assertThat
(
SegmentRefHelper
.
getEntryApplicationInstanceId
(
primaryRef
),
is
(
1
));
assertThat
(
SegmentRefHelper
.
getPeerHost
(
primaryRef
),
is
(
"192.168.1.8:18002"
));
}
...
...
apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java
浏览文件 @
f4f0d1cb
...
...
@@ -90,7 +90,7 @@ public class ResinV3InterceptorTest {
@Test
public
void
testWithSerializedContextData
()
throws
Throwable
{
when
(
request
.
getHeader
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
when
(
request
.
getHeader
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
interceptor
.
beforeMethod
(
enhancedInstance
,
"service"
,
arguments
,
argumentType
,
methodInterceptResult
);
interceptor
.
afterMethod
(
enhancedInstance
,
"service"
,
arguments
,
argumentType
,
null
);
...
...
@@ -121,6 +121,7 @@ public class ResinV3InterceptorTest {
private
void
assertTraceSegmentRef
(
TraceSegmentRef
ref
)
{
assertThat
(
SegmentRefHelper
.
getSpanId
(
ref
),
is
(
3
));
assertThat
(
SegmentRefHelper
.
getEntryApplicationInstanceId
(
ref
),
is
(
1
));
assertThat
(
SegmentRefHelper
.
getTraceSegmentId
(
ref
).
toString
(),
is
(
"1.1.15006458883500001"
));
}
...
...
apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java
浏览文件 @
f4f0d1cb
...
...
@@ -92,7 +92,7 @@ public class ResinV4InterceptorTest {
@Test
public
void
testWithSerializedContextData
()
throws
Throwable
{
when
(
request
.
getHeader
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
when
(
request
.
getHeader
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
interceptor
.
beforeMethod
(
enhancedInstance
,
"service"
,
arguments
,
argumentType
,
methodInterceptResult
);
interceptor
.
afterMethod
(
enhancedInstance
,
"service"
,
arguments
,
argumentType
,
null
);
...
...
@@ -122,6 +122,7 @@ public class ResinV4InterceptorTest {
}
private
void
assertTraceSegmentRef
(
TraceSegmentRef
ref
)
{
assertThat
(
SegmentRefHelper
.
getEntryApplicationInstanceId
(
ref
),
is
(
1
));
assertThat
(
SegmentRefHelper
.
getSpanId
(
ref
),
is
(
3
));
assertThat
(
SegmentRefHelper
.
getTraceSegmentId
(
ref
).
toString
(),
is
(
"1.1.15006458883500001"
));
}
...
...
apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java
浏览文件 @
f4f0d1cb
...
...
@@ -82,7 +82,7 @@ public class TomcatInterceptorTest {
@Test
public
void
testWithSerializedContextData
()
throws
Throwable
{
when
(
request
.
getHeader
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
when
(
request
.
getHeader
(
Config
.
Plugin
.
Propagation
.
HEADER_NAME
)).
thenReturn
(
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
);
tomcatInterceptor
.
beforeMethod
(
enhancedInstance
,
"invoke"
,
arguments
,
argumentType
,
methodInterceptResult
);
tomcatInterceptor
.
afterMethod
(
enhancedInstance
,
"invoke"
,
arguments
,
argumentType
,
null
);
...
...
@@ -112,6 +112,7 @@ public class TomcatInterceptorTest {
}
private
void
assertTraceSegmentRef
(
TraceSegmentRef
ref
)
{
assertThat
(
SegmentRefHelper
.
getEntryApplicationInstanceId
(
ref
),
is
(
1
));
assertThat
(
SegmentRefHelper
.
getSpanId
(
ref
),
is
(
3
));
assertThat
(
SegmentRefHelper
.
getTraceSegmentId
(
ref
).
toString
(),
is
(
"1.1.15006458883500001"
));
}
...
...
apm-sniffer/apm-test-tools/src/main/java/org/skywalking/apm/agent/test/helper/SegmentRefHelper.java
浏览文件 @
f4f0d1cb
...
...
@@ -30,4 +30,13 @@ public class SegmentRefHelper {
return
-
1
;
}
public
static
int
getEntryApplicationInstanceId
(
TraceSegmentRef
ref
)
{
try
{
return
FieldGetter
.
getValue
(
ref
,
"entryApplicationInstanceId"
);
}
catch
(
Exception
e
)
{
}
return
-
1
;
}
}
apm-sniffer/apm-test-tools/src/main/java/org/skywalking/apm/agent/test/tools/SegmentRefAssert.java
浏览文件 @
f4f0d1cb
...
...
@@ -18,4 +18,9 @@ public class SegmentRefAssert {
public
static
void
assertPeerHost
(
TraceSegmentRef
ref
,
String
peerHost
)
{
assertThat
(
SegmentRefHelper
.
getPeerHost
(
ref
),
is
(
peerHost
));
}
public
static
void
assertEntryApplicationInstanceId
(
TraceSegmentRef
ref
,
int
entryApplicationInstanceID
)
{
assertThat
(
SegmentRefHelper
.
getEntryApplicationInstanceId
(
ref
),
is
(
entryApplicationInstanceID
));
}
}
apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
浏览文件 @
f4f0d1cb
...
...
@@ -17,6 +17,7 @@ import org.skywalking.apm.agent.core.context.trace.TraceSegment;
import
org.skywalking.apm.agent.core.context.trace.TraceSegmentRef
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance
;
import
org.skywalking.apm.agent.test.helper.SegmentHelper
;
import
org.skywalking.apm.agent.test.helper.SegmentRefHelper
;
import
org.skywalking.apm.agent.test.tools.AgentServiceRule
;
import
org.skywalking.apm.agent.test.tools.SegmentStorage
;
import
org.skywalking.apm.agent.test.tools.SegmentStoragePoint
;
...
...
@@ -37,6 +38,7 @@ import static org.junit.Assert.assertNull;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
static
org
.
skywalking
.
apm
.
agent
.
test
.
tools
.
SegmentRefAssert
.
assertPeerHost
;
import
static
org
.
skywalking
.
apm
.
agent
.
test
.
tools
.
SegmentRefAssert
.
assertSegmentId
;
import
static
org
.
skywalking
.
apm
.
agent
.
test
.
tools
.
SegmentRefAssert
.
assertEntryApplicationInstanceId
;
import
static
org
.
skywalking
.
apm
.
agent
.
test
.
tools
.
SegmentRefAssert
.
assertSpanId
;
import
static
org
.
skywalking
.
apm
.
agent
.
test
.
tools
.
SpanAssert
.
assertComponent
;
import
static
org
.
skywalking
.
apm
.
agent
.
test
.
tools
.
SpanAssert
.
assertLogSize
;
...
...
@@ -181,7 +183,7 @@ public class SkywalkingSpanActivationTest {
.
withTag
(
Tags
.
PEER_HOST_IPV4
.
getKey
(),
"127.0.0.1"
).
withTag
(
Tags
.
PEER_PORT
.
getKey
(),
8080
);
startSpan
();
extractInterceptor
.
afterMethod
(
enhancedInstance
,
"extract"
,
new
Object
[]
{
"#AQA*#AQA*4WcWe0tQNQA*|3|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
},
new
Class
[]
{
String
.
class
},
null
);
new
Object
[]
{
"#AQA*#AQA*4WcWe0tQNQA*|3|1|
1|
#127.0.0.1:8080|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"
},
new
Class
[]
{
String
.
class
},
null
);
stopSpan
();
TraceSegment
tracingSegment
=
assertTraceSemgnets
();
...
...
@@ -190,11 +192,11 @@ public class SkywalkingSpanActivationTest {
TraceSegmentRef
ref
=
tracingSegment
.
getRefs
().
get
(
0
);
assertSegmentId
(
ref
,
"1.1.15006458883500001"
);
assertSpanId
(
ref
,
3
);
assertEntryApplicationInstanceId
(
ref
,
1
);
assertPeerHost
(
ref
,
"127.0.0.1:8080"
);
assertThat
(
spans
.
size
(),
is
(
1
));
assertSpanCommonsAttribute
(
spans
.
get
(
0
));
}
@Test
public
void
testExtractWithInValidateContext
()
throws
Throwable
{
spanBuilder
.
withTag
(
Tags
.
SPAN_KIND
.
getKey
(),
Tags
.
SPAN_KIND_CLIENT
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录