如何处理查询API限流问题?

当您调用API DescribeMetricLastDescribeMetricList时,返回信息Throttling.UserRequest was denied due to user flow control,说明API被限流。本文为您介绍API限流的原因和解决方法。

限流原因

DescribeMetricLastDescribeMetricList的QPS是50次/秒,当您调用API时QPS超过此值就会被限流。

查询QPS峰值

  • 查询API速率配额,请参见API速率配额

    API速率配额列表中,您可以看到DescribeMetricLastDescribeMetricList的配额和峰值。

  • 查询API速率配额的使用率,并评估峰值,请参见API速率配额使用率

    API速率配额使用率(%)的监控图表中找到峰值,并计算QPS的峰值,例如:API速率配额是50,使用率峰值是5%,QPS峰值是50×0.05=2.5。

处理方法

  1. 批量查询监控指标。

    例如:您有50个ECS实例待查询,建议将请求参数Dimensions设置为[{"instanceId":"实例A"},{"instanceId":"实例B"}],这样可以一次查询。

    说明

    单次请求最多支持批量查询50个实例。

  2. 削峰填谷调用API,降低QPS峰值。

    例如:您有10个云产品,每个云产品有10个监控指标,希望10秒查询一次。如果所有监控指标同时查询,则QPS为100,如果平均到10秒内,QPS为10。

  3. 对于导出实时监控数据的场景,建议使用实时导出监控数据的方案。

    实时导出监控数据具有成本低、时延低和可靠度高等优点,BatchExport的QPS是1000次/秒。

  4. 如果以上方法均不能解决问题,请给云监控提交工单

相关文档