资源预定事件

更新时间:
复制为 MD 格式

本文介绍弹性保障和容量预定的系统事件类型及事件内容,帮助您及时感知私有池容量变化并采取应对措施。

背景信息

弹性保障(EA)和容量预定(CR)通过预留私有池资源,为按量付费实例提供容量保障。在使用过程中,私有池可能因底层系统异常等原因出现容量失效,导致部分预留容量暂时无法用于创建实例。

为帮助您实时感知私有池容量状态变化并及时采取应对措施,ECS 通过云监控(CloudMonitor)提供以下三类资源预定系统事件:

  • 私有池状态变化事件:当私有池的生命周期状态发生变更时触发。

  • 私有池总容量变更已生效事件:当私有池的总容量(TotalCapacity)发生变化时触发。

  • 私有池可用容量失效事件:当私有池的可用容量因系统异常而失效或恢复时触发。

事件类型概览

事件名称

事件代码

事件等级

说明

私有池状态变化

EcsPrivatePool:StateChange

通知(INFO)

私有池生命周期状态发生变更,例如从准备中变为已生效、已失效或已过期等。

私有池总容量变更已生效

EcsPrivatePool:TotalCapacityChange

通知(INFO)

私有池总容量发生变化,包括升配、降配或因系统异常导致的容量调整。

私有池可用容量失效

EcsPrivatePool:AvailableCapacityFailure:Executing

严重(CRITICAL)

私有池部分可用容量因系统异常失效,正在修复中。

私有池可用容量恢复

EcsPrivatePool:AvailableCapacityFailure:Executed

严重(CRITICAL)

私有池可用容量已恢复正常。

私有池状态变化事件

当弹性保障或容量预定的私有池生命周期状态发生变更时,系统会发送 EcsPrivatePool:StateChange 事件。

状态说明

状态值

说明

Pending

初始化。指定时间生效的容量预定会先进入初始化状态。

Preparing

准备中。指定时间生效的容量预定在资源交付进行阶段,处于准备中状态。

Prepared

待生效。指定时间生效的容量预定在资源交付完成,服务正式生效之前,处于待生效状态。

Active

生效中。私有池处于生效状态,可用于创建实例。

Released

已释放,包括手动释放与到期自动释放。

状态流转图

下图展示了弹性保障(EA)的完整生命周期状态流转:

image

事件内容示例

{
  "product": "ecsprivatepool",
  "level": "INFO",
  "resourceId": "acs:ecs:cn-hangzhou:175201********98:ALIYUN::ECS::capacityreservation/crp-bp10dr968********v7",
  "instanceName": "crp-bp10dr968********v7",
  "regionId": "cn-hangzhou",
  "name": "EcsPrivatePool:StateChange",
  "status": "Executed",
  "content": {
    "resourceId": "crp-bp10dr968********v7",
    "eventStatus": "Executed",
    "resourceType": "ALIYUN::ECS::capacityreservation",
    "status": "Pending"
  },
  "id": "ad84c99d-00d0-4a05-9a2a-2d********cf"
}

字段

类型

说明

resourceId

String

私有池 ID。

eventStatus

String

事件状态。

resourceType

String

资源类型。

status

String

变更后的私有池状态。

私有池总容量变更已生效事件

当弹性保障或容量预定的总容量发生变化时,系统会发送 EcsPrivatePool:TotalCapacityChange 事件。

变更原因说明

原因类型

说明

示例场景

upgrade

私有池升配,总容量增加。

修改弹性保障,将预留实例数从 10 增加到 20。

downgrade

私有池降配,总容量减少。

修改弹性保障,将预留实例数从 20 减少到 10。

systemError

因底层系统故障导致容量丢失,且超过 36 小时无法恢复时,系统主动缩减总容量。

底层硬件异常导致部分容量长时间无法恢复,系统自动调整总容量。

事件内容示例

{
  "product": "ecsprivatepool",
  "level": "INFO",
  "resourceId": "acs:ecs:cn-hangzhou:1752019********98:ALIYUN::ECS::capacityreservation/crp-bp10dr968********v7",
  "instanceName": "crp-bp10dr968********v7",
  "regionId": "cn-hangzhou",
  "name": "EcsPrivatePool:TotalCapacityChange",
  "status": "Executed",
  "content": {
    "reason": "upgrade",
    "resourceId": "crp-bp10dr968********v7",
    "preTotalCapacity": 1,
    "totalCapacity": 2,
    "eventStatus": "Executed",
    "resourceType": "ALIYUN::ECS::capacityreservation"
  },
  "id": "5ab93918-66a7-4d23-9c16-7b********18"
}

字段

类型

说明

reason

String

变更原因,取值包括 upgrade(升配)、downgrade(降配)、systemError(系统异常)。

resourceId

String

私有池 ID。

totalCapacity

Integer

变更后的总容量(实例个数)。

preTotalCapacity

Integer

变更前的总容量(实例个数)。

私有池可用容量失效事件

当私有池的可用容量因系统异常无法正常使用时,系统会发送 EcsPrivatePool:AvailableCapacityFailure 事件。

什么是容量失效

容量失效是指私有池中尚未使用的预留容量因底层系统异常等原因,暂时无法用于创建实例的情况。失效期间:

  • 私有池中已创建的实例不受影响,仍可正常运行。

  • 使用失效容量创建新实例可能会失败。

  • 系统会自动尝试恢复失效容量。

容量失效的触发与恢复

失效触发条件

使用私有池的预留容量创建实例失败,且失败原因为库存不足(非磁盘不足、配额限制、配置错误等原因),系统将判定对应的剩余容量为失效状态。

