创建报警器 (CreateAlarm)
用户可以用
CreateAlarm
创建针对metric的报警器,例如:CreateAlarm namespace=ZStack/VM metricName=CPUAllUsedUtilization comparisonOperator=GreaterThanOrEqualTo period=300 \
repeatInterval=600 threshold=90 actions='[{"actionUuid":"2447db65cb46495e87b53d9afbad6936","actionType":"sns"}]' labels='[{"key":"VMUuid", "op":"Equal", \
"value":"1a1d7395cf74474ca52deb80c41214a1"}]' name=my-vm-alarm
参数(Parameters)
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
name | 资源名称 | 2.3 | ||
description | 资源的详细描述 | 是 | 2.3 | |
comparisonOperator | 阈值比较符 |
|
2.3 | |
period | 阈值持续时间 | 2.3 | ||
namespace | 名字空间 | 2.3 | ||
metricName | 监控项名 | 2.3 | ||
threshold | 阈值 | 2.3 | ||
repeatInterval | 报警重复时间 | 2.3 | ||
labels | 标签列表 | 是 | 2.3 | |
actions | 报警动作列表 | 是 | 2.3 | |
resourceUuid | 是 | 2.3 | ||
userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 2.3 | |
systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 2.3 | |
timeout | 是 |
{
"inventory": {
"actions": [
{
"actionType": "sns",
"actionUuid": "2447db65cb46495e87b53d9afbad6936",
"alarmUuid": "f8906dd1ce5d4534b4c6b58900e795ef"
}
],
"comparisonOperator": "GreaterThanOrEqualTo",
"createDate": "Jan 23, 2018 8:21:30 PM",
"labels": [
{
"key": "VMUuid",
"operator": "Equal",
"uuid": "2c6a070b97d648c080284d395cadb855",
"value": "1a1d7395cf74474ca52deb80c41214a1"
}
],
"lastOpDate": "Jan 23, 2018 8:21:30 PM",
"metricName": "CPUAllUsedUtilization",
"name": "my-vm-alarm",
"namespace": "ZStack/VM",
"period": 300,
"repeatInterval": 600,
"status": "OK",
"threshold": 90.0,
"uuid": "f8906dd1ce5d4534b4c6b58900e795ef"
},
"success": true
}
这里我们对UUID为2c6a070b97d648c080284d395cadb855虚拟机的CPUAllUsedUtilization
(所有CPU的总使用率)metric创建了一个报警器,当CPU利用率(threshold)超过(comparisonOperator)90%,并且持续时间(period)超过300秒时,发送报警信息(actions)到SNS主题2447db65cb46495e87b53d9afbad6936。如果在600秒(repeatInterval)内该虚拟机CPU使用率一直超过90%,并且已经报警过了,则不要重复报警。
CreateAlarm
包含如下字段:- namespace: metric所在namespace
- metricName:metric名称
- comparisonOperator:阈值比较符号,包括
GreaterThanOrEqualTo
(大于等于),GreaterThan
(大于),LessThan
(小于),LessThanOrEqualTo
(小于等于)四种。 - period:持续时间,单位秒
- repeatInterval:不重复报警时间,单位秒。用于在一段时间内重复报警。例如报警条件是1分钟内CPU利用率超过90%报警,但该虚拟机CPU利用率超过90%持续了10分钟,则用户会连续收到10条报警。若将repeatInterval设置成10分钟,则只会收到一条报警,设置成5分钟则收到两条报警。以此来避免alarm
flooding。如该字段未设置,则默认为30分钟。用户可以通过设置
zwatch.alarm.repeatInterval
全局配置来调整该默认值。 - threshold:阈值,浮点数
-
actions:报警动作。报警发生时系统执行的动作。当前版本(2.3.1)只支持向SNS主题发送报警消息。报警动作结构为:
{ "actionUuid": "2447db65cb46495e87b53d9afbad6936", "actionType": "sns" }
actionUuid
为SNS主题的UUID,actionType
为固定值sns。可以指定多个报警动作。 - labels:metric过滤标签。通过标签匹配特定的metric,例如对指定虚拟机报警需要设置VMUuid标签:
{ "key": "VMUuid", "operator": "Equal", "value": "1a1d7395cf74474ca52deb80c41214a1" }
key
为标签名;operator
为标签比较符,支持Equal
(等于)和Regex
(正则)两种;value
为标签值。可以指定多个标签。用户可以通过GetAllMetricMetadata
获得每个metric支持的标签。
报警器状态:
报警器包含
OK
,Alarm
,InsufficientData
三种状态:- OK:正常状态,metric数据没有触发报警
- Alarm:报警状态,metric数据已触发报警器
- InsufficientData:数据不足状态,metric还未采集到足够数据
通常报警器处于OK
或Alarm
状态。