Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
983dd8ea
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 搜索 >>
提交
983dd8ea
编写于
6月 14, 2017
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Provide AbstractSpan interface for the context.
上级
cf3d2a40
变更
32
隐藏空白更改
内联
并排
Showing
32 changed file
with
204 addition
and
148 deletion
+204
-148
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/AbstractTracerContext.java
...walking/apm/agent/core/context/AbstractTracerContext.java
+6
-6
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextManager.java
...org/skywalking/apm/agent/core/context/ContextManager.java
+7
-7
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/IgnoreTracerContext.java
...kywalking/apm/agent/core/context/IgnoreTracerContext.java
+6
-6
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracerContext.java
.../org/skywalking/apm/agent/core/context/TracerContext.java
+7
-6
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/AbstractTag.java
...rg/skywalking/apm/agent/core/context/tag/AbstractTag.java
+2
-1
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/BooleanTag.java
...org/skywalking/apm/agent/core/context/tag/BooleanTag.java
+2
-2
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/IntTag.java
...ava/org/skywalking/apm/agent/core/context/tag/IntTag.java
+2
-2
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/StringTag.java
.../org/skywalking/apm/agent/core/context/tag/StringTag.java
+2
-2
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/Tags.java
.../java/org/skywalking/apm/agent/core/context/tag/Tags.java
+4
-4
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractSpan.java
...skywalking/apm/agent/core/context/trace/AbstractSpan.java
+31
-0
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/Span.java
...ava/org/skywalking/apm/agent/core/context/trace/Span.java
+5
-3
apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTestCase.java
...alking/apm/agent/core/context/ContextManagerTestCase.java
+3
-3
apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TracerContextTestCase.java
...walking/apm/agent/core/context/TracerContextTestCase.java
+10
-10
apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/skywalking/apm/plugin/dubbo/DubboInterceptor.java
...ava/org/skywalking/apm/plugin/dubbo/DubboInterceptor.java
+4
-4
apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/main/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptor.java
...pm/plugin/feign/http/v9/DefaultHttpClientInterceptor.java
+5
-4
apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java
...pm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java
+13
-10
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/CallableStatementTracing.java
.../skywalking/apm/plugin/jdbc/CallableStatementTracing.java
+6
-6
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/ConnectionTracing.java
...ava/org/skywalking/apm/plugin/jdbc/ConnectionTracing.java
+3
-2
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/PreparedStatementTracing.java
.../skywalking/apm/plugin/jdbc/PreparedStatementTracing.java
+6
-6
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/StatementTracing.java
...java/org/skywalking/apm/plugin/jdbc/StatementTracing.java
+6
-6
apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java
...kywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java
+4
-4
apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java
...lking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java
+24
-7
apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptor.java
...skywalking/apm/plugin/motan/MotanConsumerInterceptor.java
+4
-4
apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptor.java
...skywalking/apm/plugin/motan/MotanProviderInterceptor.java
+4
-4
apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/main/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptor.java
.../skywalking/apm/plugin/okhttp/v3/RealCallInterceptor.java
+5
-4
apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v3/ResinV3Interceptor.java
...rg/skywalking/apm/plugin/resin/v3/ResinV3Interceptor.java
+5
-5
apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v4/ResinV4Interceptor.java
...rg/skywalking/apm/plugin/resin/v4/ResinV4Interceptor.java
+5
-5
apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptor.java
...rg/skywalking/apm/plugin/tomcat78x/TomcatInterceptor.java
+8
-9
apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/builders/span/DubboSpanGenerator.java
.../sniffer/mock/trace/builders/span/DubboSpanGenerator.java
+3
-3
apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/builders/span/MySQLGenerator.java
.../apm/sniffer/mock/trace/builders/span/MySQLGenerator.java
+2
-2
apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/builders/span/TomcatSpanGenerator.java
...sniffer/mock/trace/builders/span/TomcatSpanGenerator.java
+7
-7
apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java
...ntracing/span/interceptor/SpanNewInstanceInterceptor.java
+3
-4
未找到文件。
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/AbstractTracerContext.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.
Abstract
Span
;
/**
* The <code>AbstractTracerContext</code> represents the tracer context manager.
...
...
@@ -14,15 +14,15 @@ public interface AbstractTracerContext {
String
getGlobalTraceId
();
Span
createSpan
(
String
operationName
,
boolean
isLeaf
);
Abstract
Span
createSpan
(
String
operationName
,
boolean
isLeaf
);
Span
createSpan
(
String
operationName
,
long
startTime
,
boolean
isLeaf
);
Abstract
Span
createSpan
(
String
operationName
,
long
startTime
,
boolean
isLeaf
);
Span
activeSpan
();
Abstract
Span
activeSpan
();
void
stopSpan
(
Span
span
);
void
stopSpan
(
Abstract
Span
span
);
void
stopSpan
(
Span
span
,
Long
endTime
);
void
stopSpan
(
Abstract
Span
span
,
Long
endTime
);
void
dispose
();
}
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/ContextManager.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context
;
import
org.skywalking.apm.agent.core.boot.BootService
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.
Abstract
Span
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
/**
...
...
@@ -12,7 +12,7 @@ import org.skywalking.apm.agent.core.context.trace.TraceSegment;
* https://github.com/opentracing/specification/blob/master/specification.md#references-between-spans}
* <p> Also, {@link
* ContextManager} delegates to all {@link TracerContext}'s major methods: {@link TracerContext#createSpan(String,
* boolean)}, {@link TracerContext#activeSpan()}, {@link
TracerContext#stopSpan(
Span)}
* boolean)}, {@link TracerContext#activeSpan()}, {@link
AbstractTracerContext#stopSpan(org.skywalking.apm.agent.core.context.trace.Abstract
Span)}
* <p>
*
* @author wusheng
...
...
@@ -55,23 +55,23 @@ public class ContextManager implements TracerContextListener, BootService, Ignor
}
}
public
static
Span
createSpan
(
String
operationName
)
{
public
static
Abstract
Span
createSpan
(
String
operationName
)
{
return
get
().
createSpan
(
operationName
,
false
);
}
public
static
Span
createSpan
(
String
operationName
,
long
startTime
)
{
public
static
Abstract
Span
createSpan
(
String
operationName
,
long
startTime
)
{
return
get
().
createSpan
(
operationName
,
startTime
,
false
);
}
public
static
Span
createLeafSpan
(
String
operationName
)
{
public
static
Abstract
Span
createLeafSpan
(
String
operationName
)
{
return
get
().
createSpan
(
operationName
,
true
);
}
public
static
Span
createLeafSpan
(
String
operationName
,
long
startTime
)
{
public
static
Abstract
Span
createLeafSpan
(
String
operationName
,
long
startTime
)
{
return
get
().
createSpan
(
operationName
,
startTime
,
true
);
}
public
static
Span
activeSpan
()
{
public
static
Abstract
Span
activeSpan
()
{
return
get
().
activeSpan
();
}
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/IgnoreTracerContext.java
浏览文件 @
983dd8ea
...
...
@@ -2,7 +2,7 @@ package org.skywalking.apm.agent.core.context;
import
java.util.LinkedList
;
import
java.util.List
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.
Abstract
Span
;
/**
* The <code>IgnoreTracerContext</code> represent a context should be ignored.
...
...
@@ -36,23 +36,23 @@ public class IgnoreTracerContext implements AbstractTracerContext {
}
@Override
public
Span
createSpan
(
String
operationName
,
boolean
isLeaf
)
{
public
Abstract
Span
createSpan
(
String
operationName
,
boolean
isLeaf
)
{
stackDepth
++;
return
null
;
}
@Override
public
Span
createSpan
(
String
operationName
,
long
startTime
,
boolean
isLeaf
)
{
public
Abstract
Span
createSpan
(
String
operationName
,
long
startTime
,
boolean
isLeaf
)
{
return
createSpan
(
operationName
,
isLeaf
);
}
@Override
public
Span
activeSpan
()
{
public
Abstract
Span
activeSpan
()
{
return
null
;
}
@Override
public
void
stopSpan
(
Span
span
)
{
public
void
stopSpan
(
Abstract
Span
span
)
{
stackDepth
--;
if
(
stackDepth
==
0
)
{
...
...
@@ -60,7 +60,7 @@ public class IgnoreTracerContext implements AbstractTracerContext {
}
@Override
public
void
stopSpan
(
Span
span
,
Long
endTime
)
{
public
void
stopSpan
(
Abstract
Span
span
,
Long
endTime
)
{
stopSpan
(
span
);
}
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/TracerContext.java
浏览文件 @
983dd8ea
...
...
@@ -3,6 +3,7 @@ package org.skywalking.apm.agent.core.context;
import
java.util.LinkedList
;
import
java.util.List
;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.LeafSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
...
...
@@ -42,7 +43,7 @@ public final class TracerContext implements AbstractTracerContext {
* @param operationName {@link Span#operationName}
* @return the new active span.
*/
public
Span
createSpan
(
String
operationName
,
boolean
isLeaf
)
{
public
Abstract
Span
createSpan
(
String
operationName
,
boolean
isLeaf
)
{
return
this
.
createSpan
(
operationName
,
System
.
currentTimeMillis
(),
isLeaf
);
}
...
...
@@ -54,7 +55,7 @@ public final class TracerContext implements AbstractTracerContext {
* @param isLeaf is true, if the span is a leaf in trace tree.
* @return
*/
public
Span
createSpan
(
String
operationName
,
long
startTime
,
boolean
isLeaf
)
{
public
Abstract
Span
createSpan
(
String
operationName
,
long
startTime
,
boolean
isLeaf
)
{
Span
parentSpan
=
peek
();
Span
span
;
if
(
parentSpan
==
null
)
{
...
...
@@ -82,7 +83,7 @@ public final class TracerContext implements AbstractTracerContext {
/**
* @return the active span of current context.
*/
public
Span
activeSpan
()
{
public
Abstract
Span
activeSpan
()
{
Span
span
=
peek
();
if
(
span
==
null
)
{
throw
new
IllegalStateException
(
"No active span."
);
...
...
@@ -95,7 +96,7 @@ public final class TracerContext implements AbstractTracerContext {
*
* @param span to finish. It must the the top element of {@link #activeSpanStack}.
*/
public
void
stopSpan
(
Span
span
)
{
public
void
stopSpan
(
Abstract
Span
span
)
{
stopSpan
(
span
,
System
.
currentTimeMillis
());
}
...
...
@@ -106,7 +107,7 @@ public final class TracerContext implements AbstractTracerContext {
return
segment
.
getRelatedGlobalTraces
().
get
(
0
).
get
();
}
public
void
stopSpan
(
Span
span
,
Long
endTime
)
{
public
void
stopSpan
(
Abstract
Span
span
,
Long
endTime
)
{
Span
lastSpan
=
peek
();
if
(
lastSpan
.
isLeaf
())
{
LeafSpan
leafSpan
=
(
LeafSpan
)
lastSpan
;
...
...
@@ -147,7 +148,7 @@ public final class TracerContext implements AbstractTracerContext {
*/
public
void
inject
(
ContextCarrier
carrier
)
{
carrier
.
setTraceSegmentId
(
this
.
segment
.
getTraceSegmentId
());
Span
span
=
this
.
activeSpan
();
Span
span
=
(
Span
)
this
.
activeSpan
();
carrier
.
setSpanId
(
span
.
getSpanId
());
carrier
.
setApplicationCode
(
Config
.
Agent
.
APPLICATION_CODE
);
String
host
=
span
.
getPeerHost
();
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/AbstractTag.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context.tag
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
/**
...
...
@@ -22,7 +23,7 @@ public abstract class AbstractTag<T> {
this
.
key
=
tagKey
;
}
protected
abstract
void
set
(
Span
span
,
T
tagValue
);
protected
abstract
void
set
(
Abstract
Span
span
,
T
tagValue
);
/**
* @return the key of this tag.
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/BooleanTag.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context.tag
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.
Abstract
Span
;
/**
* Do the same thing as {@link StringTag}, just with a {@link Boolean} value.
...
...
@@ -17,7 +17,7 @@ public class BooleanTag extends AbstractTag<Boolean> {
}
@Override
public
void
set
(
Span
span
,
Boolean
tagValue
)
{
public
void
set
(
Abstract
Span
span
,
Boolean
tagValue
)
{
span
.
setTag
(
key
,
tagValue
);
}
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/IntTag.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context.tag
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.
Abstract
Span
;
/**
* Do the same thing as {@link StringTag}, just with a {@link Integer} value.
...
...
@@ -13,7 +13,7 @@ public class IntTag extends AbstractTag<Integer> {
}
@Override
public
void
set
(
Span
span
,
Integer
tagValue
)
{
public
void
set
(
Abstract
Span
span
,
Integer
tagValue
)
{
span
.
setTag
(
super
.
key
,
tagValue
);
}
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/StringTag.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context.tag
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.
Abstract
Span
;
/**
* A subclass of {@link AbstractTag},
...
...
@@ -14,7 +14,7 @@ public class StringTag extends AbstractTag<String> {
}
@Override
public
void
set
(
Span
span
,
String
tagValue
)
{
public
void
set
(
Abstract
Span
span
,
String
tagValue
)
{
span
.
setTag
(
key
,
tagValue
);
}
}
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/tag/Tags.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context.tag
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.
Abstract
Span
;
/**
* The span tags are supported by sky-walking engine.
...
...
@@ -52,15 +52,15 @@ public final class Tags {
private
static
final
String
RPC_FRAMEWORK_LAYER
=
"rpc"
;
private
static
final
String
HTTP_LAYER
=
"http"
;
public
static
void
asDB
(
Span
span
)
{
public
static
void
asDB
(
Abstract
Span
span
)
{
SPAN_LAYER_TAG
.
set
(
span
,
DB_LAYER
);
}
public
static
void
asRPCFramework
(
Span
span
)
{
public
static
void
asRPCFramework
(
Abstract
Span
span
)
{
SPAN_LAYER_TAG
.
set
(
span
,
RPC_FRAMEWORK_LAYER
);
}
public
static
void
asHttp
(
Span
span
)
{
public
static
void
asHttp
(
Abstract
Span
span
)
{
SPAN_LAYER_TAG
.
set
(
span
,
HTTP_LAYER
);
}
}
...
...
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/AbstractSpan.java
0 → 100644
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context.trace
;
import
java.util.Map
;
/**
* The <code>AbstractSpan</code> represents the span's skeleton,
* which contains all open methods.
*
* @author wusheng
*/
public
interface
AbstractSpan
{
AbstractSpan
setOperationName
(
String
operationName
);
void
setPeerHost
(
String
peerHost
);
void
setPort
(
int
port
);
void
setPeers
(
String
peers
);
AbstractSpan
setTag
(
String
key
,
String
value
);
AbstractSpan
setTag
(
String
key
,
boolean
value
);
AbstractSpan
setTag
(
String
key
,
Integer
value
);
AbstractSpan
log
(
Map
<
String
,
String
>
fields
);
AbstractSpan
log
(
Throwable
t
);
AbstractSpan
log
(
String
event
);
}
apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/context/trace/Span.java
浏览文件 @
983dd8ea
...
...
@@ -32,7 +32,7 @@ import org.skywalking.apm.util.StringUtil;
* Created by wusheng on 2017/2/17.
*/
@JsonAdapter
(
Span
.
Serializer
.
class
)
public
class
Span
{
public
class
Span
implements
AbstractSpan
{
private
static
Gson
SERIALIZATION_GSON
=
new
GsonBuilder
().
excludeFieldsWithoutExposeAnnotation
().
create
();
private
int
spanId
;
...
...
@@ -111,7 +111,7 @@ public class Span {
this
.
spanId
=
spanId
;
this
.
parentSpanId
=
parentSpanId
;
this
.
startTime
=
startTime
;
this
.
operationName
=
operationName
;
this
.
setOperationName
(
operationName
)
;
}
/**
...
...
@@ -192,10 +192,12 @@ public class Span {
/**
* Sets the string name for the logical operation this span represents.
* These is one scenario, which trigger context switch.
* 1) the operations ends with the defined suffix, see {@link Config.Agent#IGNORE_SUFFIX}
*
* @return this Span instance, for chaining
*/
public
Span
setOperationName
(
String
operationName
)
{
public
Abstract
Span
setOperationName
(
String
operationName
)
{
this
.
operationName
=
operationName
;
if
(
this
.
spanId
==
0
)
{
if
(
operationName
!=
null
)
{
...
...
apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/ContextManagerTestCase.java
浏览文件 @
983dd8ea
...
...
@@ -5,9 +5,9 @@ import org.junit.Assert;
import
org.junit.BeforeClass
;
import
org.junit.Test
;
import
org.skywalking.apm.agent.core.boot.ServiceManager
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
/**
* Created by wusheng on 2017/2/19.
...
...
@@ -20,7 +20,7 @@ public class ContextManagerTestCase {
@Test
public
void
testDelegateToTracerContext
()
{
Span
span
=
ContextManager
.
createSpan
(
"serviceA"
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
"serviceA"
);
Tags
.
COMPONENT
.
set
(
span
,
"test"
);
Assert
.
assertEquals
(
span
,
ContextManager
.
activeSpan
());
...
...
apm-sniffer/apm-agent-core/src/test/java/org/skywalking/apm/agent/core/context/TracerContextTestCase.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.agent.core.context
;
import
java.util.LinkedList
;
import
java.util.List
;
import
org.junit.After
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.ids.DistributedTraceId
;
import
org.skywalking.apm.agent.core.context.ids.PropagatedTraceId
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* Created by wusheng on 2017/2/19.
*/
...
...
@@ -18,7 +18,7 @@ public class TracerContextTestCase {
@Test
public
void
testSpanLifeCycle
()
{
TracerContext
context
=
new
TracerContext
();
Span
span
=
context
.
createSpan
(
"/serviceA"
,
false
);
Abstract
Span
span
=
context
.
createSpan
(
"/serviceA"
,
false
);
Assert
.
assertEquals
(
span
,
context
.
activeSpan
());
...
...
@@ -34,8 +34,8 @@ public class TracerContextTestCase {
@Test
public
void
testChildOfSpan
()
{
TracerContext
context
=
new
TracerContext
();
Span
serviceSpan
=
context
.
createSpan
(
"/serviceA"
,
false
);
Span
dbSpan
=
context
.
createSpan
(
"db/preparedStatement/execute"
,
false
);
Abstract
Span
serviceSpan
=
context
.
createSpan
(
"/serviceA"
,
false
);
Abstract
Span
dbSpan
=
context
.
createSpan
(
"db/preparedStatement/execute"
,
false
);
Assert
.
assertEquals
(
dbSpan
,
context
.
activeSpan
());
...
...
@@ -59,8 +59,8 @@ public class TracerContextTestCase {
@Test
public
void
testInject
()
{
TracerContext
context
=
new
TracerContext
();
Span
serviceSpan
=
context
.
createSpan
(
"/serviceA"
,
false
);
Span
dbSpan
=
context
.
createSpan
(
"db/preparedStatement/execute"
,
false
);
Abstract
Span
serviceSpan
=
context
.
createSpan
(
"/serviceA"
,
false
);
Abstract
Span
dbSpan
=
context
.
createSpan
(
"db/preparedStatement/execute"
,
false
);
dbSpan
.
setPeerHost
(
"127.0.0.1"
);
dbSpan
.
setPort
(
8080
);
...
...
@@ -86,7 +86,7 @@ public class TracerContextTestCase {
TracerContext
context
=
new
TracerContext
();
context
.
extract
(
carrier
);
Span
span
=
context
.
createSpan
(
"/serviceC"
,
false
);
Abstract
Span
span
=
context
.
createSpan
(
"/serviceC"
,
false
);
TracerContext
.
ListenerManager
.
add
(
TestTracerContextListener
.
INSTANCE
);
final
TraceSegment
[]
finishedSegmentCarrier
=
TestTracerContextListener
.
INSTANCE
.
finishedSegmentCarrier
;
...
...
apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/main/java/org/skywalking/apm/plugin/dubbo/DubboInterceptor.java
浏览文件 @
983dd8ea
...
...
@@ -8,14 +8,14 @@ import com.alibaba.dubbo.rpc.RpcContext;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.plugin.dubbox.BugFixActive
;
import
org.skywalking.apm.plugin.dubbox.SWBaseBean
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
/**
* {@link DubboInterceptor} define how to enhance class {@link com.alibaba.dubbo.monitor.support.MonitorFilter#invoke(Invoker,
...
...
@@ -50,7 +50,7 @@ public class DubboInterceptor implements InstanceMethodsAroundInterceptor {
boolean
isConsumer
=
rpcContext
.
isConsumerSide
();
URL
requestURL
=
invoker
.
getUrl
();
Span
span
=
ContextManager
.
createSpan
(
generateOperationName
(
requestURL
,
invocation
));
Abstract
Span
span
=
ContextManager
.
createSpan
(
generateOperationName
(
requestURL
,
invocation
));
Tags
.
URL
.
set
(
span
,
generateRequestURL
(
requestURL
,
invocation
));
Tags
.
COMPONENT
.
set
(
span
,
DUBBO_COMPONENT
);
Tags
.
SPAN_LAYER
.
asRPCFramework
(
span
);
...
...
@@ -111,7 +111,7 @@ public class DubboInterceptor implements InstanceMethodsAroundInterceptor {
* Log the throwable, which occurs in Dubbo RPC service.
*/
private
void
dealException
(
Throwable
throwable
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
ERROR
.
set
(
span
,
true
);
span
.
log
(
throwable
);
}
...
...
apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/main/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptor.java
浏览文件 @
983dd8ea
...
...
@@ -14,12 +14,13 @@ import java.util.Map;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
/**
* {@link DefaultHttpClientInterceptor} intercept the default implementation of http calls by the Feign.
...
...
@@ -46,7 +47,7 @@ public class DefaultHttpClientInterceptor implements InstanceMethodsAroundInterc
Request
request
=
(
Request
)
interceptorContext
.
allArguments
()[
0
];
URL
url
=
new
URL
(
request
.
url
());
Span
span
=
ContextManager
.
createSpan
(
request
.
url
());
Abstract
Span
span
=
ContextManager
.
createSpan
(
request
.
url
());
span
.
setPeerHost
(
url
.
getHost
());
span
.
setPort
(
url
.
getPort
());
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
...
...
@@ -91,7 +92,7 @@ public class DefaultHttpClientInterceptor implements InstanceMethodsAroundInterc
Response
response
=
(
Response
)
ret
;
int
statusCode
=
response
.
status
();
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
if
(
statusCode
>=
400
)
{
Tags
.
ERROR
.
set
(
span
,
true
);
}
...
...
apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/apm/plugin/httpClient/v4/HttpClientExecuteInterceptor.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.plugin.httpClient.v4
;
import
org.apache.http.*
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
org.apache.http.Header
;
import
org.apache.http.HttpHost
;
import
org.apache.http.HttpRequest
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.StatusLine
;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
/**
* {@link HttpClientExecuteInterceptor} transport the trace context by call {@link HttpRequest#setHeader(Header)},
...
...
@@ -33,7 +36,7 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
}
HttpHost
httpHost
=
(
HttpHost
)
allArguments
[
0
];
HttpRequest
httpRequest
=
(
HttpRequest
)
allArguments
[
1
];
Span
span
=
createSpan
(
httpRequest
);
Abstract
Span
span
=
createSpan
(
httpRequest
);
span
.
setPeerHost
(
httpHost
.
getHostName
());
span
.
setPort
(
httpHost
.
getPort
());
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
...
...
@@ -58,8 +61,8 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
/**
* Create span.
*/
private
Span
createSpan
(
HttpRequest
httpRequest
)
{
Span
span
;
private
Abstract
Span
createSpan
(
HttpRequest
httpRequest
)
{
Abstract
Span
span
;
try
{
URL
url
=
new
URL
(
httpRequest
.
getRequestLine
().
getUri
());
span
=
ContextManager
.
createSpan
(
url
.
getPath
());
...
...
@@ -79,7 +82,7 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
HttpResponse
response
=
(
HttpResponse
)
ret
;
int
statusCode
=
response
.
getStatusLine
().
getStatusCode
();
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
if
(
statusCode
!=
200
)
{
Tags
.
ERROR
.
set
(
span
,
true
);
}
...
...
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/CallableStatementTracing.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.plugin.jdbc
;
import
java.sql.SQLException
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.util.StringUtil
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
java.sql.SQLException
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.util.StringUtil
;
/**
* {@link CallableStatementTracing} create span with the {@link Span#operationName} start with
...
...
@@ -21,7 +21,7 @@ public class CallableStatementTracing {
ConnectionInfo
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/CallableStatement/"
+
method
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/CallableStatement/"
+
method
);
Tags
.
DB_TYPE
.
set
(
span
,
"sql"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
Tags
.
DB_INSTANCE
.
set
(
span
,
connectInfo
.
getDatabaseName
());
...
...
@@ -36,7 +36,7 @@ public class CallableStatementTracing {
}
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
ERROR
.
set
(
span
,
true
);
span
.
log
(
e
);
throw
e
;
...
...
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/ConnectionTracing.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.plugin.jdbc
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.util.StringUtil
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
...
...
@@ -21,7 +22,7 @@ public class ConnectionTracing {
ConnectionInfo
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/Connection/"
+
method
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/Connection/"
+
method
);
Tags
.
DB_TYPE
.
set
(
span
,
"sql"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
Tags
.
DB_INSTANCE
.
set
(
span
,
connectInfo
.
getDatabaseName
());
...
...
@@ -36,7 +37,7 @@ public class ConnectionTracing {
}
return
exec
.
exe
(
realConnection
,
sql
);
}
catch
(
SQLException
e
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
ERROR
.
set
(
span
,
true
);
span
.
log
(
e
);
throw
e
;
...
...
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/PreparedStatementTracing.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.plugin.jdbc
;
import
java.sql.SQLException
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.util.StringUtil
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
java.sql.SQLException
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.util.StringUtil
;
/**
* {@link PreparedStatementTracing} create span with the {@link Span#operationName} start with
...
...
@@ -21,7 +21,7 @@ public class PreparedStatementTracing {
ConnectionInfo
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/PreparedStatement/"
+
method
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/PreparedStatement/"
+
method
);
Tags
.
DB_TYPE
.
set
(
span
,
"sql"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
Tags
.
DB_INSTANCE
.
set
(
span
,
connectInfo
.
getDatabaseName
());
...
...
@@ -36,7 +36,7 @@ public class PreparedStatementTracing {
Tags
.
SPAN_LAYER
.
asDB
(
span
);
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
ERROR
.
set
(
span
,
true
);
span
.
log
(
e
);
throw
e
;
...
...
apm-sniffer/apm-sdk-plugin/jdbc-plugin/src/main/java/org/skywalking/apm/plugin/jdbc/StatementTracing.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.plugin.jdbc
;
import
java.sql.SQLException
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.util.StringUtil
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
java.sql.SQLException
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.util.StringUtil
;
/**
* {@link StatementTracing} create span with the {@link Span#operationName} start with
...
...
@@ -20,7 +20,7 @@ public class StatementTracing {
ConnectionInfo
connectInfo
,
String
method
,
String
sql
,
Executable
<
R
>
exec
)
throws
SQLException
{
try
{
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/Statement/"
+
method
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
connectInfo
.
getDBType
()
+
"/JDBI/Statement/"
+
method
);
Tags
.
DB_TYPE
.
set
(
span
,
"sql"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
Tags
.
DB_INSTANCE
.
set
(
span
,
connectInfo
.
getDatabaseName
());
...
...
@@ -35,7 +35,7 @@ public class StatementTracing {
}
return
exec
.
exe
(
realStatement
,
sql
);
}
catch
(
SQLException
e
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
ERROR
.
set
(
span
,
true
);
span
.
log
(
e
);
throw
e
;
...
...
apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.plugin.jedis.v2
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.assist.NoConcurrencyAccessObject
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.util.StringUtil
;
/**
...
...
@@ -50,7 +50,7 @@ public class JedisMethodInterceptor extends NoConcurrencyAccessObject implements
/**
* set peer host information for the current active span.
*/
private
void
tagPeer
(
Span
span
,
EnhancedClassInstanceContext
context
)
{
private
void
tagPeer
(
Abstract
Span
span
,
EnhancedClassInstanceContext
context
)
{
String
redisHosts
=
(
String
)
context
.
get
(
KEY_OF_REDIS_HOSTS
);
if
(!
StringUtil
.
isEmpty
(
redisHosts
))
{
span
.
setPeers
((
String
)
context
.
get
(
KEY_OF_REDIS_HOST
));
...
...
@@ -78,7 +78,7 @@ public class JedisMethodInterceptor extends NoConcurrencyAccessObject implements
@Override
protected
void
enter
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
Span
span
=
ContextManager
.
createSpan
(
"Jedis/"
+
interceptorContext
.
methodName
());
Abstract
Span
span
=
ContextManager
.
createSpan
(
"Jedis/"
+
interceptorContext
.
methodName
());
Tags
.
COMPONENT
.
set
(
span
,
REDIS_COMPONENT
);
Tags
.
DB_TYPE
.
set
(
span
,
REDIS_COMPONENT
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
...
...
apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java
浏览文件 @
983dd8ea
...
...
@@ -5,18 +5,35 @@ import com.mongodb.bulk.DeleteRequest;
import
com.mongodb.bulk.InsertRequest
;
import
com.mongodb.bulk.UpdateRequest
;
import
com.mongodb.bulk.WriteRequest
;
import
com.mongodb.operation.*
;
import
com.mongodb.operation.CountOperation
;
import
com.mongodb.operation.CreateCollectionOperation
;
import
com.mongodb.operation.CreateIndexesOperation
;
import
com.mongodb.operation.CreateViewOperation
;
import
com.mongodb.operation.DeleteOperation
;
import
com.mongodb.operation.DistinctOperation
;
import
com.mongodb.operation.FindAndDeleteOperation
;
import
com.mongodb.operation.FindAndReplaceOperation
;
import
com.mongodb.operation.FindAndUpdateOperation
;
import
com.mongodb.operation.FindOperation
;
import
com.mongodb.operation.GroupOperation
;
import
com.mongodb.operation.InsertOperation
;
import
com.mongodb.operation.ListCollectionsOperation
;
import
com.mongodb.operation.MapReduceToCollectionOperation
;
import
com.mongodb.operation.MapReduceWithInlineResultsOperation
;
import
com.mongodb.operation.MixedBulkWriteOperation
;
import
com.mongodb.operation.ReadOperation
;
import
com.mongodb.operation.UpdateOperation
;
import
com.mongodb.operation.WriteOperation
;
import
java.util.List
;
import
org.bson.BsonDocument
;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
java.util.List
;
/**
* {@link MongoDBMethodInterceptor} intercept method of {@link com.mongodb.Mongo#execute(ReadOperation, ReadPreference)}
...
...
@@ -51,7 +68,7 @@ public class MongoDBMethodInterceptor implements InstanceMethodsAroundIntercepto
Object
[]
arguments
=
interceptorContext
.
allArguments
();
String
methodName
=
arguments
[
0
].
getClass
().
getSimpleName
();
Span
span
=
ContextManager
.
createSpan
(
METHOD
+
methodName
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
METHOD
+
methodName
);
Tags
.
COMPONENT
.
set
(
span
,
MONGODB_COMPONENT
);
Tags
.
DB_TYPE
.
set
(
span
,
MONGODB_COMPONENT
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
...
...
@@ -66,7 +83,7 @@ public class MongoDBMethodInterceptor implements InstanceMethodsAroundIntercepto
@Override
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
span
.
setPeerHost
((
String
)
context
.
get
(
MONGODB_HOST
));
span
.
setPort
((
Integer
)
context
.
get
(
MONGODB_PORT
));
ContextManager
.
stopSpan
();
...
...
apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptor.java
浏览文件 @
983dd8ea
...
...
@@ -6,14 +6,14 @@ import com.weibo.api.motan.rpc.URL;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
/**
* {@link MotanProviderInterceptor} create span by fetch request url from
...
...
@@ -45,7 +45,7 @@ public class MotanConsumerInterceptor implements InstanceConstructorInterceptor,
URL
url
=
(
URL
)
context
.
get
(
KEY_NAME_OF_REQUEST_URL
);
Request
request
=
(
Request
)
interceptorContext
.
allArguments
()[
0
];
if
(
url
!=
null
)
{
Span
span
=
ContextManager
.
createSpan
(
generateOperationName
(
url
,
request
));
Abstract
Span
span
=
ContextManager
.
createSpan
(
generateOperationName
(
url
,
request
));
span
.
setPeerHost
(
url
.
getHost
());
span
.
setPort
(
url
.
getPort
());
Tags
.
COMPONENT
.
set
(
span
,
MOTAN_COMPONENT
);
...
...
@@ -64,7 +64,7 @@ public class MotanConsumerInterceptor implements InstanceConstructorInterceptor,
Object
ret
)
{
Response
response
=
(
Response
)
ret
;
if
(
response
!=
null
&&
response
.
getException
()
!=
null
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
ERROR
.
set
(
span
,
true
);
span
.
log
(
response
.
getException
());
}
...
...
apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptor.java
浏览文件 @
983dd8ea
...
...
@@ -5,13 +5,13 @@ import com.weibo.api.motan.rpc.Response;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.util.StringUtil
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
/**
* Current trace segment will ref the trace segment if the serialized trace context that fetch from {@link
...
...
@@ -32,7 +32,7 @@ public class MotanProviderInterceptor implements InstanceMethodsAroundIntercepto
public
void
beforeMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
MethodInterceptResult
result
)
{
Request
request
=
(
Request
)
interceptorContext
.
allArguments
()[
0
];
Span
span
=
ContextManager
.
createSpan
(
generateViewPoint
(
request
));
Abstract
Span
span
=
ContextManager
.
createSpan
(
generateViewPoint
(
request
));
Tags
.
COMPONENT
.
set
(
span
,
MOTAN_COMPONENT
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_SERVER
);
Tags
.
SPAN_LAYER
.
asRPCFramework
(
span
);
...
...
@@ -48,7 +48,7 @@ public class MotanProviderInterceptor implements InstanceMethodsAroundIntercepto
Object
ret
)
{
Response
response
=
(
Response
)
ret
;
if
(
response
!=
null
&&
response
.
getException
()
!=
null
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
span
.
log
(
response
.
getException
());
Tags
.
ERROR
.
set
(
span
,
true
);
}
...
...
apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/main/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptor.java
浏览文件 @
983dd8ea
...
...
@@ -9,14 +9,15 @@ import okhttp3.Response;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
/**
* {@link RealCallInterceptor} intercept the synchronous http calls by the client of okhttp.
...
...
@@ -57,7 +58,7 @@ public class RealCallInterceptor implements InstanceMethodsAroundInterceptor, In
MethodInterceptResult
result
)
throws
Throwable
{
Request
request
=
(
Request
)
context
.
get
(
REQUEST_CONTEXT_KEY
);
Span
span
=
ContextManager
.
createSpan
(
request
.
url
().
uri
().
toString
());
Abstract
Span
span
=
ContextManager
.
createSpan
(
request
.
url
().
uri
().
toString
());
span
.
setPeerHost
(
request
.
url
().
host
());
span
.
setPort
(
request
.
url
().
port
());
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
...
...
@@ -96,7 +97,7 @@ public class RealCallInterceptor implements InstanceMethodsAroundInterceptor, In
Response
response
=
(
Response
)
ret
;
int
statusCode
=
response
.
code
();
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
if
(
statusCode
>=
400
)
{
Tags
.
ERROR
.
set
(
span
,
true
);
}
...
...
apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v3/ResinV3Interceptor.java
浏览文件 @
983dd8ea
...
...
@@ -5,12 +5,12 @@ import com.caucho.server.http.HttpResponse;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.util.StringUtil
;
/**
...
...
@@ -30,7 +30,7 @@ public class ResinV3Interceptor implements InstanceMethodsAroundInterceptor {
MethodInterceptResult
result
)
{
Object
[]
args
=
interceptorContext
.
allArguments
();
CauchoRequest
request
=
(
CauchoRequest
)
args
[
0
];
Span
span
=
ContextManager
.
createSpan
(
request
.
getPageURI
());
Abstract
Span
span
=
ContextManager
.
createSpan
(
request
.
getPageURI
());
Tags
.
COMPONENT
.
set
(
span
,
RESIN_COMPONENT
);
span
.
setPeerHost
(
request
.
getServerName
());
span
.
setPort
(
request
.
getServerPort
());
...
...
@@ -65,7 +65,7 @@ public class ResinV3Interceptor implements InstanceMethodsAroundInterceptor {
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
HttpResponse
response
=
(
HttpResponse
)
interceptorContext
.
allArguments
()[
1
];
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
STATUS_CODE
.
set
(
span
,
response
.
getStatusCode
());
if
(
response
.
getStatusCode
()
!=
200
)
{
...
...
@@ -78,7 +78,7 @@ public class ResinV3Interceptor implements InstanceMethodsAroundInterceptor {
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
span
.
log
(
t
);
Tags
.
ERROR
.
set
(
span
,
true
);
}
...
...
apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/main/java/org/skywalking/apm/plugin/resin/v4/ResinV4Interceptor.java
浏览文件 @
983dd8ea
...
...
@@ -5,12 +5,12 @@ import javax.servlet.http.HttpServletResponse;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.util.StringUtil
;
/**
...
...
@@ -27,7 +27,7 @@ public class ResinV4Interceptor implements InstanceMethodsAroundInterceptor {
MethodInterceptResult
result
)
{
Object
[]
args
=
interceptorContext
.
allArguments
();
CauchoRequest
request
=
(
CauchoRequest
)
args
[
0
];
Span
span
=
ContextManager
.
createSpan
(
request
.
getPageURI
());
Abstract
Span
span
=
ContextManager
.
createSpan
(
request
.
getPageURI
());
Tags
.
COMPONENT
.
set
(
span
,
RESIN_COMPONENT
);
span
.
setPeerHost
(
request
.
getServerName
());
span
.
setPort
(
request
.
getServerPort
());
...
...
@@ -62,7 +62,7 @@ public class ResinV4Interceptor implements InstanceMethodsAroundInterceptor {
public
Object
afterMethod
(
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
,
Object
ret
)
{
HttpServletResponse
response
=
(
HttpServletResponse
)
interceptorContext
.
allArguments
()[
1
];
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
STATUS_CODE
.
set
(
span
,
response
.
getStatus
());
if
(
response
.
getStatus
()
!=
200
)
{
...
...
@@ -75,7 +75,7 @@ public class ResinV4Interceptor implements InstanceMethodsAroundInterceptor {
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
span
.
log
(
t
);
Tags
.
ERROR
.
set
(
span
,
true
);
}
...
...
apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/main/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptor.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.plugin.tomcat78x
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.skywalking.apm.agent.core.conf.Config
;
import
org.skywalking.apm.agent.core.context.ContextCarrier
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult
;
import
org.skywalking.apm.util.StringUtil
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
* {@link TomcatInterceptor} fetch the serialized context data by using {@link HttpServletRequest#getHeader(String)}.
...
...
@@ -40,7 +39,7 @@ public class TomcatInterceptor implements InstanceMethodsAroundInterceptor {
Object
[]
args
=
interceptorContext
.
allArguments
();
HttpServletRequest
request
=
(
HttpServletRequest
)
args
[
0
];
Span
span
=
ContextManager
.
createSpan
(
request
.
getRequestURI
());
Abstract
Span
span
=
ContextManager
.
createSpan
(
request
.
getRequestURI
());
Tags
.
COMPONENT
.
set
(
span
,
TOMCAT_COMPONENT
);
span
.
setPeerHost
(
fetchRequestPeerHost
(
request
));
span
.
setPort
(
request
.
getRemotePort
());
...
...
@@ -59,7 +58,7 @@ public class TomcatInterceptor implements InstanceMethodsAroundInterceptor {
Object
ret
)
{
HttpServletResponse
response
=
(
HttpServletResponse
)
interceptorContext
.
allArguments
()[
1
];
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
Tags
.
STATUS_CODE
.
set
(
span
,
response
.
getStatus
());
if
(
response
.
getStatus
()
!=
200
)
{
...
...
@@ -73,7 +72,7 @@ public class TomcatInterceptor implements InstanceMethodsAroundInterceptor {
@Override
public
void
handleMethodException
(
Throwable
t
,
EnhancedClassInstanceContext
context
,
InstanceMethodInvokeContext
interceptorContext
)
{
Span
span
=
ContextManager
.
activeSpan
();
Abstract
Span
span
=
ContextManager
.
activeSpan
();
span
.
log
(
t
);
Tags
.
ERROR
.
set
(
span
,
true
);
}
...
...
apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/builders/span/DubboSpanGenerator.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.sniffer.mock.trace.builders.span
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
/**
* The <code>DubboSpanGenerator</code> generates all possible spans, by tracing Dubbo rpc.
...
...
@@ -14,7 +14,7 @@ public class DubboSpanGenerator {
public
static
class
Client
extends
SpanGeneration
{
@Override
protected
void
before
()
{
Span
span
=
ContextManager
.
createSpan
(
"/default_rpc/org.skywalking.apm.test.persistence.PersistenceService.query"
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
"/default_rpc/org.skywalking.apm.test.persistence.PersistenceService.query"
);
Tags
.
COMPONENT
.
set
(
span
,
"Dubbo"
);
Tags
.
URL
.
set
(
span
,
"rest://192.168.1.8:20880/default_rpc/org.skywalking.apm.test.persistence.PersistenceService.query(String)"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_SERVER
);
...
...
@@ -32,7 +32,7 @@ public class DubboSpanGenerator {
public
static
class
Server
extends
SpanGeneration
{
@Override
protected
void
before
()
{
Span
span
=
ContextManager
.
createSpan
(
"/default_rpc/org.skywalking.apm.test.persistence.PersistenceService.query"
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
"/default_rpc/org.skywalking.apm.test.persistence.PersistenceService.query"
);
Tags
.
COMPONENT
.
set
(
span
,
"Dubbo"
);
Tags
.
URL
.
set
(
span
,
"rest://192.168.1.8:20880/default_rpc/org.skywalking.apm.test.persistence.PersistenceService.query(String)"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
...
...
apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/builders/span/MySQLGenerator.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.sniffer.mock.trace.builders.span
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
/**
* The <code>MySQLGenerator</code> generates all possible spans, by tracing mysql client access.
...
...
@@ -13,7 +13,7 @@ public class MySQLGenerator {
public
static
class
Query
extends
SpanGeneration
{
@Override
protected
void
before
()
{
Span
span
=
ContextManager
.
createSpan
(
"mysql/jdbi/statement/executeQuery"
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
"mysql/jdbi/statement/executeQuery"
);
Tags
.
COMPONENT
.
set
(
span
,
"Mysql"
);
Tags
.
SPAN_KIND
.
set
(
span
,
Tags
.
SPAN_KIND_CLIENT
);
span
.
setPeerHost
(
"10.5.34.18"
);
...
...
apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/builders/span/TomcatSpanGenerator.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.sniffer.mock.trace.builders.span
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
org.skywalking.apm.agent.core.context.tag.Tags
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
/**
* The <code>TomcatSpanGenerator</code> generate all possible spans, by tracing Tomcat.
...
...
@@ -15,7 +15,7 @@ public class TomcatSpanGenerator {
@Override
protected
void
before
()
{
Span
webSpan
=
ContextManager
.
createSpan
(
"/web/serviceA"
);
Abstract
Span
webSpan
=
ContextManager
.
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
);
...
...
@@ -26,7 +26,7 @@ public class TomcatSpanGenerator {
@Override
protected
void
after
()
{
Span
webSpan
=
ContextManager
.
activeSpan
();
Abstract
Span
webSpan
=
ContextManager
.
activeSpan
();
Tags
.
STATUS_CODE
.
set
(
webSpan
,
200
);
ContextManager
.
stopSpan
();
}
...
...
@@ -37,7 +37,7 @@ public class TomcatSpanGenerator {
@Override
protected
void
before
()
{
Span
webSpan
=
ContextManager
.
createSpan
(
"/web/service/unknown"
);
Abstract
Span
webSpan
=
ContextManager
.
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
);
...
...
@@ -48,7 +48,7 @@ public class TomcatSpanGenerator {
@Override
protected
void
after
()
{
Span
webSpan
=
ContextManager
.
activeSpan
();
Abstract
Span
webSpan
=
ContextManager
.
activeSpan
();
Tags
.
STATUS_CODE
.
set
(
webSpan
,
404
);
Tags
.
ERROR
.
set
(
webSpan
,
true
);
ContextManager
.
stopSpan
();
...
...
@@ -60,7 +60,7 @@ public class TomcatSpanGenerator {
@Override
protected
void
before
()
{
Span
webSpan
=
ContextManager
.
createSpan
(
"/web/error/service"
);
Abstract
Span
webSpan
=
ContextManager
.
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
);
...
...
@@ -71,7 +71,7 @@ public class TomcatSpanGenerator {
@Override
protected
void
after
()
{
Span
webSpan
=
ContextManager
.
activeSpan
();
Abstract
Span
webSpan
=
ContextManager
.
activeSpan
();
Tags
.
STATUS_CODE
.
set
(
webSpan
,
500
);
Tags
.
ERROR
.
set
(
webSpan
,
true
);
webSpan
.
log
(
new
NumberFormatException
(
"Can't convert 'abc' to int."
));
...
...
apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/main/java/org/skywalking/apm/toolkit/activation/opentracing/span/interceptor/SpanNewInstanceInterceptor.java
浏览文件 @
983dd8ea
package
org.skywalking.apm.toolkit.activation.opentracing.span.interceptor
;
import
java.util.Map
;
import
org.skywalking.apm.agent.core.context.ContextManager
;
import
org.skywalking.apm.agent.core.context.trace.AbstractSpan
;
import
org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvokeContext
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor
;
import
org.skywalking.apm.toolkit.opentracing.SkyWalkingSpan
;
import
org.skywalking.apm.agent.core.context.trace.Span
;
import
java.util.Map
;
/**
* Intercept {@link SkyWalkingSpan} constructor.
...
...
@@ -20,7 +19,7 @@ public class SpanNewInstanceInterceptor implements InstanceConstructorIntercepto
String
operationName
=
(
String
)
allArguments
[
0
];
long
startTime
=
(
Long
)
allArguments
[
1
];
Map
<
String
,
String
>
tags
=
(
Map
<
String
,
String
>)
allArguments
[
2
];
Span
span
=
ContextManager
.
createSpan
(
operationName
,
startTime
);
Abstract
Span
span
=
ContextManager
.
createSpan
(
operationName
,
startTime
);
for
(
Map
.
Entry
<
String
,
String
>
entry
:
tags
.
entrySet
())
{
span
.
setTag
(
entry
.
getKey
(),
entry
.
getValue
());
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录