我创建了一个具有以下角色的Cloud Service项目:
对于这两个角色,我添加了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资源:
可能是什么问题,我可以在上面显示的环境变量中使用任何GUID吗?
此外,似乎对于辅助角色,我们需要将ApplicationInsights.config文件设置为始终复制到输出目录。但是,当我这样做时,worker角色会抛出任务异常并继续重新启动,最终导致部署失败。
答案 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。