Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
润土的好友猹
SkyWalking
提交
96f6c5fa
S
SkyWalking
项目概览
润土的好友猹
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
9
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,发现更多精彩内容 >>
提交
96f6c5fa
编写于
2月 20, 2017
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Tomcat span, and singleTrace mock.
上级
69877b80
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
161 addition
and
16 deletion
+161
-16
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/context/TracerContext.java
.../java/com/a/eye/skywalking/api/context/TracerContext.java
+1
-1
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/MockTracerContextListener.java
...lking/sniffer/mock/context/MockTracerContextListener.java
+10
-0
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/TraceSegmentBuilder.java
...ye/skywalking/sniffer/mock/trace/TraceSegmentBuilder.java
+2
-1
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/TraceSegmentBuilderFactory.java
...alking/sniffer/mock/trace/TraceSegmentBuilderFactory.java
+35
-14
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/TomcatSpanGenerator.java
...sniffer/mock/trace/builders/span/TomcatSpanGenerator.java
+53
-0
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat200TraceBuilder.java
...ock/trace/builders/trace/SingleTomcat200TraceBuilder.java
+20
-0
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat404TraceBuilder.java
...ock/trace/builders/trace/SingleTomcat404TraceBuilder.java
+20
-0
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat500TraceBuilder.java
...ock/trace/builders/trace/SingleTomcat500TraceBuilder.java
+20
-0
未找到文件。
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/context/TracerContext.java
浏览文件 @
96f6c5fa
...
...
@@ -171,7 +171,7 @@ public final class TracerContext {
/**
* Clear the given {@link TracerContextListener}
*/
static
synchronized
void
remove
(
TracerContextListener
listener
){
public
static
synchronized
void
remove
(
TracerContextListener
listener
){
listeners
.
remove
(
listener
);
}
}
...
...
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/MockTracerContextListener.java
浏览文件 @
96f6c5fa
...
...
@@ -48,4 +48,14 @@ public class MockTracerContextListener implements TracerContextListener {
public
void
clear
(){
finishedTraceSegments
.
clear
();
}
/**
* Get {@link TraceSegment} of the given index.
* @param index
* @return
*/
public
TraceSegment
getFinished
(
int
index
){
assertSize
(
index
+
1
);
return
finishedTraceSegments
.
get
(
index
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/TraceSegmentBuilder.java
浏览文件 @
96f6c5fa
package
com.a.eye.skywalking.sniffer.mock.trace
;
import
com.a.eye.skywalking.sniffer.mock.context.MockTracerContextListener
;
import
com.a.eye.skywalking.trace.TraceSegment
;
/**
* Created by wusheng on 2017/2/20.
*/
public
interface
TraceSegmentBuilder
{
TraceSegment
build
();
TraceSegment
build
(
MockTracerContextListener
listener
);
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/TraceSegmentBuilderFactory.java
浏览文件 @
96f6c5fa
package
com.a.eye.skywalking.sniffer.mock.trace
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.SingleTomcat200TraceBuilder
;
import
com.a.eye.skywalking.api.context.TracerContext
;
import
com.a.eye.skywalking.sniffer.mock.context.MockTracerContextListener
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.trace.SingleTomcat200TraceBuilder
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.trace.SingleTomcat404TraceBuilder
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.trace.SingleTomcat500TraceBuilder
;
import
com.a.eye.skywalking.trace.TraceSegment
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* The <code>TraceSegmentBuilderFactory</code> contains all {@link TraceSegmentBuilder} implementations.
...
...
@@ -14,22 +16,41 @@ import java.util.Map;
public
enum
TraceSegmentBuilderFactory
{
INSTANCE
;
private
Map
<
String
,
TraceSegmentBuilder
>
allBuilders
;
TraceSegmentBuilderFactory
(){
allBuilders
=
new
HashMap
<
String
,
TraceSegmentBuilder
>();
initialize
();
/**
* @see {@link SingleTomcat200TraceBuilder}
*
* @return
*/
public
TraceSegment
singleTomcat200Trace
(){
return
this
.
build
(
SingleTomcat200TraceBuilder
.
INSTANCE
);
}
public
TraceSegment
singleTomcat200Trace
(){
return
allBuilders
.
get
(
SingleTomcat200TraceBuilder
.
INSTANCE
).
build
();
/**
* @see {@link SingleTomcat404TraceBuilder}
*
* @return
*/
public
TraceSegment
singleTomcat404Trace
(){
return
this
.
build
(
SingleTomcat404TraceBuilder
.
INSTANCE
);
}
private
void
initialize
(){
initBuilder
(
SingleTomcat200TraceBuilder
.
INSTANCE
);
/**
* @see {@link SingleTomcat500TraceBuilder}
*
* @return
*/
public
TraceSegment
singleTomcat500Trace
(){
return
this
.
build
(
SingleTomcat500TraceBuilder
.
INSTANCE
);
}
private
void
initBuilder
(
TraceSegmentBuilder
builder
){
allBuilders
.
put
(
builder
.
toString
(),
builder
);
private
TraceSegment
build
(
TraceSegmentBuilder
builder
){
MockTracerContextListener
listener
=
new
MockTracerContextListener
();
try
{
TracerContext
.
ListenerManager
.
add
(
listener
);
return
builder
.
build
(
listener
);
}
finally
{
TracerContext
.
ListenerManager
.
remove
(
listener
);
}
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/TomcatSpanGenerator.java
0 → 100644
浏览文件 @
96f6c5fa
package
com.a.eye.skywalking.sniffer.mock.trace.builders.span
;
import
com.a.eye.skywalking.api.context.ContextManager
;
import
com.a.eye.skywalking.trace.Span
;
import
com.a.eye.skywalking.trace.tag.Tags
;
/**
* The <code>TomcatSpanGenerator</code> generate all possible spans, by tracing Tomcat.
*
* Created by wusheng on 2017/2/20.
*/
public
enum
TomcatSpanGenerator
{
INSTANCE
;
/**
* When tomcat response 200.
*/
public
void
on200
(){
Span
webSpan
=
ContextManager
.
INSTANCE
.
createSpan
(
"/web/serviceA"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"tomcat"
);
Tags
.
URL
.
set
(
webSpan
,
"http://10.21.9.35/web/serviceA"
);
Tags
.
SPAN_KIND
.
set
(
webSpan
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
STATUS_CODE
.
set
(
webSpan
,
200
);
ContextManager
.
INSTANCE
.
stopSpan
(
webSpan
);
}
/**
* When tomcat response 404.
*/
public
void
on404
(){
Span
webSpan
=
ContextManager
.
INSTANCE
.
createSpan
(
"/web/service/unknown"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"tomcat"
);
Tags
.
URL
.
set
(
webSpan
,
"http://10.21.9.35/web/unknown"
);
Tags
.
SPAN_KIND
.
set
(
webSpan
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
STATUS_CODE
.
set
(
webSpan
,
404
);
Tags
.
ERROR
.
set
(
webSpan
,
true
);
ContextManager
.
INSTANCE
.
stopSpan
(
webSpan
);
}
/**
* When tomcat response 500.
*/
public
void
on500
(){
Span
webSpan
=
ContextManager
.
INSTANCE
.
createSpan
(
"/web/error/service"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"tomcat"
);
Tags
.
URL
.
set
(
webSpan
,
"http://10.21.9.35/web/error/service"
);
Tags
.
SPAN_KIND
.
set
(
webSpan
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
STATUS_CODE
.
set
(
webSpan
,
500
);
Tags
.
ERROR
.
set
(
webSpan
,
true
);
webSpan
.
log
(
new
NumberFormatException
(
"Can't convert 'abc' to int."
));
ContextManager
.
INSTANCE
.
stopSpan
(
webSpan
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/SingleTomcat200TraceBuilder.java
→
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/
trace/
SingleTomcat200TraceBuilder.java
浏览文件 @
96f6c5fa
package
com.a.eye.skywalking.sniffer.mock.trace.builders
;
package
com.a.eye.skywalking.sniffer.mock.trace.builders
.trace
;
import
com.a.eye.skywalking.
api.context.ContextManag
er
;
import
com.a.eye.skywalking.
sniffer.mock.context.MockTracerContextListen
er
;
import
com.a.eye.skywalking.sniffer.mock.trace.TraceSegmentBuilder
;
import
com.a.eye.skywalking.
trace.Span
;
import
com.a.eye.skywalking.
sniffer.mock.trace.builders.span.TomcatSpanGenerator
;
import
com.a.eye.skywalking.trace.TraceSegment
;
import
com.a.eye.skywalking.trace.tag.Tags
;
/**
* A Trace contains only one span, which represent a tomcat server side span.
...
...
@@ -14,14 +13,8 @@ import com.a.eye.skywalking.trace.tag.Tags;
public
enum
SingleTomcat200TraceBuilder
implements
TraceSegmentBuilder
{
INSTANCE
;
@Override
public
TraceSegment
build
()
{
Span
webSpan
=
ContextManager
.
INSTANCE
.
createSpan
(
"/web/serviceA"
);
{
Tags
.
COMPONENT
.
set
(
webSpan
,
"tomcat"
);
Tags
.
URL
.
set
(
webSpan
,
"http://10.21.9.35/web/serviceA"
);
Tags
.
SPAN_KIND
.
set
(
webSpan
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
STATUS_CODE
.
set
(
webSpan
,
200
);
}
return
null
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
TomcatSpanGenerator
.
INSTANCE
.
on200
();
return
listener
.
getFinished
(
0
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat404TraceBuilder.java
0 → 100644
浏览文件 @
96f6c5fa
package
com.a.eye.skywalking.sniffer.mock.trace.builders.trace
;
import
com.a.eye.skywalking.sniffer.mock.context.MockTracerContextListener
;
import
com.a.eye.skywalking.sniffer.mock.trace.TraceSegmentBuilder
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.span.TomcatSpanGenerator
;
import
com.a.eye.skywalking.trace.TraceSegment
;
/**
* A Trace contains only one span, which represent a tomcat server side span.
*
* Created by wusheng on 2017/2/20.
*/
public
enum
SingleTomcat404TraceBuilder
implements
TraceSegmentBuilder
{
INSTANCE
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
TomcatSpanGenerator
.
INSTANCE
.
on404
();
return
listener
.
getFinished
(
0
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat500TraceBuilder.java
0 → 100644
浏览文件 @
96f6c5fa
package
com.a.eye.skywalking.sniffer.mock.trace.builders.trace
;
import
com.a.eye.skywalking.sniffer.mock.context.MockTracerContextListener
;
import
com.a.eye.skywalking.sniffer.mock.trace.TraceSegmentBuilder
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.span.TomcatSpanGenerator
;
import
com.a.eye.skywalking.trace.TraceSegment
;
/**
* A Trace contains only one span, which represent a tomcat server side span.
*
* Created by wusheng on 2017/2/20.
*/
public
enum
SingleTomcat500TraceBuilder
implements
TraceSegmentBuilder
{
INSTANCE
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
TomcatSpanGenerator
.
INSTANCE
.
on500
();
return
listener
.
getFinished
(
0
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录