我正在尝试测量我的 Azure 项目上的处理器负载,并且在运行模拟器时,我在模拟器控制台中遇到如下错误:
[MonAgentHost] Error: MA EVENT: 2012-10-10T12:15:06.982Z
[MonAgentHost] Error: 2
[MonAgentHost] Error: 9028
[MonAgentHost] Error: 8168
[MonAgentHost] Error: SysCounterListener.dll
[MonAgentHost] Error: 0
[MonAgentHost] Error: b9eb57e3-62d5-49a5-b395-abc3bd5
[MonAgentHost] Error: liscounter.cpp
[MonAgentHost] Error: SystemCounter::AddCounter
[MonAgentHost] Error: 660
[MonAgentHost] Error: ffffffffc0000bb9
[MonAgentHost] Error: 0
[MonAgentHost] Error:
[MonAgentHost] Error: PdhAddCounter(\Processor(_Total)\% Processor Time) failed
我尝试创建一个新的简单控制台项目(不是 Azure)。在这里,我能够阅读性能指标,因此这个建议http://www.infosysblogs.com/microsoft/2011/06/mystery_of_the_windows_azure_d.html似乎不是解决方案。
我在 RoleEntryPoint 的 OnStart 中设置了性能计数器,如下所示:
public class WebRole : RoleEntryPoint
{
public override bool OnStart()
{
try
{
DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();
var counters = new List<string>
{
@"\Processor(_Total)\% Processor Time"
};
if (counters.Count() > 0)
{
config.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);
config.PerformanceCounters.BufferQuotaInMB = 10;
counters.ForEach(counter =>
config.PerformanceCounters.DataSources.Add(
new PerformanceCounterConfiguration()
{
CounterSpecifier = counter,
SampleRate = TimeSpan.FromSeconds(10)
})
);
}
DiagnosticMonitor.Start(
"Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString",
config);
}
catch (Exception e)
{
Trace.TraceError("Exception during WebRole1.OnStart: " + e.ToString());
}
return base.OnStart();
}
}
我已经尝试设置 IIS 日志记录,它工作得很好。追踪也是如此。只是不是性能计数器...
我在安装了 Visual Studio 2010 SP1 和 Azure SDK 1.7 的 Windows 7 Home Premium 上(它不适用于 SDK 1.3 八)。
有人知道我在安装中缺少什么吗?