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 Studio2010SP1とAzureSDK1.7がインストールされたWindows7Home Premiumを使用しています(SDK 1.3 8erでは機能しませんでした)。
私のインストールに何が欠けているか知っている人はいますか?