Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
875ca84a
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 搜索 >>
提交
875ca84a
编写于
7月 31, 2016
作者:
A
ascrutae
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复无法找到Auth文件的问题,修噶JDBCPluginDefine的名字
上级
682a4cc6
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
44 addition
and
20 deletion
+44
-20
skywalking-collector/skywalking-agent/src/main/java/com/ai/cloud/skywalking/agent/SkywalkingAgent.java
...n/java/com/ai/cloud/skywalking/agent/SkywalkingAgent.java
+38
-5
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java
.../src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java
+1
-12
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java
...pi/src/main/java/com/ai/cloud/skywalking/conf/Config.java
+2
-0
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/JDBCPluginDefine.java
...com/ai/cloud/skywalking/plugin/jdbc/JDBCPluginDefine.java
+2
-2
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/resources/skywalking-plugin.def
...ugin/jdbc-plugin/src/main/resources/skywalking-plugin.def
+1
-1
未找到文件。
skywalking-collector/skywalking-agent/src/main/java/com/ai/cloud/skywalking/agent/SkywalkingAgent.java
浏览文件 @
875ca84a
...
...
@@ -2,32 +2,38 @@ package com.ai.cloud.skywalking.agent;
import
com.ai.cloud.skywalking.conf.AuthDesc
;
import
com.ai.cloud.skywalking.conf.Config
;
import
com.ai.cloud.skywalking.conf.ConfigInitializer
;
import
com.ai.cloud.skywalking.logging.LogManager
;
import
com.ai.cloud.skywalking.logging.Logger
;
import
com.ai.cloud.skywalking.plugin.*
;
import
com.ai.cloud.skywalking.plugin.boot.IBootPluginDefine
;
import
net.bytebuddy.agent.builder.AgentBuilder
;
import
net.bytebuddy.description.NamedElement
;
import
net.bytebuddy.description.type.TypeDescription
;
import
net.bytebuddy.dynamic.DynamicType
;
import
net.bytebuddy.matcher.ElementMatcher
;
import
net.bytebuddy.matcher.ElementMatchers
;
import
java.io.File
;
import
java.lang.instrument.Instrumentation
;
import
java.net.URL
;
import
java.util.List
;
public
class
SkywalkingAgent
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
SkywalkingAgent
.
class
);
public
static
void
premain
(
String
agentArgs
,
Instrumentation
instrumentation
)
throws
PluginException
{
Config
.
SkyWalking
.
IS_PREMAIN_MODE
=
true
;
if
(
!
AuthDesc
.
isAuth
())
{
initConfig
()
;
if
(
AuthDesc
.
isAuth
())
{
List
<
IPlugin
>
plugins
=
new
PluginBootstrap
().
loadPlugins
();
logger
.
info
(
"Loaded "
+
plugins
.
size
()
+
" plugin"
);
final
PluginDefineCategory
pluginDefineCategory
=
PluginDefineCategory
.
category
(
plugins
);
startBootPluginDefines
(
pluginDefineCategory
.
getBootPluginsDefines
());
new
AgentBuilder
.
Default
().
type
(
ElementMatchers
.<
TypeDescription
>
any
()).
transform
(
new
AgentBuilder
.
Transformer
()
{
new
AgentBuilder
.
Default
().
type
(
exclusivePackageClass
()).
transform
(
new
AgentBuilder
.
Transformer
()
{
public
DynamicType
.
Builder
<?>
transform
(
DynamicType
.
Builder
<?>
builder
,
TypeDescription
typeDescription
,
ClassLoader
classLoader
)
{
AbstractClassEnhancePluginDefine
pluginDefine
=
pluginDefineCategory
.
getClassEnhancePluginDefines
().
get
(
typeDescription
.
getTypeName
());
if
(
pluginDefine
==
null
)
{
...
...
@@ -36,7 +42,8 @@ public class SkywalkingAgent {
try
{
return
pluginDefine
.
define
(
builder
);
}
catch
(
PluginException
e
)
{
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
();
logger
.
error
(
"Failed to enhance plugin "
+
pluginDefine
.
getClass
().
getName
(),
e
);
return
builder
;
}
...
...
@@ -46,10 +53,36 @@ public class SkywalkingAgent {
}
}
private
static
ElementMatcher
.
Junction
<
NamedElement
>
exclusivePackageClass
()
{
return
ElementMatchers
.
nameStartsWith
(
"com.alibaba"
);
}
public
static
void
startBootPluginDefines
(
List
<
IBootPluginDefine
>
IBootPluginDefines
)
throws
PluginException
{
for
(
IBootPluginDefine
bootPluginDefine
:
IBootPluginDefines
)
{
bootPluginDefine
.
boot
();
}
}
private
static
String
generateLocationPath
()
{
return
SkywalkingAgent
.
class
.
getName
().
replaceAll
(
"\\."
,
"/"
)
+
".class"
;
}
private
static
void
initConfig
()
{
Config
.
SkyWalking
.
IS_PREMAIN_MODE
=
true
;
Config
.
SkyWalking
.
AGENT_BASE_PATH
=
initAgentBasePath
();
}
private
static
String
initAgentBasePath
()
{
try
{
String
urlString
=
SkywalkingAgent
.
class
.
getClassLoader
().
getSystemClassLoader
().
getResource
(
generateLocationPath
()).
toString
();
urlString
=
urlString
.
substring
(
urlString
.
indexOf
(
"file:"
),
urlString
.
indexOf
(
'!'
));
return
new
File
(
new
URL
(
urlString
).
getFile
()).
getParentFile
().
getAbsolutePath
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"Failed to init config ."
,
e
);
return
""
;
}
}
}
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java
浏览文件 @
875ca84a
...
...
@@ -7,7 +7,6 @@ import com.ai.cloud.skywalking.selfexamination.SDKHealthCollector;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.InputStream
;
import
java.net.URL
;
public
class
AuthDesc
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
AuthDesc
.
class
);
...
...
@@ -28,23 +27,13 @@ public class AuthDesc {
private
static
InputStream
fetchAuthFileInputStream
()
{
try
{
InputStream
authFileInputStream
;
String
urlString
=
ClassLoader
.
getSystemClassLoader
().
getResource
(
generateLocationPath
()).
toString
();
urlString
=
urlString
.
substring
(
urlString
.
indexOf
(
"file:"
),
urlString
.
indexOf
(
'!'
));
URL
url
=
new
URL
(
urlString
);
File
file
=
new
File
(
url
.
toURI
());
authFileInputStream
=
new
FileInputStream
(
file
.
getParentFile
().
getName
()
+
File
.
separator
+
"/sky-walking.auth"
);
return
authFileInputStream
;
return
new
FileInputStream
(
Config
.
SkyWalking
.
AGENT_BASE_PATH
+
File
.
separator
+
"/sky-walking.auth"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"Error to fetch auth file input stream."
,
e
);
return
null
;
}
}
private
static
String
generateLocationPath
()
{
return
AuthDesc
.
class
.
getName
().
replaceAll
(
"."
,
"/"
)
+
".class"
;
}
public
static
boolean
isAuth
()
{
return
isAuth
;
}
...
...
skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java
浏览文件 @
875ca84a
...
...
@@ -16,6 +16,8 @@ public class Config {
public
static
boolean
ALL_METHOD_MONITOR
=
false
;
public
static
boolean
IS_PREMAIN_MODE
=
false
;
public
static
String
AGENT_BASE_PATH
=
""
;
}
public
static
class
BuriedPoint
{
...
...
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/JDBCPluginDefine
I
.java
→
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/ai/cloud/skywalking/plugin/jdbc/JDBCPluginDefine.java
浏览文件 @
875ca84a
...
...
@@ -10,8 +10,8 @@ import com.ai.cloud.skywalking.logging.Logger;
import
com.ai.cloud.skywalking.plugin.boot.BootException
;
import
com.ai.cloud.skywalking.plugin.boot.IBootPluginDefine
;
public
class
JDBCPluginDefine
I
implements
IBootPluginDefine
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
JDBCPluginDefine
I
.
class
);
public
class
JDBCPluginDefine
implements
IBootPluginDefine
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
JDBCPluginDefine
.
class
);
@Override
public
void
boot
()
throws
BootException
{
...
...
skywalking-collector/skywalking-sdk-plugin/jdbc-plugin/src/main/resources/skywalking-plugin.def
浏览文件 @
875ca84a
com.ai.cloud.skywalking.plugin.jdbc.JDBCPluginDefine
I
com.ai.cloud.skywalking.plugin.jdbc.JDBCPluginDefine
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录