Azure:资源使用API​​问题

时间:2017-03-04 06:11:52

标签: azure azure-billing-api

我尝试提取针对结算指标的Azure资源使用情况数据。我按照博客中提到的步骤来获取资源的使用数据。

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

即使我设置了#34;开始和结束时间" 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=Hourly&showDetails=true"

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

注意:Endtime参数值生效,意味着它显示的输出高达endtime中提到的值。但它并没有考虑开始时间。

任何人都有此建议。

1 个答案:

答案 0 :(得分:1)

因此需要考虑以下几点:

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

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

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

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

我们在应用程序中处理此方案的方式是我们获取较长时间的数据,然后仅选取我们感兴趣的数据。例如,如果我需要查看3月1日的数据,那么我们会查询从3月1日到3月4日(即今天的第3天)的报告日期/时间的数据,然后丢弃使用日期为不是三月一日。

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