Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
082bcbc2
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 搜索 >>
提交
082bcbc2
编写于
3月 05, 2017
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add two trace segment mock API. 1.Tomcat-> Dubbo 2.Dubbo -> MySQL
上级
52883b8f
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
176 addition
and
16 deletion
+176
-16
skywalking-sniffer/skywalking-sniffer-mock/pom.xml
skywalking-sniffer/skywalking-sniffer-mock/pom.xml
+1
-1
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/TraceSegmentBuilderFactory.java
...alking/sniffer/mock/trace/TraceSegmentBuilderFactory.java
+16
-3
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/DubboSpanGenerator.java
.../sniffer/mock/trace/builders/span/DubboSpanGenerator.java
+44
-0
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/MySQLGenerator.java
...king/sniffer/mock/trace/builders/span/MySQLGenerator.java
+30
-0
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/SpanGeneration.java
...king/sniffer/mock/trace/builders/span/SpanGeneration.java
+10
-6
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
+12
-3
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/DubboServerMysqlTraceBuilder.java
...ck/trace/builders/trace/DubboServerMysqlTraceBuilder.java
+21
-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
+1
-1
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
+1
-1
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
+1
-1
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/TomcatDubboClientTraceBuilder.java
...k/trace/builders/trace/TomcatDubboClientTraceBuilder.java
+25
-0
skywalking-sniffer/skywalking-sniffer-mock/src/test/java/com/a/eye/skywalking/sniffer/mock/MockTracerContextListenerTestCase.java
...lking/sniffer/mock/MockTracerContextListenerTestCase.java
+14
-0
未找到文件。
skywalking-sniffer/skywalking-sniffer-mock/pom.xml
浏览文件 @
082bcbc2
...
...
@@ -9,7 +9,7 @@
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
skywalking-sniffer-mock
</artifactId>
<description>
This is a sniffer mock module
, test for t
est-dependency, only.
</description>
<description>
This is a sniffer mock module
. Simulate a sniffer, assemble one or more trace segments. T
est-dependency, only.
</description>
<dependencies>
<dependency>
...
...
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/TraceSegmentBuilderFactory.java
浏览文件 @
082bcbc2
...
...
@@ -2,9 +2,11 @@ package com.a.eye.skywalking.sniffer.mock.trace;
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.DubboServerMysqlTraceBuilder
;
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.sniffer.mock.trace.builders.trace.TomcatDubboClientTraceBuilder
;
import
com.a.eye.skywalking.trace.TraceSegment
;
/**
...
...
@@ -19,7 +21,6 @@ public enum TraceSegmentBuilderFactory {
/**
* @see {@link SingleTomcat200TraceBuilder}
*
* @return
*/
public
TraceSegment
singleTomcat200Trace
(){
return
this
.
build
(
SingleTomcat200TraceBuilder
.
INSTANCE
);
...
...
@@ -28,7 +29,6 @@ public enum TraceSegmentBuilderFactory {
/**
* @see {@link SingleTomcat404TraceBuilder}
*
* @return
*/
public
TraceSegment
singleTomcat404Trace
(){
return
this
.
build
(
SingleTomcat404TraceBuilder
.
INSTANCE
);
...
...
@@ -37,12 +37,25 @@ public enum TraceSegmentBuilderFactory {
/**
* @see {@link SingleTomcat500TraceBuilder}
*
* @return
*/
public
TraceSegment
singleTomcat500Trace
(){
return
this
.
build
(
SingleTomcat500TraceBuilder
.
INSTANCE
);
}
/**
* @see {@link TomcatDubboClientTraceBuilder}
*/
public
TraceSegment
traceOf_Tomcat_DubboClient
(){
return
this
.
build
(
TomcatDubboClientTraceBuilder
.
INSTANCE
);
}
/**
* @see {@link DubboServerMysqlTraceBuilder}
*/
public
TraceSegment
traceOf_DubboServer_MySQL
()
{
return
this
.
build
(
DubboServerMysqlTraceBuilder
.
INSTANCE
);
}
private
TraceSegment
build
(
TraceSegmentBuilder
builder
){
MockTracerContextListener
listener
=
new
MockTracerContextListener
();
try
{
...
...
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/DubboSpanGenerator.java
0 → 100644
浏览文件 @
082bcbc2
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>DubboSpanGenerator</code> generates all possible spans, by tracing Dubbo rpc.
* Including client/server side span.
*
* @author wusheng
*/
public
class
DubboSpanGenerator
{
public
static
class
Client
extends
SpanGeneration
{
@Override
protected
void
before
()
{
Span
span
=
ContextManager
.
INSTANCE
.
createSpan
(
"/default_rpc/com.a.eye.skywalking.test.persistence.PersistenceService.query"
);
Tags
.
COMPONENT
.
set
(
span
,
"Dubbo"
);
Tags
.
URL
.
set
(
span
,
"rest://192.168.1.8:20880/default_rpc/com.a.eye.skywalking.test.persistence.PersistenceService.query(String)"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
PEER_HOST
.
set
(
span
,
"192.168.1.8"
);
Tags
.
PEER_PORT
.
set
(
span
,
20880
);
Tags
.
SPAN_LAYER
.
asHttp
(
span
);
}
@Override
protected
void
after
()
{
ContextManager
.
INSTANCE
.
stopSpan
();
}
}
public
static
class
Server
extends
SpanGeneration
{
@Override
protected
void
before
()
{
Span
span
=
ContextManager
.
INSTANCE
.
createSpan
(
"/default_rpc/com.a.eye.skywalking.test.persistence.PersistenceService.query"
);
Tags
.
COMPONENT
.
set
(
span
,
"Dubbo"
);
Tags
.
URL
.
set
(
span
,
"rest://192.168.1.8:20880/default_rpc/com.a.eye.skywalking.test.persistence.PersistenceService.query(String)"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
Tags
.
PEER_HOST
.
set
(
span
,
"10.21.9.35"
);
Tags
.
SPAN_LAYER
.
asHttp
(
span
);
}
@Override
protected
void
after
()
{
ContextManager
.
INSTANCE
.
stopSpan
();
}
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/MySQLGenerator.java
0 → 100644
浏览文件 @
082bcbc2
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>MySQLGenerator</code> generates all possible spans, by tracing mysql client access.
*
* @author wusheng
*/
public
class
MySQLGenerator
{
public
static
class
Query
extends
SpanGeneration
{
@Override
protected
void
before
()
{
Span
span
=
ContextManager
.
INSTANCE
.
createSpan
(
"mysql/jdbi/statement/executeQuery"
);
Tags
.
COMPONENT
.
set
(
span
,
"Mysql"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
Tags
.
PEER_HOST
.
set
(
span
,
"10.5.34.18"
);
Tags
.
PEER_PORT
.
set
(
span
,
30088
);
Tags
.
DB_INSTANCE
.
set
(
span
,
"mysql-instance"
);
Tags
.
DB_STATEMENT
.
set
(
span
,
"select * from users where user_id = 1"
);
Tags
.
DB_TYPE
.
set
(
span
,
"sql"
);
Tags
.
SPAN_LAYER
.
asDB
(
span
);
}
@Override
protected
void
after
()
{
ContextManager
.
INSTANCE
.
stopSpan
();
}
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/SpanGeneration.java
浏览文件 @
082bcbc2
package
com.a.eye.skywalking.sniffer.mock.trace.builders.span
;
/**
* Created by wusheng on 2017/2/28.
* The <code>SpanGeneration</code> implementations can generate several kinds of spans.
*
* @author wusheng
*/
public
abstract
class
SpanGeneration
{
private
SpanGeneration
next
;
private
SpanGeneration
[]
next
;
public
SpanGeneration
build
(
SpanGeneration
next
){
this
.
next
=
ne
xt
;
this
.
next
=
ne
w
SpanGeneration
[]{
next
}
;
return
next
;
}
public
SpanGeneration
build
(
){
return
this
;
public
void
build
(
SpanGeneration
...
next
){
this
.
next
=
next
;
}
protected
abstract
void
before
();
...
...
@@ -22,7 +24,9 @@ public abstract class SpanGeneration {
public
void
generate
(){
this
.
before
();
if
(
next
!=
null
){
next
.
generate
();
for
(
SpanGeneration
generation
:
next
)
{
generation
.
generate
();
}
}
this
.
after
();
}
...
...
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/span/TomcatSpanGenerator.java
浏览文件 @
082bcbc2
...
...
@@ -15,9 +15,12 @@ public class TomcatSpanGenerator{
@Override
protected
void
before
()
{
Span
webSpan
=
ContextManager
.
INSTANCE
.
createSpan
(
"/web/serviceA"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"
t
omcat"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"
T
omcat"
);
Tags
.
URL
.
set
(
webSpan
,
"http://10.21.9.35/web/serviceA"
);
Tags
.
SPAN_KIND
.
set
(
webSpan
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
PEER_HOST
.
set
(
webSpan
,
"10.21.9.35"
);
Tags
.
PEER_PORT
.
set
(
webSpan
,
80
);
Tags
.
SPAN_LAYER
.
asHttp
(
webSpan
);
}
@Override
protected
void
after
()
{
...
...
@@ -32,9 +35,12 @@ public class TomcatSpanGenerator{
@Override
protected
void
before
()
{
Span
webSpan
=
ContextManager
.
INSTANCE
.
createSpan
(
"/web/service/unknown"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"
t
omcat"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"
T
omcat"
);
Tags
.
URL
.
set
(
webSpan
,
"http://10.21.9.35/web/unknown"
);
Tags
.
SPAN_KIND
.
set
(
webSpan
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
PEER_HOST
.
set
(
webSpan
,
"10.21.9.35"
);
Tags
.
PEER_PORT
.
set
(
webSpan
,
80
);
Tags
.
SPAN_LAYER
.
asHttp
(
webSpan
);
}
@Override
protected
void
after
()
{
...
...
@@ -49,9 +55,12 @@ public class TomcatSpanGenerator{
@Override
protected
void
before
()
{
Span
webSpan
=
ContextManager
.
INSTANCE
.
createSpan
(
"/web/error/service"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"
t
omcat"
);
Tags
.
COMPONENT
.
set
(
webSpan
,
"
T
omcat"
);
Tags
.
URL
.
set
(
webSpan
,
"http://10.21.9.35/web/error/service"
);
Tags
.
SPAN_KIND
.
set
(
webSpan
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
PEER_HOST
.
set
(
webSpan
,
"10.21.9.35"
);
Tags
.
PEER_PORT
.
set
(
webSpan
,
80
);
Tags
.
SPAN_LAYER
.
asHttp
(
webSpan
);
}
@Override
protected
void
after
()
{
...
...
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/DubboServerMysqlTraceBuilder.java
0 → 100644
浏览文件 @
082bcbc2
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.DubboSpanGenerator
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.span.MySQLGenerator
;
import
com.a.eye.skywalking.trace.TraceSegment
;
/**
* @author wusheng
*/
public
enum
DubboServerMysqlTraceBuilder
implements
TraceSegmentBuilder
{
INSTANCE
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
DubboSpanGenerator
.
Server
rootSpan
=
new
DubboSpanGenerator
.
Server
();
rootSpan
.
build
(
new
MySQLGenerator
.
Query
());
rootSpan
.
generate
();
return
listener
.
getFinished
(
0
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat200TraceBuilder.java
浏览文件 @
082bcbc2
...
...
@@ -14,7 +14,7 @@ public enum SingleTomcat200TraceBuilder implements TraceSegmentBuilder {
INSTANCE
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
TomcatSpanGenerator
.
ON200
.
INSTANCE
.
build
().
generate
();
TomcatSpanGenerator
.
ON200
.
INSTANCE
.
generate
();
return
listener
.
getFinished
(
0
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat404TraceBuilder.java
浏览文件 @
082bcbc2
...
...
@@ -14,7 +14,7 @@ public enum SingleTomcat404TraceBuilder implements TraceSegmentBuilder {
INSTANCE
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
TomcatSpanGenerator
.
ON404
.
INSTANCE
.
build
().
generate
();
TomcatSpanGenerator
.
ON404
.
INSTANCE
.
generate
();
return
listener
.
getFinished
(
0
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/SingleTomcat500TraceBuilder.java
浏览文件 @
082bcbc2
...
...
@@ -14,7 +14,7 @@ public enum SingleTomcat500TraceBuilder implements TraceSegmentBuilder {
INSTANCE
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
TomcatSpanGenerator
.
ON500
.
INSTANCE
.
build
().
generate
();
TomcatSpanGenerator
.
ON500
.
INSTANCE
.
generate
();
return
listener
.
getFinished
(
0
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/trace/builders/trace/TomcatDubboClientTraceBuilder.java
0 → 100644
浏览文件 @
082bcbc2
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.DubboSpanGenerator
;
import
com.a.eye.skywalking.sniffer.mock.trace.builders.span.TomcatSpanGenerator
;
import
com.a.eye.skywalking.trace.TraceSegment
;
/**
* A Trace segment contains two spans with ChildOf relations,
* the parent is a Tomcat span,
* the child is a Dubbo client span.
*
* @author wusheng
*/
public
enum
TomcatDubboClientTraceBuilder
implements
TraceSegmentBuilder
{
INSTANCE
;
@Override
public
TraceSegment
build
(
MockTracerContextListener
listener
)
{
TomcatSpanGenerator
.
ON200
rootSpan
=
new
TomcatSpanGenerator
.
ON200
();
rootSpan
.
build
(
new
DubboSpanGenerator
.
Client
());
rootSpan
.
generate
();
return
listener
.
getFinished
(
0
);
}
}
skywalking-sniffer/skywalking-sniffer-mock/src/test/java/com/a/eye/skywalking/sniffer/mock/MockTracerContextListenerTestCase.java
浏览文件 @
082bcbc2
...
...
@@ -49,4 +49,18 @@ public class MockTracerContextListenerTestCase {
listener
.
clear
();
listener
.
assertValidIndex
(
0
);
}
@Test
public
void
testTraceOf_Tomcat_DubboClient
(){
TraceSegment
segment
=
TraceSegmentBuilderFactory
.
INSTANCE
.
traceOf_Tomcat_DubboClient
();
Assert
.
assertEquals
(
2
,
segment
.
getSpans
().
size
());
}
@Test
public
void
testTraceOf_DubboServer_MySQL
(){
TraceSegment
segment
=
TraceSegmentBuilderFactory
.
INSTANCE
.
traceOf_DubboServer_MySQL
();
Assert
.
assertEquals
(
2
,
segment
.
getSpans
().
size
());
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录