无法捕捉性能计数器的Azure的Web角色
-
27-09-2019 - |
题
我试图捕获到天青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下面的代码,以使这些PERF的计数器,因为这捕获:
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);
正如所看到的,我设置调度XFER的PERF的计数器周期为1分钟。
现在,我可以让我的dev的面料在WADPerformanceCounters表这些计数器,但我不能让他们在Azure云?任何人都可以点出我来错在这里能干什么?
卡皮尔西
解决方案
问题理应是不是在我一直在寻找的地方。对此问题进行修复是相当简单的,我删除了先前存在的部署和上传我的cspkg文件作为新的部署。看来,日PERF的柜台是基于WAD控制容器的blob下一个XML文件回升。此xml文件是为每个调配而成。我意识到,XML文件没有得到我的情况更新,当我删除了部署,并创造了新的部署,它正在采取新的价值。
由于 卡皮尔
其他提示
在诊断设置的任何更改只得到在进行全面部署,而不是更新更新。 为了进行全面部署,到发布配置文件,并设置,高级设置,并取消部署更新的复选框。当您发布此,这将是一个全面部署。
此外,也可以不执行部署更新您的设置。 在服务器资源管理器,进入到Windows Azure =>云服务=> =>生产=>您的辅助角色,并在其上单击鼠标右键,点击更新诊断设置。这将获取实际部署当前诊断设置,你可以在这里更新他们没有进行任何部署。 当然,如果你想验证您的代码实际上是设置正确的方式,那么你就需要做上面提到会锻炼你的代码,然后验证全面部署。
既然你要在开发面料,但不是在Azure结构柜台,让我问了明显的:你有没有改变你的DiagnosticsConnectionString设置为引用您的Azure存储连接字符串
不隶属于 StackOverflow