Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
f2fb5ca9
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,体验更适合开发者的 AI 搜索 >>
提交
f2fb5ca9
编写于
3月 02, 2017
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add new extract method.
上级
0a7369b2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
14 deletion
+50
-14
skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/TraceSegment.java
...rc/main/java/com/a/eye/skywalking/trace/TraceSegment.java
+25
-7
skywalking-commons/skywalking-trace/src/test/java/com/a/eye/skywalking/trace/TraceSegmentTestCase.java
...java/com/a/eye/skywalking/trace/TraceSegmentTestCase.java
+6
-6
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/context/TracerContext.java
.../java/com/a/eye/skywalking/api/context/TracerContext.java
+19
-1
未找到文件。
skywalking-commons/skywalking-trace/src/main/java/com/a/eye/skywalking/trace/TraceSegment.java
浏览文件 @
f2fb5ca9
...
...
@@ -87,22 +87,40 @@ public class TraceSegment implements ISerializable<SegmentMessage> {
/**
* Establish the link between this segment and its parents.
* When {@param primaryOnly} is true;
* The first time, you {@link #ref(TraceSegmentRef)} to parent, it is affirmed as {@link #primaryRef}.
* And others are affirmed as {@link #refs}.
*
* @param refSegment {@link TraceSegmentRef}
* @param primaryOnly if true, set {@param refSegment} to {@link #primaryRef} only.
*/
public
void
ref
(
TraceSegmentRef
refSegment
)
{
if
(
primaryRef
==
null
)
{
primaryRef
=
refSegment
;
}
else
{
if
(
refs
==
null
)
{
refs
=
new
LinkedList
<
TraceSegmentRef
>();
public
void
ref
(
TraceSegmentRef
refSegment
,
boolean
primaryOnly
)
{
if
(
primaryOnly
){
if
(
primaryRef
==
null
)
{
primaryRef
=
refSegment
;
}
}
else
{
if
(
primaryRef
==
null
)
{
primaryRef
=
refSegment
;
}
else
{
if
(
refs
==
null
)
{
refs
=
new
LinkedList
<
TraceSegmentRef
>();
}
refs
.
add
(
refSegment
);
}
refs
.
add
(
refSegment
);
}
}
/**
* Set to {@link #primaryRef} only,
* based on {@link #ref(TraceSegmentRef, boolean)}
*
* @param refSegment {@link TraceSegmentRef}
*/
public
void
ref
(
TraceSegmentRef
refSegment
){
ref
(
refSegment
,
true
);
}
/**
* After {@link Span} is finished, as be controller by "skywalking-api" module,
* notify the {@link TraceSegment} to archive it.
...
...
skywalking-commons/skywalking-trace/src/test/java/com/a/eye/skywalking/trace/TraceSegmentTestCase.java
浏览文件 @
f2fb5ca9
...
...
@@ -24,17 +24,17 @@ public class TraceSegmentTestCase {
TraceSegmentRef
ref1
=
new
TraceSegmentRef
();
ref1
.
setTraceSegmentId
(
"parent_trace_0"
);
ref1
.
setSpanId
(
1
);
segment
.
ref
(
ref1
);
segment
.
ref
(
ref1
,
false
);
TraceSegmentRef
ref2
=
new
TraceSegmentRef
();
ref2
.
setTraceSegmentId
(
"parent_trace_1"
);
ref2
.
setSpanId
(
5
);
segment
.
ref
(
ref2
);
segment
.
ref
(
ref2
,
false
);
TraceSegmentRef
ref3
=
new
TraceSegmentRef
();
ref3
.
setTraceSegmentId
(
"parent_trace_1"
);
ref3
.
setSpanId
(
5
);
segment
.
ref
(
ref3
);
segment
.
ref
(
ref3
,
false
);
Assert
.
assertEquals
(
ref1
,
segment
.
getPrimaryRef
());
Assert
.
assertEquals
(
ref2
,
segment
.
getRefs
().
get
(
0
));
...
...
@@ -75,21 +75,21 @@ public class TraceSegmentTestCase {
ref1
.
setSpanId
(
1
);
ref1
.
setApplicationCode
(
"REMOTE_APP"
);
ref1
.
setPeerHost
(
"10.2.3.16:8080"
);
segment
.
ref
(
ref1
);
segment
.
ref
(
ref1
,
false
);
TraceSegmentRef
ref2
=
new
TraceSegmentRef
();
ref2
.
setTraceSegmentId
(
"parent_trace_1"
);
ref2
.
setSpanId
(
5
);
ref2
.
setApplicationCode
(
"REMOTE_APP"
);
ref2
.
setPeerHost
(
"10.2.3.16:8080"
);
segment
.
ref
(
ref2
);
segment
.
ref
(
ref2
,
false
);
TraceSegmentRef
ref3
=
new
TraceSegmentRef
();
ref3
.
setTraceSegmentId
(
"parent_trace_1"
);
ref3
.
setSpanId
(
5
);
ref3
.
setApplicationCode
(
"REMOTE_APP"
);
ref3
.
setPeerHost
(
"10.2.3.16:8080"
);
segment
.
ref
(
ref3
);
segment
.
ref
(
ref3
,
false
);
Span
span1
=
new
Span
(
1
,
"/serviceA"
);
Tags
.
SPAN_LAYER
.
asHttp
(
span1
);
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/context/TracerContext.java
浏览文件 @
f2fb5ca9
...
...
@@ -135,12 +135,30 @@ public final class TracerContext {
* ContextCarrier#deserialize(String)} called.
*/
public
void
extract
(
ContextCarrier
carrier
)
{
if
(
carrier
.
isValid
())
{
this
.
segment
.
ref
(
getRef
(
carrier
));
}
}
/**
* Ref this {@link ContextCarrier} to this {@link TraceSegment}, and support multi-extract for supporting batch process, like MQ.
*
* @param carrier holds the snapshot, if get this {@link ContextCarrier} from remote, make sure {@link
* ContextCarrier#deserialize(String)} called.
*/
public
void
multiExtract
(
ContextCarrier
carrier
){
if
(
carrier
.
isValid
())
{
this
.
segment
.
ref
(
getRef
(
carrier
),
false
);
}
}
private
TraceSegmentRef
getRef
(
ContextCarrier
carrier
){
TraceSegmentRef
ref
=
new
TraceSegmentRef
();
ref
.
setTraceSegmentId
(
carrier
.
getTraceSegmentId
());
ref
.
setSpanId
(
carrier
.
getSpanId
());
ref
.
setApplicationCode
(
carrier
.
getApplicationCode
());
ref
.
setPeerHost
(
carrier
.
getPeerHost
());
this
.
segment
.
ref
(
ref
)
;
return
ref
;
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录