0

我正在尝试在 Azure WebRole 上捕获以下 PerformanceCounters:

private string[] perfCounters = { @"\Processor(_Total)\% Processor Time", 
                                @"\ASP.NET Applications(__Total__)\Requests/Sec", 
                                @"\Memory\Available Bytes", 
                                @"\ASP.NET\Request Execution Time", 
                                @"\ASP.NET\Requests Queued"};

我在我的 WebRole.cs 中有以下代码,可以像这样捕获这些性能计数器:

    DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();

    int loggingInterval = Int32.Parse(RoleEnvironment.GetConfigurationSettingValue("loggingInterval"));
    config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(loggingInterval);

    foreach (String s in perCounters)
    {
      PerformanceCounterConfiguration procTimeConfig = new PerformanceCounterConfiguration();
      procTimeConfig.CounterSpecifier = s;
      procTimeConfig.SampleRate = System.TimeSpan.FromMinutes(1.0);
      config.PerformanceCounters.DataSources.Add(procTimeConfig);
    }
    config.PerformanceCounters.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1.0);
    DiagnosticMonitor.Start("DiagnosticsConnectionString", config);

如您所见,我将 perf 计数器的预定 xfer 周期设置为 1 分钟。

现在,我可以在我的开发结构上的 WADPerformanceCounters 表中获取这些计数器,但我无法在天蓝色云上获取它们?谁能指出我在这里做错了什么?

卡皮尔

4

3 回答 3

1

据说问题不在于我正在寻找的地方。对此的修复非常简单,我删除了预先存在的部署并将我的 cspkg 文件作为新部署上传。似乎性能计数器是根据 wad-control-container blob 下的 xml 文件拾取的。这个 xml 文件是为每个部署创建的。我意识到 xml 文件在我的情况下没有得到更新,当我删除部署并创建新部署时,它正在获取新值。

谢谢卡皮尔

于 2010-10-11T13:22:40.637 回答
1

仅当执行完整部署而不是更新时,才会更新对诊断设置的任何更改。要执行完整部署,请转到“发布配置文件”、“设置”和“高级设置”,然后取消选中“部署更新”复选框。当您发布此内容时,这将是一个完整的部署。

此外,可以在不执行部署的情况下更新您的设置。在服务器资源管理器中,转到 Windows Azure=> 云服务 => => 生产 => 您的工作角色并右键单击它,单击更新诊断设置。这将获取实际部署的当前诊断设置,您可以在此处更新它们而无需执行任何部署。当然,如果您想验证您的代码实际上是否以正确的方式设置它,那么您将需要进行如上所述的完整部署,这将运行您的代码,然后进行验证。

http://msdn.microsoft.com/library/azure/dn186185.aspx

于 2014-04-09T22:38:56.057 回答
0

由于您在 Dev Fabric 中获得了计数器,但在 Azure Fabric 中没有,所以让我问一个显而易见的问题:您是否更改了 DiagnosticsConnectionString 设置以引用您的 Azure 存储连接字符串?

于 2010-10-03T00:11:42.113 回答