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

此代码在我的应用程序中运行良好。由于您的 ScheduledTransferPeriod 是 1 分钟,您是否让您的角色运行至少 1 分钟?那时将创建表。

于 2013-03-31T17:26:05.470 回答
0

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

创建性能计数器时 Azure 模拟器出错

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

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

请注意,这仅适用于本地,不适用于云端。

于 2013-04-12T14:52:28.663 回答