我在工作角色中获得了自定义性能计数器。它工作正常,我可以在RDP中看到它。
OnStart方法:
...
var dmc = DiagnosticMonitor.GetDefaultInitialConfiguration();
dmc.PerformanceCounters.DataSources.Add(
new PerformanceCounterConfiguration
{
CounterSpecifier = @"\Processor(_Total)\% Processor Time",
SampleRate = TimeSpan.FromSeconds(30)
});
dmc.PerformanceCounters.DataSources.Add(
new PerformanceCounterConfiguration
{
// my counter
CounterSpecifier = @"\..ProcessorWorkerCounters\# of active items",
SampleRate = TimeSpan.FromSeconds(30)
});
dmc.Logs.BufferQuotaInMB = 4;
// Get the perf counters
dmc.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(60);
dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
var cloudStorageAccount =
CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"));
DiagnosticMonitor.Start(cloudStorageAccount, dmc);
...
但我的计数器WADPerformanceCountersTable中没有数据。问题是什么?
UPD :"\Processor(_Total)\% Processor Time"
计数器没问题 - wad-table中有数据。
UPD2 :某些辅助角色正在使用此自定义计数器。如果该角色只有一个实例,则没有数据。但是如果有2个实例 - 那么来自实例#2的数据。