我正在试验部署到Azure的Web应用程序上的MS Application Insgihts。
似乎没有开箱即用的一件事是按部署环境隔离stats / anayltics。
只是想知道有没有人已经这样做了,以及如何实现它?
这就是我的想法。
在AI中创建4个单独的“应用程序”(每个应用程序都有自己的应用程序名称和组件ID)
将单个ApplicationInsights.config添加到Web应用程序项目
手动将App.Config转换为应用程序以替换ComponentName& ComponentId在构建时基于Configuratoin(QA,UAT或Prod)
将条件编译符号添加到Web应用程序构建配置(QA,UAT,PROD)
将“#if QA”预处理器指令添加到razor _layout视图,以便在构建时将正确的ComponentId交换到javascript代码段中。
思想?
答案 0 :(得分:6)
这就是我们所做的。
在布局javascript中获取appId:
appInsights.start("@ServerAnalytics.ApplicationInsightsId");
答案 1 :(得分:0)
我在2015年1月7日的msdn博客上发现了这个Application Insights support for Multiple Environments, Stamps and App Versions。
基本上,您可以从ApplicationInsights.config
中删除检测密钥,并将其作为appSetting放入Web.config
,然后在启动时进行设置。
这意味着您可以直接在azure中保留每个环境的配置。
我的步骤:
<InstrumentationKey>
ApplicationInsights.config
在Web.config中添加设置
<add key="appInsightsInstrumentationKey" value="id_from hre"/>
启动时:
var aiInstrumentationKey = System.Web.Configuration.WebConfigurationManager.AppSettings["appInsightsInstrumentationKey"];
if( string.IsNullOrEmpty(aiInstrumentationKey))
{
throw new ApplicationException("appInsightsInstrumentationKey missing in web.config");
}
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = aiInstrumentationKey;