如何配置Windows性能DataCollectors以正确记录DST?

时间:2018-05-09 09:58:50

标签: windows performancecounter

我正在尝试使用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偏移时间戳?

0 个答案:

没有答案