当您调用API DescribeMetricLast和DescribeMetricList时,返回信息Throttling.User
或Request was denied due to user flow control
,说明API被限流。本文为您介绍API限流的原因和解决方法。
限流原因
DescribeMetricLast和DescribeMetricList的QPS是50次/秒,当您调用API时QPS超过此值就会被限流。
查询QPS峰值
查询API速率配额,请参见API速率配额。
在API速率配额列表中,您可以看到DescribeMetricLast和DescribeMetricList的配额和峰值。
查询API速率配额的使用率,并评估峰值,请参见API速率配额使用率。
在API速率配额使用率(%)的监控图表中找到峰值,并计算QPS的峰值,例如:API速率配额是50,使用率峰值是5%,QPS峰值是50×0.05=2.5。
处理方法
批量查询监控指标。
例如:您有50个ECS实例待查询,建议将请求参数
Dimensions
设置为[{"instanceId":"实例A"},{"instanceId":"实例B"}]
,这样可以一次查询。说明单次请求最多支持批量查询50个实例。
削峰填谷调用API,降低QPS峰值。
例如:您有10个云产品,每个云产品有10个监控指标,希望10秒查询一次。如果所有监控指标同时查询,则QPS为100,如果平均到10秒内,QPS为10。
对于导出实时监控数据的场景,建议使用实时导出监控数据的方案。
实时导出监控数据具有成本低、时延低和可靠度高等优点,BatchExport的QPS是1000次/秒。
如果以上方法均不能解决问题,请给云监控提交工单。