Azure网站应用程序洞察 - 切换配置

时间:2014-11-20 12:04:15

标签: azure azure-web-sites azure-application-insights

我有一个Azure网站。为了这个问题,网站的生产版本在example.com上运行,网站的测试版本在sandbox.example.com上运行。

两者之间的唯一区别是它们具有不同的配置。

目前,他们在不同的网站上运行,我通过git将同一个网站部署到每个azure网站。

我想将Application Insights数据分开。是否存在任何人使用的技术或流程 - 除了在部署后编辑沙箱环境中的ApplicationInsights.config文件?

或者使用部署槽以某种方式处理这个?

3 个答案:

答案 0 :(得分:32)

今天有一篇关于这个问题的新博文:Application Insights Support for Multiple Environments, Stamps and App Versions

  

遥测的目的地由仪器决定   key(iKey),与每个遥测消息一起发送。在里面   Application Insights门户,类似的事件和指标与之相同   iKey汇总为您提供平均持续时间,事件的图表   计数,用户总和等。 iKey出现在两个地方   你的项目。一个在ApplicationInsights.config:   <InstrumentationKey>94843456-2345-3456-4567-324562759284</InstrumentationKey>

     

如果您的应用程序有网页,iKey也会出现在脚本中   在每个网页的头部。通常,它只编码一次   主页,例如Views\Shared\_Layout.cshtml

     

要将遥测指向不同的应用程序资源,我们可以创建   具有不同iKeys的几种资源。然后我们只需改变   应用程序中的iKeys在其生命周期的每次转换中 -   连同其他配置数据,如连接字符串,   证书和订阅。

然后文章继续讨论如何在代码,配置等中执行此操作:

  

1)在iKey中添加Web.config作为属性:

     

2)我们不会使用iKey中的ApplicationInsights.config   在代码中设置它。在global.asax.cs

     

为避免混淆,请从中删除<InstrumentationKey>节点   ApplicationInsights.config

     

3)配置网页以选择instrumentationKey: "@Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey"。这是   通常在View\Shared\_Layout.cshtml

中找到的脚本      

4)不要忘记使用适当的Web.config更新iKey   部署过程中的配置。你可能想出办法   作为构建的一部分适当地设置它,但我会留下它   你。

答案 1 :(得分:2)

在Azure门户网站中,在配置选项卡上有一个名为App Settings的部分。您可以在此处输入不同的配置设置。发布时,azure会将这些设置注入web.config。

然后像往常一样使用WebConfigurationManager.AppSettings,它将拉出注入的值。

答案 2 :(得分:2)

发现这个与半相关的问题:How to support multiple Azure subscriptions for a single application with application insights这是供云服务使用的,并且有效!

Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = ConfigurationManager.AppSettings["appInsightsKey"];

我在我的unity registertypes方法中做了这个,它在那里工作。