Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
javalover123888
SkyWalking
提交
8abb01dc
S
SkyWalking
项目概览
javalover123888
/
SkyWalking
与 Fork 源项目一致
Fork自
山不在高_有仙则灵 / SkyWalking
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8abb01dc
编写于
4月 10, 2018
作者:
L
lican
提交者:
wu-sheng
4月 10, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix #1055 and make code more readable (#1057)
上级
1261e03c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
63 addition
and
44 deletion
+63
-44
apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
...java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
+63
-44
未找到文件。
apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
浏览文件 @
8abb01dc
...
@@ -59,72 +59,91 @@ public class SkyWalkingAgent {
...
@@ -59,72 +59,91 @@ public class SkyWalkingAgent {
pluginFinder
=
new
PluginFinder
(
new
PluginBootstrap
().
loadPlugins
());
pluginFinder
=
new
PluginFinder
(
new
PluginBootstrap
().
loadPlugins
());
ServiceManager
.
INSTANCE
.
boot
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
"Skywalking agent initialized failure. Shutting down."
);
logger
.
error
(
e
,
"Skywalking agent initialized failure. Shutting down."
);
return
;
return
;
}
}
new
AgentBuilder
.
Default
()
.
type
(
pluginFinder
.
buildMatch
())
.
transform
(
new
Transformer
(
pluginFinder
))
.
with
(
new
Listener
())
.
installOn
(
instrumentation
);
try
{
ServiceManager
.
INSTANCE
.
boot
();
}
catch
(
Exception
e
)
{
logger
.
error
(
e
,
"Skywalking agent boot failure."
);
}
Runtime
.
getRuntime
().
addShutdownHook
(
new
Thread
(
new
Runnable
()
{
Runtime
.
getRuntime
().
addShutdownHook
(
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
@Override
public
void
run
()
{
ServiceManager
.
INSTANCE
.
shutdown
();
ServiceManager
.
INSTANCE
.
shutdown
();
}
}
},
"skywalking service shutdown thread"
));
},
"skywalking service shutdown thread"
));
}
new
AgentBuilder
.
Default
().
type
(
pluginFinder
.
buildMatch
()).
transform
(
new
AgentBuilder
.
Transformer
()
{
private
static
class
Transformer
implements
AgentBuilder
.
Transformer
{
@Override
private
PluginFinder
pluginFinder
;
public
DynamicType
.
Builder
<?>
transform
(
DynamicType
.
Builder
<?>
builder
,
TypeDescription
typeDescription
,
ClassLoader
classLoader
,
JavaModule
module
)
{
List
<
AbstractClassEnhancePluginDefine
>
pluginDefines
=
pluginFinder
.
find
(
typeDescription
,
classLoader
);
if
(
pluginDefines
.
size
()
>
0
)
{
DynamicType
.
Builder
<?>
newBuilder
=
builder
;
EnhanceContext
context
=
new
EnhanceContext
();
for
(
AbstractClassEnhancePluginDefine
define
:
pluginDefines
)
{
DynamicType
.
Builder
<?>
possibleNewBuilder
=
define
.
define
(
typeDescription
.
getTypeName
(),
newBuilder
,
classLoader
,
context
);
if
(
possibleNewBuilder
!=
null
)
{
newBuilder
=
possibleNewBuilder
;
}
}
if
(
context
.
isEnhanced
())
{
logger
.
debug
(
"Finish the prepare stage for {}."
,
typeDescription
.
getName
());
}
return
newBuilder
;
Transformer
(
PluginFinder
pluginFinder
)
{
this
.
pluginFinder
=
pluginFinder
;
}
@Override
public
DynamicType
.
Builder
<?>
transform
(
DynamicType
.
Builder
<?>
builder
,
TypeDescription
typeDescription
,
ClassLoader
classLoader
,
JavaModule
module
)
{
List
<
AbstractClassEnhancePluginDefine
>
pluginDefines
=
pluginFinder
.
find
(
typeDescription
,
classLoader
);
if
(
pluginDefines
.
size
()
>
0
)
{
DynamicType
.
Builder
<?>
newBuilder
=
builder
;
EnhanceContext
context
=
new
EnhanceContext
();
for
(
AbstractClassEnhancePluginDefine
define
:
pluginDefines
)
{
DynamicType
.
Builder
<?>
possibleNewBuilder
=
define
.
define
(
typeDescription
.
getTypeName
(),
newBuilder
,
classLoader
,
context
);
if
(
possibleNewBuilder
!=
null
)
{
newBuilder
=
possibleNewBuilder
;
}
}
if
(
context
.
isEnhanced
())
{
logger
.
debug
(
"Finish the prepare stage for {}."
,
typeDescription
.
getName
());
}
}
logger
.
debug
(
"Matched class {}, but ignore by finding mechanism."
,
typeDescription
.
getTypeName
());
return
newBuilder
;
return
builder
;
}
}
}).
with
(
new
AgentBuilder
.
Listener
()
{
@Override
public
void
onDiscovery
(
String
typeName
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
)
{
}
logger
.
debug
(
"Matched class {}, but ignore by finding mechanism."
,
typeDescription
.
getTypeName
());
return
builder
;
}
}
@Override
private
static
class
Listener
implements
AgentBuilder
.
Listener
{
public
void
onTransformation
(
TypeDescription
typeDescription
,
ClassLoader
classLoader
,
JavaModule
module
,
@Override
boolean
loaded
,
DynamicType
dynamicType
)
{
public
void
onDiscovery
(
String
typeName
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
)
{
if
(
logger
.
isDebugEnable
())
{
logger
.
debug
(
"On Transformation class {}."
,
typeDescription
.
getName
());
}
InstrumentDebuggingClass
.
INSTANCE
.
log
(
typeDescription
,
dynamicType
);
}
@Override
public
void
onTransformation
(
TypeDescription
typeDescription
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
,
DynamicType
dynamicType
)
{
if
(
logger
.
isDebugEnable
())
{
logger
.
debug
(
"On Transformation class {}."
,
typeDescription
.
getName
());
}
}
@Override
InstrumentDebuggingClass
.
INSTANCE
.
log
(
typeDescription
,
dynamicType
);
public
void
onIgnored
(
TypeDescription
typeDescription
,
ClassLoader
classLoader
,
JavaModule
module
,
}
boolean
loaded
)
{
@Override
public
void
onIgnored
(
TypeDescription
typeDescription
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
)
{
}
}
@Override
public
void
onError
(
String
typeName
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
,
@Override
Throwable
throwable
)
{
public
void
onError
(
String
typeName
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
,
logger
.
error
(
"Enhance class "
+
typeName
+
" error."
,
throwable
);
Throwable
throwable
)
{
}
logger
.
error
(
"Enhance class "
+
typeName
+
" error."
,
throwable
);
}
@Override
@Override
public
void
onComplete
(
String
typeName
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
)
{
public
void
onComplete
(
String
typeName
,
ClassLoader
classLoader
,
JavaModule
module
,
boolean
loaded
)
{
}
}
}).
installOn
(
instrumentation
);
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录