RowKey:遵循格式:。下降时间滴答计算是最大时间滴答减去聚集期开始的时间。例如,如果采样周期开始于2015年11月10日和UTC时间00:00Hrs,则计算公式为:DateTime.MaxValue.Ticks-(new DateTime(2015,11,10,0,0,0,DateTimeKind.Utc)提示)。对于内存可用字节性能计数器,行键如下所示:2519551871999999999 __:005CMemory:005CAvailable:0020Bytes
因此,我对如何生成此行键值感到困惑,因为我不知道什么是聚合期。尽管滴答声非常相似,但我在最后一刻或最后一小时都没有碰运气。
答案 0 :(得分:1)
如果为VM启用诊断,则所有指标数据都将存储在存储帐户表中。
聚集期在表名中。例如:WADMetricsPT1HP10DV2S20190927
PT1H / PT1M:PT1M和PT1H的MetricAggregation值表示一分钟内的聚集和一小时内的聚集
P10D:它包含10天的数据
20190927:这是开始聚合时间段。
就像官方文档中提到的那样,它采用以下格式:递减时间滴答计算是最大时间滴答减去聚合期间开始的时间。
我将表中的一条记录作为示例:
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")));
}
}