Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
4dbd2a75
C
cat
项目概览
梦中观雨
/
cat
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4dbd2a75
编写于
11月 20, 2014
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the cat problem all report
上级
6e6b30c5
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
5 addition
and
171 deletion
+5
-171
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
...m/dianping/cat/consumer/build/ComponentsConfigurator.java
+2
-3
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemAnalyzer.java
...va/com/dianping/cat/consumer/problem/ProblemAnalyzer.java
+3
-14
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemDelegate.java
...va/com/dianping/cat/consumer/problem/ProblemDelegate.java
+0
-26
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemReportAllBuilder.java
...ianping/cat/consumer/problem/ProblemReportAllBuilder.java
+0
-92
cat-consumer/src/main/resources/META-INF/plexus/components.xml
...onsumer/src/main/resources/META-INF/plexus/components.xml
+0
-4
cat-consumer/src/test/java/com/dianping/cat/consumer/AllTests.java
...mer/src/test/java/com/dianping/cat/consumer/AllTests.java
+0
-3
cat-consumer/src/test/java/com/dianping/cat/consumer/problem/ProblemReportAllBuilderTest.java
...ing/cat/consumer/problem/ProblemReportAllBuilderTest.java
+0
-29
未找到文件。
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
浏览文件 @
4dbd2a75
...
...
@@ -138,8 +138,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
MessageAnalyzer
.
class
,
ID
,
ProblemAnalyzer
.
class
).
is
(
PER_LOOKUP
)
//
.
req
(
ReportManager
.
class
,
ID
).
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
ProblemHandler
.
class
,
//
.
req
(
ReportManager
.
class
,
ID
).
req
(
ProblemHandler
.
class
,
//
new
String
[]
{
DefaultProblemHandler
.
ID
,
LongExecutionProblemHandler
.
ID
},
"m_handlers"
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
...
...
@@ -196,7 +195,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
return
all
;
}
private
Collection
<
Component
>
defineMetricComponents
()
{
final
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemAnalyzer.java
浏览文件 @
4dbd2a75
...
...
@@ -2,7 +2,6 @@ package com.dianping.cat.consumer.problem;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
org.codehaus.plexus.logging.LogEnabled
;
import
org.codehaus.plexus.logging.Logger
;
...
...
@@ -10,7 +9,6 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.analysis.AbstractMessageAnalyzer
;
import
com.dianping.cat.consumer.problem.model.entity.Machine
;
import
com.dianping.cat.consumer.problem.model.entity.ProblemReport
;
...
...
@@ -24,9 +22,6 @@ public class ProblemAnalyzer extends AbstractMessageAnalyzer<ProblemReport> impl
@Inject
(
ID
)
private
ReportManager
<
ProblemReport
>
m_reportManager
;
@Inject
private
ProblemDelegate
m_problemDelegate
;
@Inject
private
List
<
ProblemHandler
>
m_handlers
;
...
...
@@ -46,17 +41,11 @@ public class ProblemAnalyzer extends AbstractMessageAnalyzer<ProblemReport> impl
@Override
public
ProblemReport
getReport
(
String
domain
)
{
if
(!
Constants
.
ALL
.
equals
(
domain
))
{
ProblemReport
report
=
m_reportManager
.
getHourlyReport
(
getStartTime
(),
domain
,
false
);
ProblemReport
report
=
m_reportManager
.
getHourlyReport
(
getStartTime
(),
domain
,
false
);
report
.
getDomainNames
().
addAll
(
m_reportManager
.
getDomains
(
getStartTime
()));
report
.
getDomainNames
().
addAll
(
m_reportManager
.
getDomains
(
getStartTime
()));
return
report
;
}
else
{
Map
<
String
,
ProblemReport
>
reports
=
m_reportManager
.
getHourlyReports
(
getStartTime
());
return
m_problemDelegate
.
createAggregatedReport
(
reports
);
}
return
report
;
}
@Override
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemDelegate.java
浏览文件 @
4dbd2a75
...
...
@@ -39,12 +39,6 @@ public class ProblemDelegate implements ReportDelegate<ProblemReport> {
domainNames
.
addAll
(
reports
.
keySet
());
}
if
(
reports
.
size
()
>
0
)
{
ProblemReport
all
=
createAggregatedReport
(
reports
);
reports
.
put
(
all
.
getDomain
(),
all
);
}
try
{
ProblemReportURLFilter
problemReportURLFilter
=
new
ProblemReportURLFilter
();
...
...
@@ -68,26 +62,6 @@ public class ProblemDelegate implements ReportDelegate<ProblemReport> {
return
report
.
toString
();
}
public
ProblemReport
createAggregatedReport
(
Map
<
String
,
ProblemReport
>
reports
)
{
ProblemReport
report
=
new
ProblemReport
(
Constants
.
ALL
);
ProblemReportAllBuilder
visitor
=
new
ProblemReportAllBuilder
(
report
);
try
{
for
(
ProblemReport
r
:
reports
.
values
())
{
String
domain
=
r
.
getDomain
();
if
(
m_manager
.
validateDomain
(
domain
))
{
report
.
getIps
().
add
(
domain
);
report
.
getDomainNames
().
add
(
domain
);
visitor
.
visitProblemReport
(
r
);
}
}
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
}
return
report
;
}
@Override
public
boolean
createHourlyTask
(
ProblemReport
report
)
{
String
domain
=
report
.
getDomain
();
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemReportAllBuilder.java
已删除
100644 → 0
浏览文件 @
6e6b30c5
package
com.dianping.cat.consumer.problem
;
import
java.util.List
;
import
com.dianping.cat.consumer.problem.model.entity.Duration
;
import
com.dianping.cat.consumer.problem.model.entity.Entry
;
import
com.dianping.cat.consumer.problem.model.entity.JavaThread
;
import
com.dianping.cat.consumer.problem.model.entity.Machine
;
import
com.dianping.cat.consumer.problem.model.entity.ProblemReport
;
import
com.dianping.cat.consumer.problem.model.entity.Segment
;
import
com.dianping.cat.consumer.problem.model.transform.BaseVisitor
;
public
class
ProblemReportAllBuilder
extends
BaseVisitor
{
private
ProblemReport
m_report
;
private
String
m_currentDomain
;
private
String
m_currentType
;
private
String
m_currentState
;
private
String
m_currentThread
;
public
ProblemReportAllBuilder
(
ProblemReport
report
)
{
m_report
=
report
;
}
protected
Entry
findOrCreatEntry
(
Machine
machine
,
String
type
,
String
status
)
{
List
<
Entry
>
entries
=
machine
.
getEntries
();
for
(
Entry
entry
:
entries
)
{
if
(
entry
.
getType
().
equals
(
type
)
&&
entry
.
getStatus
().
equals
(
status
))
{
return
entry
;
}
}
Entry
entry
=
new
Entry
();
entry
.
setStatus
(
status
);
entry
.
setType
(
type
);
entries
.
add
(
entry
);
return
entry
;
}
@Override
public
void
visitDuration
(
Duration
duration
)
{
int
value
=
duration
.
getValue
();
Machine
machine
=
m_report
.
findOrCreateMachine
(
m_currentDomain
);
Entry
entry
=
findOrCreatEntry
(
machine
,
m_currentType
,
m_currentState
);
Duration
temp
=
entry
.
findOrCreateDuration
(
value
);
temp
.
setCount
(
temp
.
getCount
()
+
duration
.
getCount
());
}
@Override
public
void
visitEntry
(
Entry
entry
)
{
m_currentType
=
entry
.
getType
();
m_currentState
=
entry
.
getStatus
();
super
.
visitEntry
(
entry
);
}
@Override
public
void
visitProblemReport
(
ProblemReport
problemReport
)
{
m_currentDomain
=
problemReport
.
getDomain
();
if
(
m_report
.
getStartTime
()
==
null
)
{
m_report
.
setStartTime
(
problemReport
.
getStartTime
());
}
if
(
m_report
.
getEndTime
()
==
null
)
{
m_report
.
setEndTime
(
problemReport
.
getEndTime
());
}
super
.
visitProblemReport
(
problemReport
);
}
@Override
public
void
visitSegment
(
Segment
segment
)
{
int
minute
=
segment
.
getId
();
int
count
=
segment
.
getCount
();
Machine
machine
=
m_report
.
findOrCreateMachine
(
m_currentDomain
);
Entry
entry
=
findOrCreatEntry
(
machine
,
m_currentType
,
m_currentState
);
JavaThread
thread
=
entry
.
findOrCreateThread
(
m_currentThread
);
Segment
temp
=
thread
.
findOrCreateSegment
(
minute
);
temp
.
setCount
(
temp
.
getCount
()
+
count
);
}
@Override
public
void
visitThread
(
JavaThread
thread
)
{
m_currentThread
=
thread
.
getId
();
super
.
visitThread
(
thread
);
}
}
\ No newline at end of file
cat-consumer/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
4dbd2a75
...
...
@@ -144,10 +144,6 @@
<role>
com.dianping.cat.service.ReportManager
</role>
<role-hint>
problem
</role-hint>
</requirement>
<requirement>
<role>
com.dianping.cat.service.ReportDelegate
</role>
<role-hint>
problem
</role-hint>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.problem.ProblemHandler
</role>
<role-hints>
...
...
cat-consumer/src/test/java/com/dianping/cat/consumer/AllTests.java
浏览文件 @
4dbd2a75
...
...
@@ -26,7 +26,6 @@ import com.dianping.cat.consumer.metric.MetricAnalyzerTest;
import
com.dianping.cat.consumer.metric.ProductLineConfigManagerTest
;
import
com.dianping.cat.consumer.problem.ProblemAnalyzerTest
;
import
com.dianping.cat.consumer.problem.ProblemHandlerTest
;
import
com.dianping.cat.consumer.problem.ProblemReportAllBuilderTest
;
import
com.dianping.cat.consumer.problem.ProblemReportMergerTest
;
import
com.dianping.cat.consumer.problem.ProblemReportTest
;
import
com.dianping.cat.consumer.problem.ProblemURLFilterTest
;
...
...
@@ -91,8 +90,6 @@ ProblemAnalyzerTest.class,
ProblemReportMergerTest
.
class
,
ProblemReportAllBuilderTest
.
class
,
CompositeFormatTest
.
class
,
DefaultFormatTest
.
class
,
...
...
cat-consumer/src/test/java/com/dianping/cat/consumer/problem/ProblemReportAllBuilderTest.java
已删除
100644 → 0
浏览文件 @
6e6b30c5
package
com.dianping.cat.consumer.problem
;
import
junit.framework.Assert
;
import
org.junit.Test
;
import
org.unidal.helper.Files
;
import
com.dianping.cat.consumer.problem.model.entity.ProblemReport
;
import
com.dianping.cat.consumer.problem.model.transform.DefaultSaxParser
;
public
class
ProblemReportAllBuilderTest
{
@Test
public
void
test
()
throws
Exception
{
ProblemReport
report
=
new
ProblemReport
(
"All"
);
ProblemReportAllBuilder
builder
=
new
ProblemReportAllBuilder
(
report
);
String
oldXml
=
Files
.
forIO
().
readFrom
(
getClass
().
getResourceAsStream
(
"problem-report-builder1.xml"
),
"utf-8"
);
String
newXml
=
Files
.
forIO
().
readFrom
(
getClass
().
getResourceAsStream
(
"problem-report-builder2.xml"
),
"utf-8"
);
String
expected
=
Files
.
forIO
().
readFrom
(
getClass
().
getResourceAsStream
(
"problem-report-builder-all.xml"
),
"utf-8"
);
ProblemReport
reportOld
=
DefaultSaxParser
.
parse
(
oldXml
);
ProblemReport
reportNew
=
DefaultSaxParser
.
parse
(
newXml
);
builder
.
visitProblemReport
(
reportOld
);
builder
.
visitProblemReport
(
reportNew
);
Assert
.
assertEquals
(
expected
.
replaceAll
(
"\r"
,
""
),
report
.
toString
().
replaceAll
(
"\r"
,
""
));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录