创建报警器 (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 阈值比较符
  • GreaterThanOrEqualTo
  • GreaterThan
  • LessThan
  • LessThanOrEqualTo
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还未采集到足够数据

通常报警器处于OKAlarm状态。