未创建WADPerformanceCountersTable

时间:2013-03-31 14:45:05

标签: c# azure azure-table-storage azure-diagnostics

我正在尝试从worker角色收集一些性能计数器,而且永远不会创建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,两者都是正确创建的。

2 个答案:

答案 0 :(得分:0)

此代码在我的应用程序中正常工作。由于您的ScheduledTransferPeriod是1分钟,您是否让角色至少运行1分钟?那就是表格的创建时间。

答案 1 :(得分:0)

当然,这个问题是由系统语言引起的。这里解释一下:

Error in Azure Emulator when creating Performance Counters

我的Windows是西班牙语版本,因此性能计数器的名称必须是西班牙语:

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

小心,这只适用于本地,而不适用于云端。