为API速率配额创建全局配额项告警

当您需要监控某个云产品中的全部API的速率配额时,可以创建全局配额告警。当该云产品中的任意一个API的速率配额的使用率或可用率达到阈值时,告警联系人会收到告警通知,提醒其及时申请提升配额。

应用场景

用户A在管理云资源时,为了提高自动化管理能力,集成OpenAPI进行服务管理。但由于OpenAPI数量庞大,访问频率很高,所以API流控发生的频率较高,时常会影响业务稳定性。为了解决这一问题,运维团队计划监控各云产品API的实时用量和配额,提前规划以保证业务的稳定性。然而API数量庞大,每个API单独配置监控很难实现,于是客户通过全局API的监控能力来进行管理。

目前,我们提供了控制台和OpenAPI集成两种方式来监控全局API的实时用量和配额。

计费说明

API速率配额的配额告警集成的是云监控的告警能力,创建的配额告警将消耗云监控的费用额度,不同告警方式的计费如下:

  • 电话:无免费额度,您需要开通按量计费或购买资源包。更多信息,请参见按量计费资源包

  • 短信:免费额度为1000条/月,如果超过免费额度,则请您开通按量计费或购买资源包。更多信息,请参见免费额度按量计费资源包

  • 邮件和告警回调:均免费。

准备工作

  • 您需要在云监控中创建告警联系人和告警联系人组,用于接收告警消息。具体操作,请参见创建告警联系人或告警联系人组

    image

  • 如果您使用RAM用户操作API速率配额告警,RAM用户除了需要配额中心的管理权限(AliyunQuotasFullAccess)外,还需要在云监控中创建和删除配额告警的权限。

    自定义权限策略内容如下。具体操作,请参见创建自定义权限策略为RAM用户授权

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "cms:PutMetricRuleTargets",
            "cms:PutResourceMetricRules",
            "cms:DeleteMetricRules",
            "cms:DeleteMetricRuleTargets"
          ],
          "Resource": "*"
        }
      ],
      "Version": "1"
    }

通过控制台为API速率配额创建全局配额项告警

本文以为计算巢服务的全部API的速率配额创建告警为例进行介绍,其中告警条件为:当配额使用率的阈值大于等于80%时,通过短信和邮件给告警联系人组内的告警联系人发送警告级别(Warn)的告警通知。

该操作可在配额中心控制台和云监控控制台进行,您可根据需求选择。

配额中心控制台

  1. 配额中心控制台API速率配额页面,选择计算巢服务image

  2. 单击右上角的全局告警,为计算巢服务的API速率配额创建告警规则。

    关于告警规则中参数的设置方法,请参见API速率配额告警规则参数imageimage

  3. 创建完成后,可查看API速率配额的全局配额项告警。

    • 查看新创建的告警规则。

      image

    • 查看每个有用量的API的监控详情。

      image

云监控控制台

  1. 云监控控制台云产品监控页面,进入计算巢服务API速率配额监控页签。

    image

  2. 单击右上角的全局报警规则,在全局报警规则页面,为计算巢服务的API速率配额创建告警规则。

    关于告警规则中参数的设置方法,请参见API速率配额告警规则参数

    image

    image

  3. 创建完成后,可查看API速率配额的全局配额项告警。

    image

通过OpenAPI为API速率配额创建全局配额项告警

