更新时间:2022-02-22 GMT+08:00

快速入门

概述

本节通过调用一系列云监控的API为ECS的cpu_util指标创建告警规则,当指标的数值达到设置的阈值时及时通知用户处理。

通过IAM服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token缓存,避免频繁调用。

操作步骤

  1. 获取用户Token。

    发送POST https://IAM的终端节点/v3/auth/tokens。

    Request Header中添加Content-Type: application/json。

    Request Body如下所示:

    {
      "auth": {
        "identity": {
          "methods": [
            "password"
          ],
          "password": {
            "user": {
              "name": "James",
              "password": "**********",
              "domain": {
                "name": "A-Company"
              }
            }
          }
        },
        "scope": {
          "project": {
            "name": "XXX",
            "domain": {
              "name": "A-Company"
            }
          }
        }
      }
    }

    您需要指定如下参数:

    • user.name:用户名称,根据获取token的主体填写。
    • password:用户的登录密码。
    • domain.name:用户所属的账号名称。如果是账号获取token,账号的user.name和domain.name相同,此处填写user.name即可。否则此处填写用户所属的账号名。
    • project.name:区域。

      Response Header中获取X-Subject-Token,即为签名后的Token。

  2. 查询可监控的指标列表。

    发送“GET https://云监控的终端节点/V1.0/{project_id}/metrics”。

    在Request Header中增加“X-Auth-Token”,“X-Auth-Token”的取值为1中获取的Token。

    请求响应成功后,返回metrics信息,如下所示的"metric_name": "cpu_util"。

    {
        "metrics": [
            {
                "namespace": "SYS.ECS", 
                "dimensions": [
                    {
                        "name": "instance_id", 
                        "value": "d9112af5-6913-4f3b-bd0a-3f96711e004d"
                    }
                ], 
                "metric_name": "cpu_util", 
                "unit": "%"
            }
        ], 
        "meta_data": {
            "count": 1, 
            "marker": "SYS.ECS.cpu_util.instance_id:d9112af5-6913-4f3b-bd0a-3f96711e004d", 
            "total": 7
        }
    }

    若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考返回错误码说明

  3. 创建告警规则。

    发送“POST https://云监控的终端节点/V1.0/{project_id}/alarms”。

    在Request Body中传入参数如下:
    {
        "alarm_name": "alarm-rp0E",  //告警规则名称(必填,String)
        "alarm_description": "", 
        "metric": {
            "namespace": "SYS.ECS",  //命名空间(必填,String)
            "dimensions": [
                {
                    "name": "instance_id", 
                    "value": "33328f02-3814-422e-b688-bfdba93d4051"
                }
            ], 
            "metric_name": "cpu_util"   //指标名称(必填,String)
        }, 
        "condition": {
            "period": 300,      //告警周期(必填,整数)
            "filter": "average",     //数据聚合方式(必填,String)
            "comparison_operator": ">=",    //告警阈值的比较条件(必填,String)
            "value": 80,  //告警阈值(必填,String)
            "unit": "%",  //数据单位(必填,String)
            "count": 1
        }, 
        "alarm_enabled": true, 
        "alarm_action_enabled": true, 
        "alarm_level": 2,
        "alarm_actions": [
            {
                "type": "notification", 
                "notificationList": [ ]
            }
        ], 
        "ok_actions": [
            {
                "type": "notification", 
                "notificationList": [ ]
            }
        ]
    }

    请求响应成功后,返回alarm_id。

    {
        "alarm_id":"al1450321795427dR8p5mQBo"
    }

    若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考返回错误码说明

    根据3中的响应alarm_id,可对告警规则进行查询、启停、删除等操作。