哪种Azure度量聚合类型返回十进制值



我使用Azure度量来评估我的Azure资源的健康程度,方法是为资源的每个度量收集其默认聚合类型。我可以在SDK的Microsoft.Azure.Management.Monitor.Fluent.Models命名空间中看到MetricValue类将为所有聚合类型返回类型double的值。

namespace Microsoft.Azure.Management.Monitor.Fluent.Models
{
public class MetricValue
{
public MetricValue();
public MetricValue(DateTime timeStamp, double? average = null, double? minimum = null, double? maximum = null, double? total = null, double? count = null);
public DateTime TimeStamp { get; set; }
public double? Average { get; set; }
public double? Minimum { get; set; }
public double? Maximum { get; set; }
public double? Total { get; set; }
public double? Count { get; set; }
public virtual void Validate();
}
}

我的问题是(考虑到双重数据类型(,所有服务的所有Azure指标是否真的有机会返回十进制值?我可以看到服务总线度量中的消息计数有时会返回十进制值。我找不到与我的问题相关的具体文件需要澄清。谢谢

因为metric可以是任何东西,而MetricValue是一种通用的类型/架构,需要满足各种度量,其中一些需要尽可能高的精度、非常高或非常低的值(+ve或-ve(,并且还需要持久化在底层通用数据存储中(例如Azure Monitor(。现在,虽然某些度量可能是整数,这取决于上下文中的单位(例如,当您说我的请求花费了300毫秒(,但有些度量可能不是(例如,有20.57 GB的可用磁盘空间(。记住,除了内置的Azure指标外,您的应用程序还可以自定义指标,这些指标可能是任何想象中的东西。因此,为了适应足够高的精度,double是可能的选择。这就解释了平均值、最小值、最大值和总计。但为什么Count也是double,我不完全确定,但最有可能的是为了容纳一个超高的数字,以备不时之需,并且我们不会因int或long而耗尽。或者它可能是在一个时间窗口内的计数,可以是十进制的(每分钟10.6个请求(。

最新更新