我正在尝试使用Windows性能计数器来监视计算机运行状况,这是我的应用程序的一部分。我有一些DataCollectors配置为将数据写入CSV或BLG格式。但是,我注意到时间戳没有每个样本时间戳的TZ信息,每个文件只有一次。这意味着在单个数据文件中我会看到如下内容:
"(PDH-CSV 4.0) (GMT Standard Time)(-60)","\\MACHINE-NAME\% C2 Time"
"10/29/2017 01:59:44.562","88.359340674585567"
"10/29/2017 01:59:59.562","93.754278507632279"
"10/29/2017 01:00:14.562","89.834673388599242"
"10/29/2017 01:00:29.563","94.014449309223536"
同样在转换过程中,另一种方式是您看到丢失的小时数据(与那小时的机器离线相比,更难消除歧义)。
我想也许二进制数据可能会存储更多信息,因此我也以BLG格式创建了相同的指标,并使用PowerShell重新读取信息。但是,在这种情况下,我仍然无法获得每个时间戳的时区信息。如,
# $counters = Import-Counter -Path mysamples.blg
# $counters[10].Timestamp
29 October 2017 01:59:59
# $counters[11].Timestamp
29 October 2017 01:00:14
# $counters[10].Timestamp.IsDaylightSavingTime()
False
# $counters[11].Timestamp.IsDaylightSavingTime()
False
# $counters[10].Timestamp.ToFileTimeUtc()
131537159995620000
# $counters[11].Timestamp.ToFileTimeUtc()
131537124145620000
有没有办法在性能计数器数据中获取与时间戳相关的正确TZ信息,或者有没有办法将UTC时间添加到日志而不是TZ偏移时间戳?