当用户的请求量超出OSS使用限制后会触发OSS流控,触发流控会对用户的请求产生一定的影响。您只需要在云监控管理控制台进行简单的配置,即可完成对OSS请求指标的实时监控,并在触发流控时及时收到告警通知。
背景信息
OSS提供了用户级别和Bucket级别的流控,支持的类别主要包括带宽流控和QPS流控。当您访问OSS的QPS、带宽超出OSS使用限制时,访问速度会受到OSS流控的限制。如果触发了带宽流控,则访问OSS的延迟会增加。如果触发了QPS流控,则OSS会丢弃部分请求。关于带宽流控和QPS流控的限制信息,请参见使用限制及性能指标 。
您可以通过云监控管理控制台创建OSS流控事件告警规则,并指定在监测到用户发送到OSS指定类型的请求量触发流控或达到汇报阈值时,以短信、邮件和钉钉机器人的方式向指定联系人组发送报警信息。
前提条件
已创建用于接收流控报警信息的联系人组,并向联系人组添加多个联系人。具体操作,请参见创建报警联系人或报警联系人组。
创建报警规则
-
登录云监控控制台。
-
在左侧导航栏,选择。
在事件监控页签,单击另存为报警。
-
在创建/修改事件报警面板,设置以下参数,其他参数保留默认值,然后单击确定。
|
参数 |
说明 |
|
报警规则名称 |
设置为rule1。 |
|
产品类型 |
选择对象存储OSS。 |
|
事件类型 |
选择全部类型。 |
|
事件等级 |
选择警告和信息。 |
|
事件名称 |
选择全部事件。关于云监控支持的OSS流控事件的含义及说明,请参见云监控支持的OSS流控事件。 |
|
报警联系人组 |
选中报警方式下的报警通知,然后选择已创建的报警联系人组。 |
|
通知方式 |
选择Warning(短信+邮件+WebHook)。 |
以上事件告警规则配置完成后,如果请求触发OSS流控或者超过汇报阈值,则云监控会自动向指定的联系人发送报警通知。报警通知中包含报警资源、事件名称、事件类别以及事件详情等信息。关于报警通知的更多信息,请参见报警通知。
流控报警为每分钟一次,一分钟内如果有30s或以上时间触发流控则产生报警。汇报阈值为每10分钟一次,只要1s内触发汇报阈值则产生报警。
报警通知
如果指定联系人收到了流控触发报警通知,请参见以下表格了解各类流控事件触发的原因、影响、对应的解决方法以及事件的详细内容。
如果您希望在收到User级别的报警事件后,查看归属当前用户下所有Bucket的流量使用情况,请提前创建OSS监控大盘。具体步骤,请参见创建系统预置大盘。
报警通知事件名称
下表中的汇报阈值=流控阈值*0.8。
|
事件名称 |
触发原因 |
影响 |
解决方法 |
|
BucketIngressBandwidthThresholdExceeded |
|
上传请求将会被流控且请求延迟会增加。 |
合理降低上传请求并发数。 |
|
BucketEgressBandwidthThresholdExceeded |
|
下载请求将会被流控且请求延迟会增加。 |
合理降低下载请求并发数。 |
|
BucketQpsThresholdExceeded |
|
OSS会拒绝响应部分请求并返回503。 |
合理降低每秒请求数。 |
|
UserIngressBandwidthThresholdExceeded |
|
上传请求将会被流控且请求延迟会增加。 |
合理降低上传请求并发数。 |
|
UserEgressBandwidthThresholdExceeded |
|
下载请求将会被流控且请求延迟会增加。 |
合理降低下载请求并发数。 |
|
UserQpsThresholdExceeded |
|
OSS会拒绝响应部分请求。 |
合理降低每秒请求数。 |
|
BucketImageCpuThresholdExceeded |
当前Bucket用于处理图片请求的CPU核数大于Bucket CPU核数流控阈值 |
图片处理类型的请求延迟会增加。 |
合理降低图片处理请求并发数。 |
|
UserImageCpuThresholdExceeded |
当前用户的所有Bucket用于处理图片请求的CPU核数之和大于该用户的CPU核数流控阈值 |
图片处理类型的请求延迟会增加。 |
合理降低图片处理请求并发数。 |
|
BucketMirrorIngressBandwidthThresholdExceeded |
当前Bucket镜像回源类型请求带宽大于Bucket镜像回源类型请求的带宽流控阈值 |
镜像回源请求延迟会增加。 |
合理降低镜像回源类型请求并发数。 |
|
BucketMirrorQpsThresholdExceeded |
当前Bucket镜像回源类型的每秒请求数大于Bucket镜像回源类型请求的流控阈值 |
OSS会拒绝部分镜像回源类型请求。 |
合理降低镜像回源类型每秒请求数。 |
|
UserMirrorIngressBandwidthThresholdExceeded |
当前用户的所有Bucket镜像回源类型上传请求带宽之和大于用户镜像回源带宽流控阈值 |
镜像回源请求延迟会增加。 |
合理降低镜像回源类型请求并发数。 |
|
UserMirrorQpsThresholdExceeded |
当前用户的所有Bucket镜像回源类型的每秒请求数之和大于用户镜像回源类型请求的流控阈值 |
OSS将拒绝响应部分镜像回源类型的请求。 |
合理降低镜像回源类型每秒请求数。 |
|
BucketIngressBandwidth |
|
Bucket的上行请求延迟会增加。 |
合理降低上行请求并发数。 |
|
BucketEgressBandwidth |
|
Bucket的下行请求延迟会增加。 |
合理降低下行请求并发数。 |
|
UserIngressBandwidth |
|
用户的上行请求延迟会增加。 |
合理降低上行请求并发数。 |
|
UserEgressBandwidth |
|
用户的下行请求延迟会增加。 |
合理降低下行请求并发数。 |
报警通知详细内容
报警通知示例:
{
"AvgSeverity": "10",
"QosType": "IngressBandwidth",
"TrafficSource": "net_all",
"TargetRate": "10737418240",
"Requester": "300xxxx",
"BucketGroup": "test-group",
"ResourcePool": "resource-pool-for-ai"
}
涉及的参数说明如下:
|
参数 |
说明 |
示例值 |
|
AvgSeverity |
流控的程度。数值越高代表流控越强,延时越高。取值范围为0~100。 |
10 |
|
QosType |
触发的流控类型。取值如下:
|
IngressBandwidth |
|
TrafficSource |
触发流控的流量来源。取值如下:
|
net_all |
|
TargetRate |
带宽和QPS的取值。
|
10737418240 |
|
Requester |
如果Bucket请求者、资源池请求者带宽达到流控阈值,则事件详情中会返回Requester字段,以UID的形式标识具体的请求者。 |
300xxxx |
|
BucketGroup |
如果资源池内BucketGroup带宽达到流控阈值,则事件详情中会返回BucketGroup字段,以BucketGroup名称的形式标识BucketGroup。 |
test-group |
|
ResourcePool |
如果资源池带宽达到流控阈值,则事件详情中会返回ResourcePool字段,以资源池名称的形式标识资源池。 |
resource-pool-for-ai |
如何查看User级别的流量使用情况?
以下以收到报警事件UserEgressBandwidthThresholdExceeded为例,您可以通过以下步骤查看归属当前用户下各个Bucket的流量使用情况。
登录云监控控制台。
在左侧导航栏,选择。
-
在监控大盘页面,单击OSS监控大盘右侧的查看。
-
根据流控报警类型,在流量监控区域查看具体哪些Bucket占用了较高的流量。
