1

我尝试为计费指标提取 Azure 资源使用数据。我按照博客中提到的步骤获取资源的使用情况数据。

https://msdn.microsoft.com/en-us/library/azure/mt219001.aspx

即使我在 URL 中设置了“开始和结束时间”参数,它也不会生效。它返回整个输出 [从资源创建/添加时间]。

例如: https ://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Commerce/UsageAggregates?api-version=2015-06-01-preview&reportedStartTime=2017-03-03T00 %3a00%3a00%2b00%3a00&reportedEndTime=2017-03-04T00%3a00%3a00%2b00%3a00&aggregationGranularity=每小时&showDetails=true "

根据上面的 URL,它应该返回“2017-03-03 到 2017-03-04”之间的数据。但它显示了 3 月 2 日 [2017-03-02] 的数据。不知道为什么这个返回整个输出和时间过滤器部分不起作用。

注意:结束时间参数值生效,意味着它显示的输出达到结束时间中提到的内容。但它不考虑开始时间。

任何人对此都有建议。

4

1 回答 1

1

所以有几点需要考虑:

  • usage date/time然后有reported date/time。前者告诉您使用资源的日期/时间,而后者告诉您计费子系统收到此信息的日期/时间。使用资源的时间与报告资源的时间会有一些延迟。从此link

将报告开始时间和报告结束时间的 {dateTimeOffset-value} 设置为有效的日期时间值。请注意,此 dateTimeOffset 值表示在 Azure 计费系统中记录资源使用情况的时间戳。由于 Azure 是一个分布式系统,跨越全球 19 个数据中心,资源使用时间(资源实际被消耗时)和资源使用报告时间(使用事件到达计费系统时)之间必然会有延迟)并且调用者需要一种可预测的方式来获取给定时间段内订阅的所有使用事件。

  • 该查询仅允许您搜索报告的日期/时间,并没有提供使用日期/时间。但是,返回给您的数据包含使用日期/时间,而不是报告的日期/时间。

长话短说,由于将使用信息传播到计费子系统的延迟,您看到的行为是正确的。根据我的经验,所有使用信息大约需要 24 小时才能显示在计费子系统中。

我们在应用程序中处理这种情况的方式是我们获取较长时间的数据,然后只获取我们有兴趣查看的数据。因此,例如,如果我需要查看 3 月 1 日的数据,那么我们查询从 3 月 1 日到 3 月 4 日(即今天的日期)报告的日期/时间的数据,然后丢弃使用日期不是 3 月 1 日的任何数据.

如果我们没有找到任何数据(这很有可能并且在您的情况下也正在发生),我们只会告诉用户使用信息尚不可用。

于 2017-03-04T11:18:34.263 回答