Azure应用程序洞察 - 在工作者角色中处理CPU

时间:2015-07-18 22:09:18

标签: azure azure-cloud-services azure-application-insights

我创建了一个具有以下角色的Cloud Service项目:

  • 一个Web角色
  • 一名工人角色

对于这两个角色,我添加了Azure Application Insights SDK / Nuget pkg。我还在其中添加了状态监视器,StartUp任务。两个角色指向不同的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角色不同,Worker角色不会填充Application Insights中的CPU使用率/可用内存,如下所示。

工作者角色的Application Insights资源:

enter image description here

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

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

1 个答案:

答案 0 :(得分:1)

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

看一下下面的主题:它解释了如何修改启动任务(InstallAgent.ps1)以提供正确的权限。它是为网络角色完成的,因此您需要更换$ user =&#34;网络服务&#34;在您的情况下使用正确的帐户。

add Azure Application insight Status Monitor from command line

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