Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
282bf090
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 搜索 >>
提交
282bf090
编写于
12月 30, 2014
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add the delete unused metric config
上级
8d0b0168
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
56 addition
and
10 deletion
+56
-10
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
...m/dianping/cat/consumer/build/ComponentsConfigurator.java
+1
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java
...com/dianping/cat/consumer/metric/MetricConfigManager.java
+30
-0
cat-consumer/src/main/resources/META-INF/plexus/components.xml
...onsumer/src/main/resources/META-INF/plexus/components.xml
+3
-0
cat-home/src/main/java/com/dianping/cat/system/page/config/processor/MetricConfigProcessor.java
...t/system/page/config/processor/MetricConfigProcessor.java
+22
-9
未找到文件。
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
浏览文件 @
282bf090
...
...
@@ -185,7 +185,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
ContentFetcher
.
class
,
DefaultContentFetcher
.
class
));
all
.
add
(
C
(
ProductLineConfigManager
.
class
).
req
(
ConfigDao
.
class
,
ContentFetcher
.
class
));
all
.
add
(
C
(
MetricConfigManager
.
class
).
req
(
ConfigDao
.
class
,
ContentFetcher
.
class
));
all
.
add
(
C
(
MetricConfigManager
.
class
).
req
(
ConfigDao
.
class
,
ContentFetcher
.
class
,
ProductLineConfigManager
.
class
));
all
.
add
(
C
(
MessageAnalyzer
.
class
,
MetricAnalyzer
.
ID
,
MetricAnalyzer
.
class
).
is
(
PER_LOOKUP
)
//
.
req
(
ReportBucketManager
.
class
,
BusinessReportDao
.
class
,
MetricConfigManager
.
class
)
//
.
req
(
ProductLineConfigManager
.
class
,
TaskManager
.
class
,
ServerConfigManager
.
class
));
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java
浏览文件 @
282bf090
...
...
@@ -24,11 +24,13 @@ import org.xml.sax.SAXException;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.config.content.ContentFetcher
;
import
com.dianping.cat.consumer.company.model.entity.ProductLine
;
import
com.dianping.cat.consumer.metric.MetricAnalyzer.ConfigItem
;
import
com.dianping.cat.consumer.metric.config.entity.MetricConfig
;
import
com.dianping.cat.consumer.metric.config.entity.MetricItemConfig
;
import
com.dianping.cat.consumer.metric.config.entity.Tag
;
import
com.dianping.cat.consumer.metric.config.transform.DefaultSaxParser
;
import
com.dianping.cat.consumer.productline.ProductLineConfigManager
;
import
com.dianping.cat.core.config.Config
;
import
com.dianping.cat.core.config.ConfigDao
;
import
com.dianping.cat.core.config.ConfigEntity
;
...
...
@@ -41,6 +43,9 @@ public class MetricConfigManager implements Initializable, LogEnabled {
@Inject
private
ContentFetcher
m_fetcher
;
@Inject
private
ProductLineConfigManager
m_productLineConfigManager
;
private
int
m_configId
;
private
MetricConfig
m_metricConfig
;
...
...
@@ -102,6 +107,7 @@ public class MetricConfigManager implements Initializable, LogEnabled {
if
(
m_metricConfig
==
null
)
{
m_metricConfig
=
new
MetricConfig
();
}
deleteUnusedConfig
();
}
public
boolean
insertIfNotExist
(
String
domain
,
String
type
,
String
metricKey
,
ConfigItem
item
)
{
...
...
@@ -228,6 +234,30 @@ public class MetricConfigManager implements Initializable, LogEnabled {
}
}
protected
void
deleteUnusedConfig
()
{
try
{
Map
<
String
,
MetricItemConfig
>
configs
=
m_metricConfig
.
getMetricItemConfigs
();
List
<
String
>
unused
=
new
ArrayList
<
String
>();
for
(
MetricItemConfig
config
:
configs
.
values
())
{
String
domain
=
config
.
getDomain
();
String
productLine
=
m_productLineConfigManager
.
queryProductLineByDomain
(
domain
);
ProductLine
product
=
m_productLineConfigManager
.
queryProductLine
(
productLine
);
if
(
product
==
null
||
!
product
.
isMetricDashboard
())
{
unused
.
add
(
config
.
getId
());
}
}
for
(
String
id
:
unused
)
{
m_logger
.
info
(
"delete metric item "
+
id
);
m_metricConfig
.
removeMetricItemConfig
(
id
);
}
storeConfig
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
boolean
storeConfig
()
{
synchronized
(
this
)
{
try
{
...
...
cat-consumer/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
282bf090
...
...
@@ -589,6 +589,9 @@
<requirement>
<role>
com.dianping.cat.config.content.ContentFetcher
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.productline.ProductLineConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/processor/MetricConfigProcessor.java
浏览文件 @
282bf090
package
com.dianping.cat.system.page.config.processor
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
...
...
@@ -57,23 +58,35 @@ public class MetricConfigProcessor extends BaseProcesser {
}
private
void
metricConfigList
(
Payload
payload
,
Model
model
)
{
Map
<
String
,
ProductLine
>
productLines
=
m_productLineConfigManger
.
query
All
ProductLines
();
Map
<
String
,
ProductLine
>
productLines
=
m_productLineConfigManger
.
query
Metric
ProductLines
();
Map
<
ProductLine
,
List
<
MetricItemConfig
>>
metricConfigs
=
new
LinkedHashMap
<
ProductLine
,
List
<
MetricItemConfig
>>();
Set
<
String
>
exists
=
new
HashSet
<
String
>();
Set
<
String
>
knowDomains
=
new
HashSet
<
String
>();
for
(
Entry
<
String
,
ProductLine
>
entry
:
productLines
.
entrySet
())
{
ProductLine
productLine
=
entry
.
getValue
();
if
(
productLine
.
isMetricDashboard
())
{
Set
<
String
>
domains
=
productLine
.
getDomains
().
keySet
();
List
<
MetricItemConfig
>
configs
=
m_metricConfigManager
.
queryMetricItemConfigs
(
domains
);
Set
<
String
>
domains
=
productLine
.
getDomains
().
keySet
();
List
<
MetricItemConfig
>
configs
=
m_metricConfigManager
.
queryMetricItemConfigs
(
domains
);
for
(
MetricItemConfig
config
:
configs
)
{
exists
.
add
(
m_metricConfigManager
.
buildMetricKey
(
config
.
getDomain
(),
config
.
getType
(),
config
.
getMetricKey
()));
}
metricConfigs
.
put
(
productLine
,
configs
);
for
(
MetricItemConfig
config
:
configs
)
{
exists
.
add
(
m_metricConfigManager
.
buildMetricKey
(
config
.
getDomain
(),
config
.
getType
(),
config
.
getMetricKey
()));
}
metricConfigs
.
put
(
productLine
,
configs
);
knowDomains
.
addAll
(
domains
);
}
List
<
MetricItemConfig
>
otherConfigs
=
new
ArrayList
<
MetricItemConfig
>();
for
(
MetricItemConfig
config
:
m_metricConfigManager
.
getMetricConfig
().
getMetricItemConfigs
().
values
())
{
String
domain
=
config
.
getDomain
();
if
(!
knowDomains
.
contains
(
domain
))
{
otherConfigs
.
add
(
config
);
}
}
if
(!
otherConfigs
.
isEmpty
())
{
metricConfigs
.
put
(
new
ProductLine
(
"Other"
).
setTitle
(
"Other"
),
otherConfigs
);
}
model
.
setProductMetricConfigs
(
metricConfigs
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录