本文以为计算巢服务的全部API的速率配额创建告警为例进行介绍,其中告警条件为:当配额使用率的阈值大于等于80%时,通过短信和邮件给告警联系人组内的告警联系人发送警告级别(Warn)的告警通知。

  1. 先确认目标云产品(即计算巢服务)的API速率配额是否支持全局配额项告警。

    调用配额中心的API ListProductQuotas查看返回参数UsageMetric。当UsageMetric的返回值不为空时,表示计算巢服务支持API速率配额的全局配额项告警。

    • 请求参数ProductCode输入computenestQuotaCategory选择FlowControl,其他参数均保持默认值。

    • 返回参数:在UsageMetric中显示API速率配额在云监控中的监控信息,您可以得到MetricNamespaceacs_quotas_flowcontrol,每个API速率配额的返回信息如下:

      {
            "QuotaDescription": "GetServiceTemplateParameterConstraints",
            "Consumable": false,
            "ProductCode": "computenest",
            "UsageMetric": {
              "MetricName": "Usage",
              "MetricDimensions": {
                "productCode": "computenest",
                "metricKey": "GetServiceTemplateParameterConstraints/2021-06-01",
                "regionId": "ap-southeast-1",
                "label": "none"
              },
              "MetricNamespace": "acs_quotas_flowcontrol"
            },
            "Dimensions": {
              "apiName": "GetServiceTemplateParameterConstraints",
              "apiVersion": "2021-06-01",
              "regionId": "ap-southeast-1"
            },
            "GlobalQuota": false,
            "Period": {
              "PeriodValue": 1,
              "PeriodUnit": "second"
            },
            "Adjustable": true,
            "QuotaActionCode": "f_4w8uhd",
            "QuotaName": "GetServiceTemplateParameterConstraints",
            "QuotaArn": "acs:quotas:ap-southeast-1:14133977********:quota/computenest/f_4w8uhd",
            "TotalQuota": 50,
            "QuotaCategory": "FlowControl"
          }
      说明

      metricKey用于为指定API速率配额创建配额告警(即单独配额项告警)。

  2. 调用云监控的API DescribeMetricList查询API速率配额的监控数据,根据配额用量的变化趋势配置配额告警。

    • 请求参数Namespace输入acs_quotas_flowcontrolMetricName输入UsagePercentageDimensions输入[{"productCode":"computenest"}],其他参数均保持默认值。

      说明

      配额中心的MetricName包括:Quota(配额值)、Usage(配额用量)、UsagePercentage(配额使用率)和AvailablePercentage(配额剩余可用率)。

    • 返回参数:在Datapoints中,您可以得到Value的取值,作为告警阈值的参考,返回信息如下:

      {
        "RequestId": "2A7DB5BF-825C-51BB-AD91-D728857792F9",
        "Period": "60",
        "Datapoints": "[{\"timestamp\":1727337180000,\"productCode\":\"computenest\",\"metricKey\":\"GetServiceTemplateParameterConstraints/2021-05-21\",\"regionId\":\"cn-hangzhou\",\"label\":\"none\",\"userId\":\"14133977********\",\"Value\":2.0}]",
        "Code": "200",
        "Success": true
      }
  3. 调用云监控的API PutResourceMetricRules为API速率配额创建配额告警规则(即全局配额项告警)。

    • 请求参数:必填参数的设置方法及其示例如下表所示。

      参数

      描述

      示例

      MetricName

      监控项名称。取值:

      • Quota:配额值。

      • Usage:配额用量。

      • UsagePercentage:配额使用率。

      • AvailablePercentage:配额剩余可用率。

      说明

      全局配额项告警只能用UsagePercentageAvailablePercentage

      UsagePercentage

      Escalations.Warn.Threshold

      Warn级别告警阈值。

      80

      EffectiveInterval

      告警规则的生效时间。

      00:00-23:59 +0800 dayofweek 1,2,3,4,5,6,7

      RuleId

      告警规则ID。

      quota-computenest-ruleid-test

      Escalations.Warn.ComparisonOperator

      Warn级别阈值比较符。取值:

      • GreaterThanOrEqualToThreshold:大于等于。

      • GreaterThanThreshold:大于。

      • LessThanOrEqualToThreshold:小于等于。

      • LessThanThreshold:小于。

      • NotEqualToThreshold:不等于。

      • GreaterThanYesterday:同比昨天时间上涨。

      • LessThanYesterday:同比昨天时间下降。

      • GreaterThanLastWeek:同比上周同一时间上涨。

      • LessThanLastWeek:同比上周同一时间下降。

      • GreaterThanLastPeriod:环比上周期上涨。

      • LessThanLastPeriod:环比上周期下降。

      GreaterThanOrEqualToThreshold

      Resources

      资源信息。

      说明

      当您为某个API创建单独的配额项告警时,Resources输入示例:[{"productCode":"computenest","metricKey":"GetServiceTemplateParameterConstraints/2021-06-01"}]

      [{"productCode":"computenest"}]

      ContactGroups

      告警联系人组。

      CloudMonitor

      Namespace

      云产品的数据命名空间。

      acs_quotas_flowcontrol

      RuleName

      告警规则名称。

      quota-computenest-rulename-test

      Escalations.Warn.Times

      Warn级别告警重试次数。

      3

      Escalations.Warn.Statistics

      Warn级别告警统计方法。

      Value

    • 返回信息如下,说明创建告警规则成功。

      {
        "Message": "",
        "RequestId": "BE4CAC0F-A134-55BA-909B-FF62568FE884",
        "FailedListResult": {
          "Target": []
        },
        "Code": "200",
        "Success": true
      }
  4. 调用云监控的API DescribeMetricRuleList,通过RuleNameRuleId查看告警规则的创建结果。

相关文档