通过云监控服务实时监控OSS流控信息

当用户的请求量超出OSS使用限制后会触发OSS流控,触发流控会对用户的请求产生一定的影响。您只需要在云监控管理控制台进行简单的配置,即可完成对OSS请求指标的实时监控,并在触发流控时及时收到告警通知。

背景信息

OSS提供了用户级别和Bucket级别的流控,支持的类别主要包括带宽流控和QPS流控。当您访问OSSQPS、带宽超出OSS使用限制时,访问速度会受到OSS流控的限制。如果触发了带宽流控,则访问OSS的延迟会增加。如果触发了QPS流控,则OSS会丢弃部分请求。关于带宽流控和QPS流控的限制信息,请参见使用限制

您可以通过云监控管理控制台创建OSS流控事件告警规则,并指定在监测到用户发送到OSS指定类型的请求量触发流控或达到汇报阈值时,以短信、邮件和钉钉机器人的方式向指定联系人组发送报警信息。

前提条件

已创建用于接收流控报警信息的联系人组,并向联系人组添加多个联系人。具体操作,请参见创建报警联系人或报警联系人组

创建报警规则

  1. 登录云监控控制台

  2. 在左侧导航栏,选择事件中心 > 系统事件

  3. 事件监控页签,单击另存为报警

  4. 创建/修改事件报警面板,设置以下参数,其他参数保留默认值,然后单击确定

参数

说明

报警规则名称

设置为rule1

产品类型

选择对象存储OSS

事件类型

选择全部类型

事件等级

选择警告信息

事件名称

选择全部事件。关于云监控支持的OSS流控事件的含义及说明,请参见云监控支持的OSS流控事件

报警联系人组

选中报警方式下的报警通知,然后选择已创建的报警联系人组。

通知方式

选择Warning(短信+邮件+WebHook)

以上事件告警规则配置完成后,如果请求触发OSS流控或者超过汇报阈值,则云监控会自动向指定的联系人发送报警通知。报警通知中包含报警资源、事件名称、事件类别以及事件详情等信息。关于报警通知的更多信息,请参见报警通知

重要

流控报警为每分钟一次,一分钟内如果有30s或以上时间触发流控则产生报警。汇报阈值为每10分钟一次,只要1s内触发汇报阈值则产生报警。

报警通知

如果指定联系人收到了流控触发报警通知,请参见以下表格了解各类流控事件触发的原因、影响、对应的解决方法以及事件的详细内容。

重要

如果您希望在收到User级别的报警事件后,查看归属当前用户下所有Bucket的流量使用情况,请提前创建OSS监控大盘。具体步骤,请参见创建系统预置大盘

报警通知事件名称

说明

下表中的汇报阈值=流控阈值*0.8。

事件名称

触发原因

影响

解决方法

BucketIngressBandwidthThresholdExceeded

  • 当前Bucket的上行带宽大于Bucket的上行带宽流控阈值

  • 当前Bucket请求者的上行带宽大于Bucket请求者的上行带宽流控阈值

上传请求将会被流控且请求延迟会增加。

合理降低上传请求并发数。

BucketEgressBandwidthThresholdExceeded

  • 当前Bucket的下行带宽大于Bucket的下行带宽流控阈值

  • 当前Bucket请求者的下行带宽大于Bucket请求者的下行带宽流控阈值

下载请求将会被流控且请求延迟会增加。

合理降低下载请求并发数。

BucketQpsThresholdExceeded

  • 当前Bucket的每秒请求数大于Bucket每秒请求流控阈值

  • 当前Bucket请求者的每秒请求数大于Bucket请求者每秒请求流控阈值

OSS会拒绝响应部分请求并返回503。

合理降低每秒请求数。

UserIngressBandwidthThresholdExceeded

  • 当前用户的所有Bucket的上行带宽之和大于该用户的上行带宽流控阈值

  • 当前资源池的所有Bucket上行带宽之和大于该资源池的上行带宽流控阈值

  • 当前资源池请求者的上行带宽大于该资源池请求者的上行带宽流控阈值

上传请求将会被流控且请求延迟会增加。

合理降低上传请求并发数。

UserEgressBandwidthThresholdExceeded

  • 当前用户的所有Bucket的下行带宽之和大于该用户的下行带宽流控阈值

  • 当前资源池的所有Bucket下行带宽之和大于该资源池的下行带宽流控阈值

  • 当前资源池请求者的下行带宽大于该资源池请求者的下行带宽流控阈值

下载请求将会被流控且请求延迟会增加。

合理降低下载请求并发数。

UserQpsThresholdExceeded

  • 当前用户所有Bucket的每秒请求数之和大于该用户每秒请求流控阈值

  • 当前资源池所有Bucket的每秒请求数之和大于该资源池每秒请求流控阈值

  • 当前资源池请求者的每秒请求数大于该资源池请求者每秒请求数流控阈值