恢复条件(满足以下任一条件即恢复)

  • 使用该私有池的预留容量成功创建实例。

  • 连续 15 分钟内无新的使用预留容量创建实例的失败请求。

重要

如果容量失效持续超过 36 小时仍无法恢复,系统将主动缩减私有池总容量并发送总容量变更已生效事件(EcsPrivatePool:TotalCapacityChange),变更原因为 systemError

事件状态

事件代码

事件状态

说明

AvailableCapacityFailure:Executing

Executing(执行中)

私有池容量部分失效中,系统正在尝试恢复。

AvailableCapacityFailure:Executed

Executed(已完成)

私有池可用容量已恢复正常。

事件内容示例

容量失效中(Executing)

{
  "product": "ecsprivatepool",
  "resourceId": "acs:ecs:cn-hangzhou:175201********98:ALIYUN::ECS::elasticityassurance/eap-bp15ooknae********u0",
  "level": "CRITICAL",
  "instanceName": "eap-bp15ooknae********u0",
  "regionId": "cn-hangzhou",
  "name": "EcsPrivatePool:AvailableCapacityFailure:Executing",
  "content": {
    "eventStatus": "Executing",
    "failedCapacity": 10,
    "resourceId": "eap-bp15ooknae********u0",
    "resourceType": "ALIYUN::ECS::elasticityassurance",
    "totalCapacity": 13
  },
  "id": "4565c58f-0819-4d96-9d7d-c5********7e"
}

容量失效已恢复(Executed)

{
  "product": "ecsprivatepool",
  "resourceId": "acs:ecs:cn-hangzhou:175201********98:ALIYUN::ECS::elasticityassurance/eap-bp15ooknae********u0",
  "level": "CRITICAL",
  "instanceName": "eap-bp15ooknae********u0",
  "regionId": "cn-hangzhou",
  "name": "EcsPrivatePool:AvailableCapacityFailure:Executed",
  "content": {
    "eventStatus": "Executed",
    "failedCapacity": 0,
    "resourceId": "eap-bp15ooknae********u0",
    "resourceType": "ALIYUN::ECS::elasticityassurance",
    "totalCapacity": 13
  },
  "id": "411937f4-333c-4bb8-8175-c35********f5"
}

字段

类型

说明

failureCapacity

Integer

当前失效的容量数(实例个数)。恢复后该值为 0。

totalCapacity

Integer

私有池总容量(实例个数)。

eventStatus

String

事件状态。Executing 表示容量失效中,Executed 表示已恢复。

容量指标说明

弹性保障和容量预定的查询接口返回以下容量指标,帮助您全面了解私有池容量状态。

指标名称

说明

对应 vCPU 指标

TotalCapacity

私有池总容量(实例个数)。

TotalCapacityVCPU

UsedCapacity

已使用的容量(已创建实例数量)。

UsedCapacityVCPU

AvailableCapacity

当前可用于创建实例的容量。已排除失效容量和锁定容量。

AvailableCapacityVCPU

RemainCapacity

剩余未使用的容量总数,包括可用容量、锁定容量和失效容量。

RemainCapacityVCPU

LockedCapacity

锁定中的容量,例如释放裸金属或本地盘实例后的资源回补期间。

LockedCapacityVCPU

FailedCapacity

因系统异常导致的失效容量。

FailedCapacityVCPU

计算规则

各指标之间的关系如下:

  • TotalCapacity = UsedCapacity + RemainCapacity

  • RemainCapacity = AvailableCapacity + LockedCapacity + FailedCapacity

不同场景下的指标表现:

场景

指标关系

正常运行

RemainCapacity = AvailableCapacityLockedCapacityFailedCapacity 均为 0)

资源释放后处于锁定期(裸金属、本地盘等特殊规格)

RemainCapacity = AvailableCapacity + LockedCapacity

容量失效

AvailableCapacity 减少,FailedCapacity 对应增加。

容量变更与失效示意图

下图展示了总容量变更和容量失效恢复的典型场景:

image

查看资源预定事件

您可以通过以下方式查看资源预定的系统事件。

通过云监控控制台查看

  1. 登录云监控控制台 - 系统事件

  2. 产品选择ECS 私有资源池

  3. 事件名称选择目标事件,例如私有池状态变化事件。

  4. 设置时间范围,查看对应时段内的事件记录。

通过 API 查看

调用云监控的 DescribeSystemEventAttribute 接口查询事件。示例如下:

aliyun cms DescribeSystemEventAttribute \
  --Product ECS \
  --EventType EcsPrivatePool:AvailableCapacityFailure:Executing

提高资源预定可靠性

为提高资源预定的使用可靠性,建议您采取以下措施:

  • 配置事件告警:通过云监控为 EcsPrivatePool:AvailableCapacityFailure 事件配置告警通知,以便在容量失效时及时获知。

  • 监控容量指标:定期通过 DescribeElasticityAssurancesDescribeCapacityReservations 接口查询私有池的 AvailableCapacityFailedCapacity,及时发现容量异常。

  • 多可用区冗余设计:在多个可用区分别购买弹性保障或容量预定,当某个可用区出现容量失效时,可将业务切换到其他可用区的私有池。

  • 结合弹性伸缩使用:配置弹性伸缩组的资源池策略为私有池优先,当指定私有池容量不足时自动匹配其他可用私有池或公共池。

  • 自动化响应:结合事件总线(EventBridge)或消息服务(MNS)订阅容量失效事件,自动触发实例创建重试或切换逻辑。

相关文档