针对事件(审核日志)查询 Azure Insights REST API 的速率限制策略
Posted
技术标签:
【中文标题】针对事件(审核日志)查询 Azure Insights REST API 的速率限制策略【英文标题】:rate limit policy on queries to Azure Insights REST API for Events (Audit Logs) 【发布时间】:2016-03-29 02:34:53 【问题描述】:我对 Azure Insights REST Api for Events 有一些疑问。
当我向 Inisghts API 发出 HTTP 请求以获取事件时,我收到标题“ x-ms-ratelimit-remaining-subscription-reads”,值为“14999”。 但 1 秒内的下一个查询返回的剩余读取值相同。
我看到那里有一些限制政策,但我想了解它是如何工作的以及处理它的正确方法是什么。
特别是,
1) 我每秒可以读取多少次?
2) 如果我超过了整个剩余读取参数,我应该等待多长时间才能再次达到最大值?
3) 尽管设置了 $top 参数并且返回了多少结果,但每次查询尝试都会减少吗?
谢谢!
【问题讨论】:
【参考方案1】:这个article 似乎有你需要的回复。
据此回答问题:
-
每秒请求数没有限制,但你有
15k
requests/hour/subscription/region/instance of ARM region
。在最坏的情况下,您将在 15k 请求后受到限制,但您必须非常不幸。
如果超出限制,您将
告诉您必须等待多少,您可以通过以下方式整合该逻辑
查看Retry-After
标头。令人高兴的是,这是一个问题
秒。
我相信$top
参数不会影响查询,因为
无论带回多少个结果,一个分页请求都是
仍然只是一个请求。
至于你收到 14999 个请求的事实
剩余多次,正如他们在文档中所说的那样
预期,因为ARM
区域有多个实例,每个实例都有
15k 请求限制/订阅/小时。如果你同时击中并且
你得到相同的数字,这只是意味着你很幸运
足以命中同一ARM
区域内的不同实例。
【讨论】:
【参考方案2】:1) 我每秒可以读取多少次?
根据此处发布的速率限制 - https://azure.microsoft.com/en-in/documentation/articles/azure-subscription-service-limits/#subscription-limits,您可以执行 15000 次读取/小时(不确定是否会转换为 4 次读取/秒)。
2)如果我超过了整个剩余读取参数,多少时间 我应该等到它再次达到最大值吗?
鉴于费率是每小时定义的,如果您用完 15000 次读取请求限制,我的猜测是等到下一个小时。
3) 每次查询尝试都会减少,尽管 $top 设置了参数,返回了多少结果?
这是基于 API 调用的数量,而不是返回的数据量。所以我想说定义$top
参数不应该对此产生任何影响。
当我向 Inisghts API 发出事件的 HTTP 请求时,我收到 标头“x-ms-ratelimit-remaining-subscription-reads”,带有值 “14999”。但是 1s 中的下一个查询会返回相同的剩余值 读取。
我认为这里有一些缓存在起作用。您重复的请求是相同的请求还是不同的请求?
【讨论】:
关于一次又一次地获得 14999 - 这是 2 个,以及更多的后续查询,每个都有不同的过滤器以上是关于针对事件(审核日志)查询 Azure Insights REST API 的速率限制策略的主要内容,如果未能解决你的问题,请参考以下文章