OSS会拒绝响应部分请求。

合理降低每秒请求数。

BucketImageCpuThresholdExceeded

当前Bucket用于处理图片请求的CPU核数大于Bucket CPU核数流控阈值

图片处理类型的请求延迟会增加。

合理降低图片处理请求并发数。

UserImageCpuThresholdExceeded

当前用户的所有Bucket用于处理图片请求的CPU核数之和大于该用户的CPU核数流控阈值

图片处理类型的请求延迟会增加。

合理降低图片处理请求并发数。

BucketMirrorIngressBandwidthThresholdExceeded

当前Bucket镜像回源类型请求带宽大于Bucket镜像回源类型请求的带宽流控阈值

镜像回源请求延迟会增加。

合理降低镜像回源类型请求并发数。

BucketMirrorQpsThresholdExceeded

当前Bucket镜像回源类型的每秒请求数大于Bucket镜像回源类型请求的流控阈值

OSS会拒绝部分镜像回源类型请求。

合理降低镜像回源类型每秒请求数。

UserMirrorIngressBandwidthThresholdExceeded

当前用户的所有Bucket镜像回源类型上传请求带宽之和大于用户镜像回源带宽流控阈值

镜像回源请求延迟会增加。

合理降低镜像回源类型请求并发数。

UserMirrorQpsThresholdExceeded

当前用户的所有Bucket镜像回源类型的每秒请求数之和大于用户镜像回源类型请求的流控阈值

OSS将拒绝响应部分镜像回源类型的请求。

合理降低镜像回源类型每秒请求数。

BucketIngressBandwidth

  • 当前Bucket的上行带宽大于Bucket的上行带宽汇报阈值

  • 当前Bucket请求者的上行带宽大于Bucket请求者的上行带宽汇报阈值

Bucket的上行请求延迟会增加。

合理降低上行请求并发数。

BucketEgressBandwidth

  • 当前Bucket的下行带宽大于Bucket的下行带宽汇报阈值

  • 当前Bucket请求者的下行带宽大于Bucket请求者的下行带宽汇报阈值

Bucket的下行请求延迟会增加。

合理降低下行请求并发数。

UserIngressBandwidth

  • 当前用户的所有Bucket的上行带宽之和大于该用户的上行带宽汇报阈值

  • 当前资源池的所有Bucket上行带宽之和大于该资源池的上行带宽汇报阈值

  • 当前资源池请求者的上行带宽之和大于该资源池请求者的上行带宽汇报阈值

用户的上行请求延迟会增加。

合理降低上行请求并发数。

UserEgressBandwidth

  • 当前用户的所有Bucket的下行带宽之和大于该用户的下行带宽汇报阈值

  • 当前资源池的所有Bucket下行带宽之和大于该资源池的下行带宽汇报阈值

  • 当前资源池请求者的下行带宽之和大于该资源池请求者的下行带宽汇报阈值

用户的下行请求延迟会增加。

合理降低下行请求并发数。

报警通知详细内容

报警通知示例:

{
  "AvgSeverity": "10",
  "QosType": "IngressBandwidth",
  "TrafficSource": "net_all",
  "TargetRate": "10737418240",
  "Requester": "300xxxx",
  "ResourcePool": "resource-pool-for-ai"
}

涉及的参数说明如下:

参数

说明

示例值

AvgSeverity

流控的程度。数值越高代表流控越强,延时越高。取值范围为0~100。

10

QosType

触发的流控类型。取值如下:

  • IngressBandwidth:上行带宽流量。

  • EgressBandWidth:下行带宽流量。

  • Qps:每秒请求数。

IngressBandwidth

TrafficSource

触发流控的流量来源。取值如下:

  • intranet:内网带宽。

  • extranet:外网带宽。

  • net_all:总带宽(同时包含内网带宽和外网带宽)。

net_all

TargetRate

带宽和QPS的取值。

  • 带宽:单位为bps

  • QPS:请求数

10737418240

Requester

如果Bucket请求者、资源池请求者带宽达到流控阈值,则事件详情中会返回Requester字段,以UID的形式标识具体的请求者。

300xxxx

ResourcePool

如果资源池或者资源池请求者带宽达到流控阈值,则事件详情中会返回ResourcePool字段,以资源池名称的形式标识资源池。

resource-pool-for-ai

如何查看User级别的流量使用情况?

以下以收到报警事件UserEgressBandwidthThresholdExceeded为例,您可以通过以下步骤查看归属当前用户下各个Bucket的流量使用情况。

  1. 登录云监控控制台

  2. 在左侧导航栏,选择企业云监控 > 监控大盘

  3. 监控大盘页面,单击OSS监控大盘右侧的查看

  4. 根据流控报警类型,在流量监控区域查看具体哪些Bucket占用了较高的流量。

    traffic