Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
a257faa0
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,发现更多精彩内容 >>
提交
a257faa0
编写于
7月 08, 2014
作者:
L
leon.li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
coding alert summary module, finish generator class
上级
99317fb0
变更
15
展开全部
隐藏空白更改
内联
并排
Showing
15 changed file
with
397 addition
and
105 deletion
+397
-105
cat-home/pom.xml
cat-home/pom.xml
+1
-0
cat-home/src/main/java/com/dianping/cat/report/task/alert/business/BusinessAlert.java
...ianping/cat/report/task/alert/business/BusinessAlert.java
+1
-1
cat-home/src/main/java/com/dianping/cat/report/task/alert/exception/ExceptionAlert.java
...nping/cat/report/task/alert/exception/ExceptionAlert.java
+4
-5
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryDecorator.java
.../cat/report/task/alert/summary/AlertSummaryDecorator.java
+11
-0
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryExecutor.java
...g/cat/report/task/alert/summary/AlertSummaryExecutor.java
+39
-0
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryGenerator.java
.../cat/report/task/alert/summary/AlertSummaryGenerator.java
+147
-0
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryManager.java
...ng/cat/report/task/alert/summary/AlertSummaryManager.java
+11
-0
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummarySender.java
...ing/cat/report/task/alert/summary/AlertSummarySender.java
+11
-0
cat-home/src/main/resources/META-INF/dal/jdbc/report-dal.xml
cat-home/src/main/resources/META-INF/dal/jdbc/report-dal.xml
+41
-0
cat-home/src/main/resources/META-INF/dal/model/alertsummary-codegen.xml
...ain/resources/META-INF/dal/model/alertsummary-codegen.xml
+19
-0
cat-home/src/main/resources/META-INF/dal/model/alertsummary-manifest.xml
...in/resources/META-INF/dal/model/alertsummary-manifest.xml
+6
-0
cat-home/src/main/resources/META-INF/dal/model/alertsummary-model.xml
.../main/resources/META-INF/dal/model/alertsummary-model.xml
+4
-0
cat-home/src/main/resources/META-INF/wizard/model/wizard.xml
cat-home/src/main/resources/META-INF/wizard/model/wizard.xml
+3
-0
cat-home/src/main/resources/config/default-network-metric-rule-config-unit.xml
...ources/config/default-network-metric-rule-config-unit.xml
+91
-91
cat-home/src/main/resources/config/default-system-rule-config.xml
.../src/main/resources/config/default-system-rule-config.xml
+8
-8
未找到文件。
cat-home/pom.xml
浏览文件 @
a257faa0
...
...
@@ -165,6 +165,7 @@
${basedir}/src/main/resources/META-INF/dal/model/alert-report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/monitor-rules-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/alertconfig-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/alertsummary-manifest.xml,
</manifest>
</configuration>
</execution>
...
...
cat-home/src/main/java/com/dianping/cat/report/task/alert/business/BusinessAlert.java
浏览文件 @
a257faa0
...
...
@@ -34,7 +34,7 @@ public class BusinessAlert extends BaseAlert implements Task, LogEnabled {
@Override
public
String
getName
()
{
return
"
metric
-alert"
;
return
"
business
-alert"
;
}
@Override
...
...
cat-home/src/main/java/com/dianping/cat/report/task/alert/exception/ExceptionAlert.java
浏览文件 @
a257faa0
...
...
@@ -66,16 +66,16 @@ public class ExceptionAlert implements Task, LogEnabled {
private
Alert
buildAlert
(
String
domainName
,
AlertException
exception
,
String
mailContent
)
{
Alert
alert
=
new
Alert
();
alert
.
setDomain
(
domainName
);
alert
.
setAlertTime
(
new
Date
());
alert
.
setCategory
(
getName
());
alert
.
setType
(
exception
.
getType
());
alert
.
setContent
(
mailContent
);
alert
.
setMetric
(
exception
.
getName
());
return
alert
;
}
return
alert
;
}
private
TopMetric
buildTopMetric
(
Date
date
)
{
TopReport
topReport
=
queryTopReport
(
date
);
...
...
@@ -91,7 +91,6 @@ public class ExceptionAlert implements Task, LogEnabled {
m_logger
=
logger
;
}
@Override
public
String
getName
()
{
return
"exception-alert"
;
}
...
...
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryDecorator.java
0 → 100644
浏览文件 @
a257faa0
package
com.dianping.cat.report.task.alert.summary
;
import
com.dianping.cat.home.alert.summary.entity.AlertSummary
;
public
class
AlertSummaryDecorator
{
public
String
generateHtml
(
AlertSummary
alertSummary
)
{
return
null
;
}
}
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryExecutor.java
0 → 100644
浏览文件 @
a257faa0
package
com.dianping.cat.report.task.alert.summary
;
import
java.util.Date
;
import
java.util.List
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.home.alert.summary.entity.AlertSummary
;
public
class
AlertSummaryExecutor
{
@Inject
AlertSummaryGenerator
m_alertSummaryGenerator
;
@Inject
AlertSummaryManager
m_alertSummaryManager
;
@Inject
AlertSummaryDecorator
m_alertSummaryDecorator
;
@Inject
AlertSummarySender
m_alertSummarySender
;
public
String
execute
(
String
domain
,
Date
date
,
List
<
String
>
receivers
)
{
try
{
AlertSummary
alertSummary
=
m_alertSummaryGenerator
.
generateAlertSummary
(
domain
,
date
);
m_alertSummaryManager
.
insert
(
alertSummary
);
String
content
=
m_alertSummaryDecorator
.
generateHtml
(
alertSummary
);
m_alertSummarySender
.
send
(
content
,
receivers
);
return
content
;
}
catch
(
Exception
e
)
{
Cat
.
logError
(
"generate alert summary fail:"
+
domain
+
" "
+
date
,
e
);
return
null
;
}
}
}
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryGenerator.java
0 → 100644
浏览文件 @
a257faa0
package
com.dianping.cat.report.task.alert.summary
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
org.unidal.dal.jdbc.DalException
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.home.alert.summary.entity.AlertSummary
;
import
com.dianping.cat.home.alert.summary.entity.Category
;
import
com.dianping.cat.home.dal.report.Alert
;
import
com.dianping.cat.home.dal.report.AlertDao
;
import
com.dianping.cat.home.dal.report.AlertEntity
;
import
com.dianping.cat.home.dependency.graph.entity.TopologyGraph
;
import
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
;
public
class
AlertSummaryGenerator
{
@Inject
private
AlertDao
m_alertDao
;
@Inject
private
TopologyGraphManager
m_topologyManager
;
// fetch alerts during this period, time unit is ms, default value is 1 hour
private
final
long
DURATION
=
60
*
60
*
1000L
;
private
com
.
dianping
.
cat
.
home
.
alert
.
summary
.
entity
.
Alert
convertToAlert
(
Alert
dbAlert
)
{
com
.
dianping
.
cat
.
home
.
alert
.
summary
.
entity
.
Alert
alert
=
new
com
.
dianping
.
cat
.
home
.
alert
.
summary
.
entity
.
Alert
();
alert
.
setAlertTime
(
dbAlert
.
getAlertTime
());
alert
.
setContext
(
dbAlert
.
getContent
());
alert
.
setMetric
(
dbAlert
.
getMetric
());
alert
.
setType
(
dbAlert
.
getType
());
return
alert
;
}
private
com
.
dianping
.
cat
.
home
.
alert
.
summary
.
entity
.
Alert
convertToDependAlert
(
String
domain
,
Alert
dbAlert
)
{
com
.
dianping
.
cat
.
home
.
alert
.
summary
.
entity
.
Alert
alert
=
new
com
.
dianping
.
cat
.
home
.
alert
.
summary
.
entity
.
Alert
();
alert
.
setAlertTime
(
dbAlert
.
getAlertTime
());
alert
.
setContext
(
dbAlert
.
getContent
());
alert
.
setMetric
(
domain
+
":"
+
dbAlert
.
getMetric
());
alert
.
setType
(
dbAlert
.
getType
());
return
alert
;
}
public
AlertSummary
generateAlertSummary
(
String
domain
,
Date
date
)
{
AlertSummary
alertSummary
=
new
AlertSummary
();
alertSummary
.
setDomain
(
domain
);
alertSummary
.
setAlertDate
(
date
);
alertSummary
.
addCategory
(
generateCategoryByTimeCategory
(
date
,
"network"
));
alertSummary
.
addCategory
(
generateCategoryByTimeCateDomain
(
date
,
"business"
,
domain
));
alertSummary
.
addCategory
(
generateCategoryByTimeCateDomain
(
date
,
"exception"
,
domain
));
alertSummary
.
addCategory
(
generateCategoryByTimeCateDomain
(
date
,
"system"
,
domain
));
List
<
String
>
dependencyDomains
=
queryDependencyDomains
(
date
,
domain
);
alertSummary
.
addCategory
(
generateDependCategoryByTimeCateDomain
(
date
,
"business"
,
dependencyDomains
));
alertSummary
.
addCategory
(
generateDependCategoryByTimeCateDomain
(
date
,
"exception"
,
dependencyDomains
));
return
alertSummary
;
}
private
Category
generateCategoryByTimeCateDomain
(
Date
date
,
String
cate
,
String
domain
)
{
Category
category
=
new
Category
(
cate
);
String
dbCategoryName
=
cate
+
"-alert"
;
Date
startTime
=
new
Date
(
date
.
getTime
()
-
DURATION
/
2
);
Date
endTime
=
new
Date
(
date
.
getTime
()
+
DURATION
/
2
);
try
{
List
<
Alert
>
dbAlerts
=
m_alertDao
.
queryAlertsByTimeCategoryDomain
(
startTime
,
endTime
,
dbCategoryName
,
domain
,
AlertEntity
.
READSET_FULL
);
setDBAlertsToCategory
(
category
,
dbAlerts
);
}
catch
(
DalException
e
)
{
Cat
.
logError
(
"find alerts error for category:"
+
cate
+
" domain:"
+
domain
+
" date:"
+
date
,
e
);
}
return
category
;
}
private
Category
generateCategoryByTimeCategory
(
Date
date
,
String
cate
)
{
Category
category
=
new
Category
(
cate
);
String
dbCategoryName
=
cate
+
"-alert"
;
Date
startTime
=
new
Date
(
date
.
getTime
()
-
DURATION
/
2
);
Date
endTime
=
new
Date
(
date
.
getTime
()
+
DURATION
/
2
);
try
{
List
<
Alert
>
dbAlerts
=
m_alertDao
.
queryAlertsByTimeCategory
(
startTime
,
endTime
,
dbCategoryName
,
AlertEntity
.
READSET_FULL
);
setDBAlertsToCategory
(
category
,
dbAlerts
);
}
catch
(
DalException
e
)
{
Cat
.
logError
(
"find alerts error for category:"
+
cate
+
" date:"
+
date
,
e
);
}
return
category
;
}
private
Category
generateDependCategoryByTimeCateDomain
(
Date
date
,
String
cate
,
List
<
String
>
dependencyDomains
)
{
String
categoryName
=
"dependency-"
+
cate
;
String
dbCategoryName
=
cate
+
"-alert"
;
Category
category
=
new
Category
(
categoryName
);
Date
startTime
=
new
Date
(
date
.
getTime
()
-
DURATION
/
2
);
Date
endTime
=
new
Date
(
date
.
getTime
()
+
DURATION
/
2
);
for
(
String
domain
:
dependencyDomains
)
{
try
{
List
<
Alert
>
dbAlerts
=
m_alertDao
.
queryAlertsByTimeCategoryDomain
(
startTime
,
endTime
,
dbCategoryName
,
domain
,
AlertEntity
.
READSET_FULL
);
setDBAlertsToDependCategory
(
category
,
domain
,
dbAlerts
);
}
catch
(
DalException
e
)
{
Cat
.
logError
(
"find dependency alerts error for category:"
+
cate
+
" domain:"
+
domain
+
" date:"
+
date
,
e
);
}
}
return
category
;
}
private
List
<
String
>
queryDependencyDomains
(
Date
date
,
String
domain
)
{
List
<
String
>
domains
=
new
ArrayList
<
String
>();
TopologyGraph
topology
=
m_topologyManager
.
buildTopologyGraph
(
domain
,
date
.
getTime
());
for
(
String
dependencyDomain
:
topology
.
getNodes
().
keySet
())
{
domains
.
add
(
dependencyDomain
);
}
return
domains
;
}
private
void
setDBAlertsToCategory
(
Category
category
,
List
<
Alert
>
dbAlerts
)
{
for
(
Alert
dbAlert
:
dbAlerts
)
{
category
.
addAlert
(
convertToAlert
(
dbAlert
));
}
}
private
void
setDBAlertsToDependCategory
(
Category
category
,
String
domain
,
List
<
Alert
>
dbAlerts
)
{
for
(
Alert
dbAlert
:
dbAlerts
)
{
category
.
addAlert
(
convertToDependAlert
(
domain
,
dbAlert
));
}
}
}
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummaryManager.java
0 → 100644
浏览文件 @
a257faa0
package
com.dianping.cat.report.task.alert.summary
;
import
com.dianping.cat.home.alert.summary.entity.AlertSummary
;
public
class
AlertSummaryManager
{
public
void
insert
(
AlertSummary
alertSummary
)
{
}
}
cat-home/src/main/java/com/dianping/cat/report/task/alert/summary/AlertSummarySender.java
0 → 100644
浏览文件 @
a257faa0
package
com.dianping.cat.report.task.alert.summary
;
import
java.util.List
;
public
class
AlertSummarySender
{
public
void
send
(
String
content
,
List
<
String
>
receivers
)
{
}
}
cat-home/src/main/resources/META-INF/dal/jdbc/report-dal.xml
浏览文件 @
a257faa0
...
...
@@ -2,6 +2,47 @@
<entities
do-package=
"com.dianping.cat.home.dal.report"
gen=
"true"
>
<entity
name=
"alert"
table=
"alert"
alias=
"al"
>
<member
name=
"creation-date"
insert-expr=
"NOW()"
/>
<var
name=
"start-time"
value-type=
"Date"
/>
<var
name=
"end-time"
value-type=
"Date"
/>
<param
name=
"domain"
/>
<query-defs>
<query
name=
"query-alerts-by-time-category-domain"
type=
"SELECT"
multiple=
"true"
>
<param
name=
"start-time"
/>
<param
name=
"end-time"
/>
<param
name=
"category"
/>
<param
name=
"domain"
/>
<statement>
<![CDATA[
SELECT <FIELDS/>
FROM
<TABLE/>
WHERE
<FIELD
name=
'alert_time'
/>
>= ${start-time}
AND
<FIELD
name=
'alert_time'
/>
<
= ${end-time}
<IF
type=
'NOT_NULL'
field=
'category'
>
AND
<FIELD
name=
'category'
/>
= ${category}
</IF>
<IF
type=
'NOT_NULL'
field=
'domain'
>
AND
<FIELD
name=
'domain'
/>
= ${domain}
</IF>
ORDER BY
<FIELD
name=
'alert_time'
/>
asc
]]>
</statement>
</query>
<query
name=
"query-alerts-by-time-category"
type=
"SELECT"
multiple=
"true"
>
<param
name=
"start-time"
/>
<param
name=
"end-time"
/>
<param
name=
"category"
/>
<statement>
<![CDATA[
SELECT <FIELDS/>
FROM
<TABLE/>
WHERE
<FIELD
name=
'alert_time'
/>
>= ${start-time}
AND
<FIELD
name=
'alert_time'
/>
<
= ${end-time}
<IF
type=
'NOT_NULL'
field=
'category'
>
AND
<FIELD
name=
'category'
/>
= ${category}
</IF>
ORDER BY
<FIELD
name=
'alert_time'
/>
asc
]]>
</statement>
</query>
</query-defs>
</entity>
<entity
name=
"alteration"
table=
"alteration"
alias=
"a"
>
<member
name=
"creation-date"
insert-expr=
"NOW()"
/>
...
...
cat-home/src/main/resources/META-INF/dal/model/alertsummary-codegen.xml
0 → 100644
浏览文件 @
a257faa0
<?xml version="1.0" encoding="UTF-8"?>
<model>
<entity
name=
"alert-summary"
root=
"true"
>
<attribute
name=
"alert-date"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
<attribute
name=
"domain"
value-type=
"String"
/>
<entity-ref
name=
"category"
type=
"map"
names=
"categories"
method-find-or-create=
'true'
/>
</entity>
<entity
name=
"category"
>
<attribute
name=
"name"
value-type=
"String"
key=
"true"
/>
<entity-ref
name=
"alert"
type=
"list"
names=
"alerts"
/>
</entity>
<entity
name=
"alert"
>
<attribute
name=
"alertTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
<attribute
name=
"type"
value-type=
"String"
/>
<attribute
name=
"metric"
value-type=
"String"
/>
<attribute
name=
"context"
value-type=
"String"
/>
</entity>
</model>
cat-home/src/main/resources/META-INF/dal/model/alertsummary-manifest.xml
0 → 100644
浏览文件 @
a257faa0
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<file
path=
"alertsummary-codegen.xml"
/>
<file
path=
"alertsummary-model.xml"
/>
</manifest>
cat-home/src/main/resources/META-INF/dal/model/alertsummary-model.xml
0 → 100644
浏览文件 @
a257faa0
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.home.alert.summary"
enable-sax-parser=
"true"
enable-xml-parser=
"true"
enable-xml-builder=
"true"
>
</model>
\ No newline at end of file
cat-home/src/main/resources/META-INF/wizard/model/wizard.xml
浏览文件 @
a257faa0
...
...
@@ -51,4 +51,7 @@
<model
package=
"com.dianping.cat.home.alertconfig"
name=
"alertconfig"
>
<sample-model>
/Users/leon/Documents/GitRepo/cat/cat-home/src/test/resources/config/alert-config.xml
</sample-model>
</model>
<model
package=
"com.dianping.cat.home.alertsummary"
name=
"alertsummary"
>
<sample-model>
/Users/leon/Desktop/AlertSummary.xml
</sample-model>
</model>
</wizard>
cat-home/src/main/resources/config/default-network-metric-rule-config-unit.xml
浏览文件 @
a257faa0
此差异已折叠。
点击以展开。
cat-home/src/main/resources/config/default-system-rule-config.xml
浏览文件 @
a257faa0
<?xml version="1.0" encoding="utf-8"?>
<monitor-rules>
<rule
id=
"CPUIdle"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_cpu)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_cpu)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"1"
alertType=
"warning"
>
<sub-condition
type=
"MaxVal"
text=
"0.8"
/>
...
...
@@ -12,7 +12,7 @@
</config>
</rule>
<rule
id=
"DataUsage"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_/data-usage)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_/data-usage)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"1"
alertType=
"error"
>
<sub-condition
type=
"MaxVal"
text=
"0.9"
/>
...
...
@@ -20,7 +20,7 @@
</config>
</rule>
<rule
id=
"UsrUsage"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_/usr-usage)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_/usr-usage)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"1"
alertType=
"error"
>
<sub-condition
type=
"MaxVal"
text=
"0.9"
/>
...
...
@@ -28,7 +28,7 @@
</config>
</rule>
<rule
id=
"VarUsage"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_/var-usage)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_/var-usage)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"1"
alertType=
"error"
>
<sub-condition
type=
"MaxVal"
text=
"0.9"
/>
...
...
@@ -36,7 +36,7 @@
</config>
</rule>
<rule
id=
"UptimeDown"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_uptime)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_uptime)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"2"
alertType=
"error"
>
<sub-condition
type=
"FluDescPer"
text=
"0"
/>
...
...
@@ -44,7 +44,7 @@
</config>
</rule>
<rule
id=
"MD5Change"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_md5Change)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_md5Change)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"1"
alertType=
"error"
>
<sub-condition
type=
"MinVal"
text=
"0.9"
/>
...
...
@@ -52,7 +52,7 @@
</config>
</rule>
<rule
id=
"HostNameChange"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_hostNameChange)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_hostNameChange)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"1"
alertType=
"error"
>
<sub-condition
type=
"MinVal"
text=
"0.9"
/>
...
...
@@ -60,7 +60,7 @@
</config>
</rule>
<rule
id=
"HostIpChange"
>
<metric-item
type=
"regex"
monitorAvg=
"true"
t
ext=
".*(?=system_hostIpChange)"
/>
<metric-item
monitorAvg=
"true"
metricItemT
ext=
".*(?=system_hostIpChange)"
/>
<config
starttime=
"00:00"
endtime=
"24:00"
>
<condition
minute=
"1"
alertType=
"error"
>
<sub-condition
type=
"MinVal"
text=
"0.9"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录