22

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

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

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

我想分离出 Application Insights 数据。ApplicationInsights.config除了在部署后在沙盒环境中编辑文件之外,是否有任何人使用的技术或流程?

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

4

3 回答 3

35

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

遥测的目的地由与每条遥测消息一起发送的检测密钥 (iKey) 确定。在 Application Insights 门户中,聚合具有相同 iKey 的类似事件和指标,为您提供平均持续时间、事件计数、用户总数等图表。iKey 出现在项目中的两个位置。一个在ApplicationInsights.config<InstrumentationKey>94843456-2345-3456-4567-324562759284</InstrumentationKey>

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

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

然后文章继续介绍如何在代码、配置等中执行此操作:

1)添加iKey为属性Web.config

2)我们将在代码中设置它,而不是使用iKeyfrom 。ApplicationInsights.configglobal.asax.cs.

为避免混淆,请<InstrumentationKey>ApplicationInsights.config.

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

4) 不要忘记 在部署过程中Web.config使用适当的配置更新您的配置。iKey您可能会设计一种将其适当设置为构建的一部分的方法,但我将把它留给您。

于 2015-01-09T02:18:41.153 回答
3

发现了这个半相关的问题:如何通过应用程序洞察力支持单个应用程序的多个 Azure 订阅,这是供云服务使用的,并且有效!

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

我已经在我的统一寄存器类型方法中做到了这一点,它在那里工作。

于 2014-12-22T20:30:07.100 回答
2

在 Azure 网站门户中,配置选项卡上有一个名为“应用设置”的部分。您可以将不同的配置设置放在这里。发布时,Azure 会将这些设置注入 web.config。

然后像往常一样使用 WebConfigurationManager.AppSettings ,它会提取注入的值。

于 2014-11-20T13:59:28.817 回答