Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
javalover123888
SkyWalking
提交
b08470b8
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,发现更多精彩内容 >>
提交
b08470b8
编写于
12月 12, 2016
作者:
A
ascrutae
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复部分问题
上级
7d6e83d6
变更
27
隐藏空白更改
内联
并排
Showing
27 changed file
with
125 addition
and
80 deletion
+125
-80
skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/conf/Config.java
...src/main/java/com/a/eye/skywalking/alarm/conf/Config.java
+5
-5
skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/util/MailSender.java
...main/java/com/a/eye/skywalking/alarm/util/MailSender.java
+9
-4
skywalking-sniffer/skywalking-agent/pom.xml
skywalking-sniffer/skywalking-agent/pom.xml
+6
-0
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java
...ng-api/src/main/java/com/a/eye/skywalking/model/Span.java
+1
-1
skywalking-storage-center/skywalking-routing/pom.xml
skywalking-storage-center/skywalking-routing/pom.xml
+12
-0
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandler.java
.../com/a/eye/skywalking/routing/alarm/SpanAlarmHandler.java
+9
-9
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/CheckResult.java
...m/a/eye/skywalking/routing/alarm/checker/CheckResult.java
+1
-1
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExceptionChecker.java
...ye/skywalking/routing/alarm/checker/ExceptionChecker.java
+6
-6
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimeChecker.java
.../skywalking/routing/alarm/checker/ExecuteTimeChecker.java
+6
-7
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleErrorChecker.java
...outing/alarm/checker/ExecuteTimePossibleErrorChecker.java
+1
-1
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ExecuteTimePossibleWarningChecker.java
...ting/alarm/checker/ExecuteTimePossibleWarningChecker.java
+1
-1
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/FatalReason.java
...m/a/eye/skywalking/routing/alarm/checker/FatalReason.java
+2
-1
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/checker/ISpanChecker.java
.../a/eye/skywalking/routing/alarm/checker/ISpanChecker.java
+11
-0
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSender.java
...e/skywalking/routing/alarm/sender/AlarmMessageSender.java
+2
-2
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmMessageSenderFactory.java
...lking/routing/alarm/sender/AlarmMessageSenderFactory.java
+1
-1
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/alarm/sender/AlarmRedisConnector.java
.../skywalking/routing/alarm/sender/AlarmRedisConnector.java
+2
-2
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/config/Config.java
...main/java/com/a/eye/skywalking/routing/config/Config.java
+20
-0
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanDisruptor.java
...ye/skywalking/routing/disruptor/ack/AckSpanDisruptor.java
+2
-1
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanHolder.java
...a/eye/skywalking/routing/disruptor/ack/AckSpanHolder.java
+7
-0
skywalking-storage-center/skywalking-routing/src/test/java/com/a/eye/skywalking/routing/alarm/SpanAlarmHandlerTest.java
.../a/eye/skywalking/routing/alarm/SpanAlarmHandlerTest.java
+12
-11
skywalking-storage-center/skywalking-storage/pom.xml
skywalking-storage-center/skywalking-storage/pom.xml
+1
-5
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/config/Config.java
...main/java/com/a/eye/skywalking/storage/config/Config.java
+0
-18
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java
...eye/skywalking/storage/data/spandata/RequestSpanData.java
+4
-0
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java
.../eye/skywalking/storage/data/spandata/SpanDataHelper.java
+1
-1
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/listener/StorageListener.java
...om/a/eye/skywalking/storage/listener/StorageListener.java
+1
-2
skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/TraceTreeInfo.java
...main/java/com/a/eye/skywalking/web/dto/TraceTreeInfo.java
+1
-0
skywalking-webui/src/main/webapp/pages/common/traceInfo.ftl
skywalking-webui/src/main/webapp/pages/common/traceInfo.ftl
+1
-1
未找到文件。
skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/conf/Config.java
浏览文件 @
b08470b8
...
...
@@ -53,7 +53,7 @@ public class Config {
public
static
String
DRIVER_CLASS
=
"com.mysql.jdbc.Driver"
;
public
static
String
URL
=
"jdbc:mysql://127.0.0.1:33
16
/test"
;
public
static
String
URL
=
"jdbc:mysql://127.0.0.1:33
07
/test"
;
public
static
int
MAX_IDLE
=
1
;
...
...
@@ -86,7 +86,7 @@ public class Config {
public
static
class
MailSenderInfo
{
public
static
String
MAIL_HOST
=
"mail.com"
;
public
static
String
MAIL_HOST
=
"mail.
qq.
com"
;
public
static
String
TRANSPORT_PROTOCOL
=
"smtp"
;
...
...
@@ -94,11 +94,11 @@ public class Config {
public
static
boolean
SSL_ENABLE
=
false
;
public
static
String
USERNAME
=
"
username
"
;
public
static
String
USERNAME
=
"
skywalking@foxmail.com
"
;
public
static
String
PASSWORD
=
"
password
"
;
public
static
String
PASSWORD
=
"
tcaeuhuslkjlebjg
"
;
public
static
String
SENDER
=
"s
ender@
mail.com"
;
public
static
String
SENDER
=
"s
kywalking@fox
mail.com"
;
}
...
...
skywalking-alarm/src/main/java/com/a/eye/skywalking/alarm/util/MailSender.java
浏览文件 @
b08470b8
...
...
@@ -9,6 +9,8 @@ import javax.mail.*;
import
javax.mail.internet.AddressException
;
import
javax.mail.internet.InternetAddress
;
import
javax.mail.internet.MimeMessage
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Properties
;
public
class
MailSender
{
...
...
@@ -24,7 +26,7 @@ public class MailSender {
config
.
setProperty
(
"mail.transport.protocol"
,
Config
.
MailSenderInfo
.
TRANSPORT_PROTOCOL
);
config
.
setProperty
(
"mail.smtp.auth"
,
String
.
valueOf
(
Config
.
MailSenderInfo
.
SMTP_AUTH
));
config
.
setProperty
(
"mail.smtp.socketFactory.port"
,
"
465
"
);
config
.
setProperty
(
"mail.smtp.socketFactory.port"
,
"
587
"
);
config
.
setProperty
(
"mail.debug"
,
"true"
);
//config.setProperty("mail.smtp.ssl.enable", "true");
if
(
Config
.
MailSenderInfo
.
SSL_ENABLE
)
{
...
...
@@ -56,11 +58,14 @@ public class MailSender {
}
message
.
addRecipients
(
Message
.
RecipientType
.
TO
,
recipientAccountArray
);
if
(
ccList
!=
null
&&
ccList
.
length
>
0
)
{
InternetAddress
[]
ccAccountArray
=
new
InternetAddress
[
ccList
.
length
]
;
List
<
InternetAddress
>
ccAccountArray
=
new
ArrayList
<
InternetAddress
>()
;
for
(
int
i
=
0
;
i
<
ccList
.
length
;
i
++)
{
ccAccountArray
[
i
]
=
new
InternetAddress
(
ccList
[
i
]);
if
(
ccList
[
i
]
!=
null
&&
ccList
[
i
].
length
()
>
0
)
ccAccountArray
.
add
(
new
InternetAddress
(
ccList
[
i
]));
}
if
(
ccAccountArray
.
size
()
>
0
)
{
message
.
addRecipients
(
Message
.
RecipientType
.
CC
,
ccAccountArray
.
toArray
(
new
InternetAddress
[
ccAccountArray
.
size
()]));
}
message
.
addRecipients
(
Message
.
RecipientType
.
CC
,
ccAccountArray
);
}
message
.
setSubject
(
title
);
message
.
setContent
(
content
,
"text/html;charset=UTF-8"
);
...
...
skywalking-sniffer/skywalking-agent/pom.xml
浏览文件 @
b08470b8
...
...
@@ -69,6 +69,12 @@
<artifactId>
skywalking-toolkit-log4j-2.x-activation
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-toolkit-logback-1.x-activation
</artifactId>
<version>
${project.version}
</version>
</dependency>
</dependencies>
<build>
<finalName>
${artifactId}
</finalName>
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java
浏览文件 @
b08470b8
...
...
@@ -158,7 +158,7 @@ public class Span {
public
RequestSpan
.
Builder
buildRequestSpan
(
RequestSpan
.
Builder
builder
)
{
builder
.
setTraceId
(
this
.
traceId
).
setParentLevel
(
this
.
parentLevel
).
setLevelId
(
this
.
levelId
).
setSpanType
(
this
.
spanType
).
setApplicationCode
(
Config
.
SkyWalking
.
APPLICATION_CODE
)
.
setUsername
(
Config
.
SkyWalking
.
USERNAME
).
setRouteKey
(
routeKey
);
.
set
StartDate
(
this
.
startDate
).
set
Username
(
Config
.
SkyWalking
.
USERNAME
).
setRouteKey
(
routeKey
);
return
builder
;
}
...
...
skywalking-storage-center/skywalking-routing/pom.xml
浏览文件 @
b08470b8
...
...
@@ -30,5 +30,17 @@
<version>
3.2.0
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
redis.clients
</groupId>
<artifactId>
jedis
</artifactId>
<version>
2.8.0
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-util
</artifactId>
<version>
2.0-2016
</version>
</dependency>
</dependencies>
</project>
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/SpanAlarmHandler.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/SpanAlarmHandler.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm
;
package
com.a.eye.skywalking.
routing
.alarm
;
import
com.a.eye.skywalking.
storage
.alarm.checker.*
;
import
com.a.eye.skywalking.
storage
.alarm.sender.AlarmMessageSenderFactory
;
import
com.a.eye.skywalking.
storage.data.spandata.AckSpanData
;
import
com.a.eye.skywalking.
routing
.alarm.checker.*
;
import
com.a.eye.skywalking.
routing
.alarm.sender.AlarmMessageSenderFactory
;
import
com.a.eye.skywalking.
routing.disruptor.ack.AckSpanHolder
;
import
com.a.eye.skywalking.util.TraceIdUtil
;
import
com.lmax.disruptor.EventHandler
;
...
...
@@ -12,7 +12,7 @@ import java.util.List;
/**
* Created by xin on 2016/12/8.
*/
public
class
SpanAlarmHandler
implements
EventHandler
<
AckSpan
Data
>
{
public
class
SpanAlarmHandler
implements
EventHandler
<
AckSpan
Holder
>
{
private
List
<
ISpanChecker
>
spanCheckers
=
new
ArrayList
<
ISpanChecker
>();
public
SpanAlarmHandler
()
{
...
...
@@ -21,16 +21,16 @@ public class SpanAlarmHandler implements EventHandler<AckSpanData> {
spanCheckers
.
add
(
new
ExecuteTimePossibleErrorChecker
());
}
private
String
generateAlarmMessageKey
(
AckSpan
Data
span
,
FatalReason
reason
)
{
return
span
.
get
UserName
()
+
"-"
+
span
.
getApplicationCode
()
+
"-"
+
(
System
.
currentTimeMillis
()
/
(
10000
*
6
))
+
reason
.
getDetail
();
private
String
generateAlarmMessageKey
(
AckSpan
Holder
span
,
FatalReason
reason
)
{
return
span
.
get
AckSpan
().
getUsername
()
+
"-"
+
span
.
getAckSpan
()
.
getApplicationCode
()
+
"-"
+
(
System
.
currentTimeMillis
()
/
(
10000
*
6
))
+
reason
.
getDetail
();
}
@Override
public
void
onEvent
(
AckSpan
Data
spanData
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
public
void
onEvent
(
AckSpan
Holder
spanData
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
for
(
ISpanChecker
spanChecker
:
spanCheckers
)
{
CheckResult
result
=
spanChecker
.
check
(
spanData
);
if
(!
result
.
isPassed
())
{
AlarmMessageSenderFactory
.
getSender
().
send
(
generateAlarmMessageKey
(
spanData
,
result
.
getFatalReason
()),
TraceIdUtil
.
formatTraceId
(
spanData
.
getTraceId
()),
result
.
getMessage
());
AlarmMessageSenderFactory
.
getSender
().
send
(
generateAlarmMessageKey
(
spanData
,
result
.
getFatalReason
()),
TraceIdUtil
.
formatTraceId
(
spanData
.
get
AckSpan
().
get
TraceId
()),
result
.
getMessage
());
}
}
}
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/checker/CheckResult.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/checker/CheckResult.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.checker
;
package
com.a.eye.skywalking.
routing
.alarm.checker
;
/**
* Created by xin on 2016/12/8.
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/checker/ExceptionChecker.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/checker/ExceptionChecker.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.checker
;
package
com.a.eye.skywalking.
routing
.alarm.checker
;
import
com.a.eye.skywalking.
storage
.config.Config
;
import
com.a.eye.skywalking.
storage.data.spandata.AckSpanData
;
import
com.a.eye.skywalking.
routing
.config.Config
;
import
com.a.eye.skywalking.
routing.disruptor.ack.AckSpanHolder
;
public
class
ExceptionChecker
implements
ISpanChecker
{
@Override
public
CheckResult
check
(
AckSpan
Data
span
)
{
if
(
span
.
getStatusCode
()
!=
1
)
public
CheckResult
check
(
AckSpan
Holder
span
)
{
if
(
span
.
get
AckSpan
().
get
StatusCode
()
!=
1
)
return
new
CheckResult
();
String
exceptionStack
=
span
.
getExceptionStack
();
String
exceptionStack
=
span
.
get
AckSpan
().
get
ExceptionStack
();
if
(
exceptionStack
==
null
)
{
exceptionStack
=
""
;
}
else
if
(
exceptionStack
.
length
()
>
Config
.
Alarm
.
ALARM_EXCEPTION_STACK_LENGTH
)
{
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/checker/ExecuteTimeChecker.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/checker/ExecuteTimeChecker.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.checker
;
package
com.a.eye.skywalking.
routing
.alarm.checker
;
import
com.a.eye.skywalking.network.grpc.AckSpan
;
import
com.a.eye.skywalking.storage.data.spandata.AckSpanData
;
import
com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder
;
/**
* Created by xin on 2016/12/8.
...
...
@@ -9,8 +8,8 @@ import com.a.eye.skywalking.storage.data.spandata.AckSpanData;
public
abstract
class
ExecuteTimeChecker
implements
ISpanChecker
{
@Override
public
CheckResult
check
(
AckSpan
Data
span
)
{
long
cost
=
span
.
getCost
();
public
CheckResult
check
(
AckSpan
Holder
span
)
{
long
cost
=
span
.
get
AckSpan
().
get
Cost
();
if
(
isOverThreshold
(
cost
))
{
return
new
CheckResult
(
getFatalLevel
(),
generateAlarmMessage
(
span
));
}
...
...
@@ -22,8 +21,8 @@ public abstract class ExecuteTimeChecker implements ISpanChecker {
protected
abstract
FatalReason
getFatalLevel
();
protected
String
generateAlarmMessage
(
AckSpan
Data
span
)
{
return
span
.
get
ViewPointId
()
+
" cost "
+
span
.
getCost
()
+
" ms."
;
protected
String
generateAlarmMessage
(
AckSpan
Holder
span
)
{
return
span
.
get
AckSpan
().
getViewpointId
()
+
" cost "
+
span
.
getAckSpan
()
.
getCost
()
+
" ms."
;
}
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/checker/ExecuteTimePossibleErrorChecker.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/checker/ExecuteTimePossibleErrorChecker.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.checker
;
package
com.a.eye.skywalking.
routing
.alarm.checker
;
/**
* Created by xin on 2016/12/8.
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/checker/ExecuteTimePossibleWarningChecker.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/checker/ExecuteTimePossibleWarningChecker.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.checker
;
package
com.a.eye.skywalking.
routing
.alarm.checker
;
/**
* Created by xin on 2016/12/8.
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/checker/FatalReason.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/checker/FatalReason.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.checker
;
package
com.a.eye.skywalking.
routing
.alarm.checker
;
/**
* Created by xin on 2016/12/8.
*/
public
enum
FatalReason
{
EXCEPTION_ERROR
(
""
),
EXECUTE_TIME_ERROR
(
"-ExecuteTime-PossibleError"
),
EXECUTE_TIME_WARNING
(
"-ExecuteTime-Warning"
);
private
String
detail
;
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/checker/ISpanChecker.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/checker/ISpanChecker.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.checker
;
package
com.a.eye.skywalking.
routing
.alarm.checker
;
import
com.a.eye.skywalking.storage.data.spandata.AckSpanData
;
import
com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder
;
/**
* Created by xin on 2016/12/8.
*/
public
interface
ISpanChecker
{
CheckResult
check
(
AckSpan
Data
span
);
CheckResult
check
(
AckSpan
Holder
span
);
}
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/sender/AlarmMessageSender.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/sender/AlarmMessageSender.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.sender
;
package
com.a.eye.skywalking.
routing
.alarm.sender
;
import
com.a.eye.skywalking.logging.api.ILog
;
import
com.a.eye.skywalking.logging.api.LogManager
;
import
com.a.eye.skywalking.
storage
.config.Config
;
import
com.a.eye.skywalking.
routing
.config.Config
;
import
redis.clients.jedis.Jedis
;
/**
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/sender/AlarmMessageSenderFactory.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/sender/AlarmMessageSenderFactory.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.sender
;
package
com.a.eye.skywalking.
routing
.alarm.sender
;
/**
* Created by xin on 2016/12/8.
...
...
skywalking-storage-center/skywalking-
storage/src/main/java/com/a/eye/skywalking/storage
/alarm/sender/AlarmRedisConnector.java
→
skywalking-storage-center/skywalking-
routing/src/main/java/com/a/eye/skywalking/routing
/alarm/sender/AlarmRedisConnector.java
浏览文件 @
b08470b8
package
com.a.eye.skywalking.
storage
.alarm.sender
;
package
com.a.eye.skywalking.
routing
.alarm.sender
;
import
com.a.eye.skywalking.logging.api.ILog
;
import
com.a.eye.skywalking.logging.api.LogManager
;
import
com.a.eye.skywalking.
storage
.config.Config
;
import
com.a.eye.skywalking.
routing
.config.Config
;
import
org.apache.commons.pool2.impl.GenericObjectPoolConfig
;
import
redis.clients.jedis.Jedis
;
import
redis.clients.jedis.JedisPool
;
...
...
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/config/Config.java
浏览文件 @
b08470b8
...
...
@@ -35,4 +35,24 @@ public class Config {
public
static
int
FLUSH_SIZE
=
100
;
}
public
static
class
Alarm
{
public
static
String
REDIS_SERVER
=
"127.0.0.1:6379"
;
public
static
boolean
ALARM_OFF_FLAG
=
false
;
public
static
int
ALARM_EXCEPTION_STACK_LENGTH
=
300
;
public
static
long
ALARM_REDIS_INSPECTOR_INTERVAL
=
100
;
public
static
int
REDIS_MAX_IDLE
=
10
;
public
static
int
REDIS_MIN_IDLE
=
1
;
public
static
int
REDIS_MAX_TOTAL
=
30
;
public
static
int
ALARM_EXPIRE_SECONDS
=
1000
*
60
*
90
;
}
}
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanDisruptor.java
浏览文件 @
b08470b8
...
...
@@ -5,6 +5,7 @@ import com.a.eye.skywalking.health.report.HeathReading;
import
com.a.eye.skywalking.logging.api.ILog
;
import
com.a.eye.skywalking.logging.api.LogManager
;
import
com.a.eye.skywalking.network.grpc.AckSpan
;
import
com.a.eye.skywalking.routing.alarm.SpanAlarmHandler
;
import
com.a.eye.skywalking.routing.config.Config
;
import
com.a.eye.skywalking.routing.disruptor.AbstractSpanDisruptor
;
import
com.lmax.disruptor.InsufficientCapacityException
;
...
...
@@ -25,7 +26,7 @@ public class AckSpanDisruptor extends AbstractSpanDisruptor {
public
AckSpanDisruptor
(
String
connectionURL
)
{
ackSpanDisruptor
=
new
Disruptor
<
AckSpanHolder
>(
new
AckSpanFactory
(),
Config
.
Disruptor
.
BUFFER_SIZE
,
DaemonThreadFactory
.
INSTANCE
);
ackSpanEventHandler
=
new
RouteAckSpanBufferEventHandler
(
connectionURL
);
ackSpanDisruptor
.
handleEventsWith
(
ackSpanEventHandler
);
ackSpanDisruptor
.
handleEventsWith
(
ackSpanEventHandler
,
new
SpanAlarmHandler
()
);
ackSpanDisruptor
.
start
();
ackSpanRingBuffer
=
ackSpanDisruptor
.
getRingBuffer
();
}
...
...
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/AckSpanHolder.java
浏览文件 @
b08470b8
...
...
@@ -8,6 +8,13 @@ import com.a.eye.skywalking.network.grpc.AckSpan;
public
class
AckSpanHolder
{
private
AckSpan
ackSpan
;
public
AckSpanHolder
()
{
}
public
AckSpanHolder
(
AckSpan
ackSpan
)
{
this
.
ackSpan
=
ackSpan
;
}
public
void
setAckSpan
(
AckSpan
ackSpan
)
{
this
.
ackSpan
=
ackSpan
;
}
...
...
skywalking-storage-center/skywalking-
storage/src/test/java/com/a/eye/skywalking/storage
/alarm/SpanAlarmHandlerTest.java
→
skywalking-storage-center/skywalking-
routing/src/test/java/com/a/eye/skywalking/routing
/alarm/SpanAlarmHandlerTest.java
浏览文件 @
b08470b8
...
...
@@ -2,9 +2,10 @@ package com.a.eye.skywalking.storage.alarm;
import
com.a.eye.skywalking.network.grpc.AckSpan
;
import
com.a.eye.skywalking.network.grpc.TraceId
;
import
com.a.eye.skywalking.storage.alarm.sender.AlarmMessageSender
;
import
com.a.eye.skywalking.storage.alarm.sender.AlarmMessageSenderFactory
;
import
com.a.eye.skywalking.storage.data.spandata.AckSpanData
;
import
com.a.eye.skywalking.routing.alarm.SpanAlarmHandler
;
import
com.a.eye.skywalking.routing.alarm.sender.AlarmMessageSender
;
import
com.a.eye.skywalking.routing.alarm.sender.AlarmMessageSenderFactory
;
import
com.a.eye.skywalking.routing.disruptor.ack.AckSpanHolder
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
...
...
@@ -25,10 +26,10 @@ public class SpanAlarmHandlerTest {
private
AlarmMessageSender
messageHandler
;
@InjectMocks
private
SpanAlarmHandler
handler
;
private
AckSpan
Data
normalAckSpan
;
private
AckSpan
Data
costMuchSpan
;
private
AckSpan
Data
costTooMuchSpan
;
private
AckSpan
Data
exceptionSpan
;
private
AckSpan
Holder
normalAckSpan
;
private
AckSpan
Holder
costMuchSpan
;
private
AckSpan
Holder
costTooMuchSpan
;
private
AckSpan
Holder
exceptionSpan
;
@Before
public
void
setUp
()
{
...
...
@@ -40,10 +41,10 @@ public class SpanAlarmHandlerTest {
.
addSegments
(
2016
).
addSegments
(
startTime
).
addSegments
(
2
).
addSegments
(
100
).
addSegments
(
30
)
.
addSegments
(
1
).
build
());
normalAckSpan
=
new
AckSpan
Data
(
builder
.
build
());
costMuchSpan
=
new
AckSpan
Data
(
builder
.
setCost
(
600
).
build
());
costTooMuchSpan
=
new
AckSpan
Data
(
builder
.
setCost
(
4000
).
build
());
exceptionSpan
=
new
AckSpan
Data
(
builder
.
setCost
(
20
).
setStatusCode
(
1
).
setExceptionStack
(
"occur exception"
).
build
());
normalAckSpan
=
new
AckSpan
Holder
(
builder
.
build
());
costMuchSpan
=
new
AckSpan
Holder
(
builder
.
setCost
(
600
).
build
());
costTooMuchSpan
=
new
AckSpan
Holder
(
builder
.
setCost
(
4000
).
build
());
exceptionSpan
=
new
AckSpan
Holder
(
builder
.
setCost
(
20
).
setStatusCode
(
1
).
setExceptionStack
(
"occur exception"
).
build
());
}
@Test
...
...
skywalking-storage-center/skywalking-storage/pom.xml
浏览文件 @
b08470b8
...
...
@@ -31,11 +31,7 @@
<version>
1.17
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
redis.clients
</groupId>
<artifactId>
jedis
</artifactId>
<version>
2.8.0
</version>
</dependency>
<dependency>
<groupId>
com.a.eye
</groupId>
<artifactId>
skywalking-util
</artifactId>
...
...
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/config/Config.java
浏览文件 @
b08470b8
...
...
@@ -43,22 +43,4 @@ public class Config {
public
static
String
PATH_PREFIX
=
"/skywalking/storage_list/"
;
}
public
static
class
Alarm
{
public
static
String
REDIS_SERVER
=
"127.0.0.1:6379"
;
public
static
boolean
ALARM_OFF_FLAG
=
false
;
public
static
int
ALARM_EXCEPTION_STACK_LENGTH
=
300
;
public
static
long
ALARM_REDIS_INSPECTOR_INTERVAL
=
100
;
public
static
int
REDIS_MAX_IDLE
=
10
;
public
static
int
REDIS_MIN_IDLE
=
1
;
public
static
int
REDIS_MAX_TOTAL
=
30
;
public
static
int
ALARM_EXPIRE_SECONDS
=
1000
*
60
*
90
;
}
}
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/RequestSpanData.java
浏览文件 @
b08470b8
...
...
@@ -86,4 +86,8 @@ public class RequestSpanData extends AbstractSpanData {
public
String
getViewPoint
(){
return
requestSpan
.
getViewPointId
();
}
public
String
getSpanTypeDesc
()
{
return
requestSpan
.
getSpanTypeDesc
();
}
}
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/spandata/SpanDataHelper.java
浏览文件 @
b08470b8
...
...
@@ -51,7 +51,7 @@ public class SpanDataHelper {
}
builder
=
builder
.
setLevelId
(
requestSpanData
.
getLevelId
()).
setParentLevelId
(
requestSpanData
.
getParentLevelId
()).
setProcessNo
(
requestSpanData
.
getProcessNo
())
.
setSpanType
(
requestSpanData
.
getType
()).
setStartTime
(
requestSpanData
.
getStartTime
())
.
setSpanType
(
requestSpanData
.
getType
()).
setS
panTypeDesc
(
requestSpanData
.
getSpanTypeDesc
()).
setS
tartTime
(
requestSpanData
.
getStartTime
())
.
setStatusCode
(
ackSpanData
.
getStatusCode
())
.
setViewpoint
(
requestSpanData
.
getViewPoint
())
.
setTraceId
(
TraceId
.
newBuilder
().
addAllSegments
(
Arrays
.
asList
(
requestSpanData
.
getTraceIdSegments
())));
...
...
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/listener/StorageListener.java
浏览文件 @
b08470b8
...
...
@@ -7,7 +7,6 @@ import com.a.eye.skywalking.logging.api.LogManager;
import
com.a.eye.skywalking.network.grpc.AckSpan
;
import
com.a.eye.skywalking.network.grpc.RequestSpan
;
import
com.a.eye.skywalking.network.listener.server.SpanStorageServerListener
;
import
com.a.eye.skywalking.storage.alarm.SpanAlarmHandler
;
import
com.a.eye.skywalking.storage.config.Config
;
import
com.a.eye.skywalking.storage.data.spandata.AckSpanData
;
import
com.a.eye.skywalking.storage.data.spandata.RequestSpanData
;
...
...
@@ -36,7 +35,7 @@ public class StorageListener implements SpanStorageServerListener {
requestSpanRingBuffer
=
requestSpanDisruptor
.
getRingBuffer
();
ackSpanDisruptor
=
new
Disruptor
<
AckSpanData
>(
new
AckSpanFactory
(),
Config
.
Disruptor
.
BUFFER_SIZE
,
DaemonThreadFactory
.
INSTANCE
);
ackSpanDisruptor
.
handleEventsWith
(
new
StoreAckSpanEventHandler
()
,
new
SpanAlarmHandler
()
);
ackSpanDisruptor
.
handleEventsWith
(
new
StoreAckSpanEventHandler
());
ackSpanDisruptor
.
start
();
ackSpanRingBuffer
=
ackSpanDisruptor
.
getRingBuffer
();
}
...
...
skywalking-webui/src/main/java/com/a/eye/skywalking/web/dto/TraceTreeInfo.java
浏览文件 @
b08470b8
...
...
@@ -55,6 +55,7 @@ public class TraceTreeInfo {
public
void
setHasBeenSpiltNodes
(
List
<
TraceNodeInfo
>
nodes
)
{
this
.
nodes
=
nodes
;
this
.
nodeSize
=
nodes
.
size
();
}
public
void
setRealNodeSize
(
int
nodeSize
)
{
...
...
skywalking-webui/src/main/webapp/pages/common/traceInfo.ftl
浏览文件 @
b08470b8
...
...
@@ -122,7 +122,7 @@
<li class="list-group-item"><strong>花费时间:</strong>{{>cost}}<strong>毫秒</strong></li>
<li class="list-group-item"><strong>业务字段:</strong>{{>businessKey}}</li>
<li class="list-group-item"><strong>应用Code:</strong>{{>applicationCode}}</li>
<li class="list-group-item"><strong>主机信息:</strong>{{>address}}
}
</li>
<li class="list-group-item"><strong>主机信息:</strong>{{>address}}</li>
<li class="list-group-item"><strong>调用进程号:</strong>{{>processNo}}</li>
<li class="list-group-item"><strong>异常堆栈:</strong>
{{if exceptionStack}}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录