天蓝色指标表的RowKey列中使用的“汇总期限”是多少?

时间:2019-10-23 15:11:51

标签: azure azure-java-sdk

https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/diagnostics-template#wadmetrics-tables-in-storage

  

RowKey:遵循格式:。下降时间滴答计算是最大时间滴答减去聚集期开始的时间。例如,如果采样周期开始于2015年11月10日和UTC时间00:00Hrs,则计算公式为:DateTime.MaxValue.Ticks-(new DateTime(2015,11,10,0,0,0,DateTimeKind.Utc)提示)。对于内存可用字节性能计数器,行键如下所示:2519551871999999999 __:005CMemory:005CAvailable:0020Bytes

因此,我对如何生成此行键值感到困惑,因为我不知道什么是聚合期。尽管滴答声非常相似,但我在最后一刻或最后一小时都没有碰运气。

1 个答案:

答案 0 :(得分:1)

1。聚集期

如果为VM启用诊断,则所有指标数据都将存储在存储帐户表中。

enter image description here

聚集期在表名中。例如:WADMetricsPT1HP10DV2S20190927

PT1H / PT1M:PT1M和PT1H的MetricAggregation值表示一分钟内的聚集和一小时内的聚集

P10D:它包含10天的数据

20190927:这是开始聚合时间段。


2。行键值

就像官方文档中提到的那样,它采用以下格式:递减时间滴答计算是最大时间滴答减去聚合期间开始的时间。

我将表中的一条记录作为示例:

RowKey -> :2518363979999999999__:005CProcessor:0020Information:0028:005FTotal:0029:005C:0025:0020User:0020Time
TIMESTAMP -> 2019-08-15T21:00:00.000Z

首先,RowKey值包含一些Basic Latin characters in Unicode

:005C = \
:0020 = blank space

因此,可读的RowKey看起来像:

:2518363979999999999__:\Processor Information(-Total)\% User Time

然后,我们讨论一下数字–2518363979999999999。

由于该记录来自表“ WADMetricsPT1HP10DV2S20190808”,因此:

在C#中,您可能获得的值为:

DateTime.MaxValue.Ticks - (new DateTime(2019,08,08,0,0,0,DateTimeKind.Utc).Ticks)

在Java中,您可以尝试以下代码:

public class TickTest {

    public static Instant MAX = Instant.parse("9999-12-31T23:59:59.999Z");

    public static long toTicks(Instant start)
    {
        return toTicks(start, MAX);
    }

    public static long toTicks(Instant start, Instant end)
    {
        return Duration.between(start, end).toMillis() * 10000;
    }

    // Test
    public static void main(String[] args) {
        System.out.println(toTicks(Instant.parse("2019-08-08T00:00:00.000Z")));
    }
}