web-dev-qa-db-ja.com

Azure Websites Application Insights-スイッチング構成

Azure Webサイトを持っています。この質問のために、ウェブサイトの本番バージョンはexample.comで実行され、ウェブサイトのテストバージョンはsandbox.example.comで実行されます。

2つの唯一の違いは、構成が異なることです。

現在、それらは異なるWebサイトで実行されており、gitを介して同じWebサイトを各Azure Webサイトにデプロイしています。

Application Insightsのデータを分離したいのですが。デプロイ後にサンドボックス環境でApplicationInsights.configファイルを編集する以外に、誰もが使用する手法またはプロセスはありますか?

または、展開スロットを使用してこれを何らかの方法で処理しますか?

21
Brendan Green

本日、これに関する新しいブログ投稿がありました Application Insights Support for Multiple Environments、Stamps and App Versions

テレメトリの宛先は、すべてのテレメトリメッセージとともに送信されるインストルメンテーションキー(iKey)によって決定されます。 Application Insightsポータルでは、同じiKeyを持つ同様のイベントとメトリックが集約され、平均期間、イベント数、ユーザーの合計などのグラフが表示されます。 iKeyはプロジェクトの2つの場所に表示されます。 1つはApplicationInsights.configにあります:<InstrumentationKey>94843456-2345-3456-4567-324562759284</InstrumentationKey>

アプリケーションにWebページがある場合、iKeyはすべてのWebページの先頭にあるスクリプトにも表示されます。通常、Views\Shared\_Layout.cshtmlなどのマスターページで1回だけコード化されます。

テレメトリをさまざまなアプリケーションリソースに向けるために、さまざまなiKeyでいくつかのリソースを作成できます。次に、接続サイクル、証明書、サブスクリプションなどの他の構成データとともに、ライフサイクルの各遷移でアプリケーションのiKeyを変更するだけで済みます。

次に、コード、confgなどでこれを行う方法について説明します。

1)iKeyWeb.configのプロパティとして追加します。

2)ApplicationInsights.configiKeyを使用する代わりに、コードで設定します。 global.asax.cs内。

混乱を避けるために、<InstrumentationKey>からApplicationInsights.configノードを削除します。

3)instrumentationKey: "@Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey"を取得するようにWebページを構成します。これは通常View\Shared\_Layout.cshtmlにあるスクリプトです。

4)展開プロセス中に、適切なiKey構成でWeb.configを更新することを忘れないでください。ビルドの一部として適切に設定する方法を考案するかもしれませんが、それはあなたに任せます。

35
John Gardner

この半関連の質問が見つかりました: アプリケーションインサイトを使用して単一のアプリケーションの複数のAzureサブスクリプションをサポートする方法 これはクラウドサービスで使用するためのものであり、機能します!

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

Unityのregistertypesメソッドでこれを実行しましたが、そこで機能します。

3
Dennis

Webサイト用のAzureポータルの[構成]タブには、[アプリの設定]というセクションがあります。さまざまな構成設定をここに配置できます。公開時に、Azureはこれらの設定をweb.configに挿入します。

次に、通常どおりWebConfigurationManager.AppSettingsを使用すると、挿入された値がプルされます。

2
dascalos