0

ワーカー ロールからいくつかのパフォーマンス カウンターを収集しようとしていますが、WADPerformanceCountersTable が作成されません。

public override bool OnStart()
{
    // Set the maximum number of concurrent connections 
    ServicePointManager.DefaultConnectionLimit = 12;

    DiagnosticMonitorConfiguration diagConfig = DiagnosticMonitor.GetDefaultInitialConfiguration();

    var procTimeConfig = new PerformanceCounterConfiguration();
    procTimeConfig.CounterSpecifier = @"\Processor(_Total)\% Processor Time";
    procTimeConfig.SampleRate = TimeSpan.FromSeconds(10);

    diagConfig.PerformanceCounters.DataSources.Add(procTimeConfig);
    diagConfig.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagConfig);

    return base.OnStart();
}

WADLogsTable や WADDiagnosticInfrastructureLogsTable などのさまざまなログ テーブルを試しましたが、どちらも正しく作成されました。

4

2 に答える 2

0

間違いなく、この問題はシステムの言語が原因です。ここで説明します:

パフォーマンス カウンターを作成するときの Azure Emulator のエラー

私の Windows はスペイン語版なので、パフォーマンス カウンターの名前はスペイン語にする必要があります。

procTimeConfig.CounterSpecifier = @"\Procesador(_Total)\% de tiempo de procesador";

これはローカルでのみ機能し、クラウドでは機能しないことに注意してください。

于 2013-04-12T14:52:28.663 に答える
0

このコードは、私のアプリケーションでは正常に機能します。あなたの ScheduledTransferPeriod は 1 分なので、ロールを少なくとも 1 分間実行しますか? その時、テーブルが作成されます。

于 2013-03-31T17:26:05.470 に答える