2015-07-18 99 views
3

我创建了一个云服务项目有以下作用:Azure应用程序洞察 - 在Worker角色过程CPU

  • 一个Web角色
  • 一个工人的作用

对于这两个角色,我添加了Azure Application Insights SDK/Nuget pkg。我还将状态监视器添加到他们两个,启动任务。两个角色指向不同的AI资源。对于Worker角色,我还在csdef文件中添加了以下三个环境变量。

<Environment> 
     <Variable name="COR_ENABLE_PROFILING" value="1" /> 
     <Variable name="COR_PROFILER" value="{324F817A-7420-4E6D-B3C1-143FBED6D855}" /> 
     <Variable name="MicrosoftInstrumentationEngine_Host" value="{CA487940-57D2-10BF-11B2-A3AD5A13CBC0}" /> 
</Environment> 

的问题是不同的Web角色,辅助角色不填充在应用程序的见解CPU使用率/可用内存,如可以在下面所示。 Worker角色的

应用洞察资源:

enter image description here

什么可以是问题,我可以在上面显示的环境变量使用任何GUID?

此外,似乎对于工作者角色,我们需要将ApplicationInsights.config文件始终复制到输出目录。但是,当我这样做时,worker角色会引发任务异常并继续重新启动,最终导致部署失败。

+0

您是否可能需要在worker角色中开始分析?也许网络角色自动执行它?当我搜索COR_PROFILER时,我一直在找人引用这个env变量:COR_PROFILER_PATH,你没有定义 – Thraka

+0

然后,你是否开始根据这个工作角色的OnStart收集遥测数据? https://github.com/Microsoft/ApplicationInsights-Home/blob/master/Samples/AzureEmailService/WorkerRoleA/WorkerRoleA.cs#L232 – Thraka

+0

复制ApplicationInsights.config解决了我的问题。部署WR时会发生什么错误? – cdiazal

回答

1

1)为了收集性能计数器帐户,您运行的工作角色进程(WaWorkerHost.exe)应该是Performance Monitor用户组的一部分。

看看下面的线程:它解释了如何修改启动任务(InstallAgent.ps1)以提供正确的权限。它是为Web角色完成的,因此您需要用您的案例中正确的帐户替换$ user =“Network Service”。

add Azure Application insight Status Monitor from command line

2)不,你不能使用任何的GUID环境变量。它是AppInsights概要分析器的预定义COM对象GUID。

+0

我在Network Monitor Users和Performance Log Users组中添加了网络服务用户(在其下运行WaWorkerHost.exe),但我仍没有在服务器刀片中填充任何数据。 –