我有一个Azure网站。为了这个问题,网站的生产版本在example.com
上运行,网站的测试版本在sandbox.example.com
上运行。
两者之间的唯一区别是它们具有不同的配置。
目前,他们在不同的网站上运行,我通过git将同一个网站部署到每个azure网站。
我想将Application Insights数据分开。是否存在任何人使用的技术或流程 - 除了在部署后编辑沙箱环境中的ApplicationInsights.config
文件?
或者使用部署槽以某种方式处理这个?
答案 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方法中做了这个,它在那里工作。