6

Ich bin gerade dabei, MS Application Insgihts für eine in Azure implementierte Webanwendung zu testen.VS Application Insights für eine Webanwendung, die in mehreren Umgebungen bereitgestellt wird

Eine Sache, die nicht sofort verfügbar zu sein scheint, ist die Trennung von Statistiken/Analysen durch die Einsatzumgebung.

Ich frage mich, ob jemand das schon getan hat und wie es dazu gekommen ist?

Folgendes habe ich mir gedacht.

  • erstellen 4 separate "Applications" in AI (jeweils mit ihren eigenen App-Name & Component Id)

  • eine einzige ApplicationInsights.config In der Web Application Project

  • manuell App hinzufügen .Config Transformiert in die Anwendung, um den ComponentName & ComponentId zum Erstellungszeitpunkt basierend auf der Konfiguration (QA, UAT oder Prod)

  • zu ersetzenHinzufügen bedingter Kompilierungssymbole zur Webanwendung Buildkonfigurationen (QA, UAT, PROD)
  • Fügen Sie "#if QA" -Vorprozessor-Direktiven in die storage _layout-Ansicht ein, um die korrekte ComponentId beim Build in das JavaScript-Snippet zu tauschen Zeit.

Gedanken?

Antwort

6

Hier ist was wir getan haben.

  • erstellen 4 KI-Anwendungen
  • In unserem ApplicationInsights.config wir es zu unserer Entwicklung componentId gesetzt.
  • für Test, Bühne, und Prod wir verwenden, um einen Build-Skript, das das componentId und component ersetzt basierend auf welcher Umgebung wir in sind
  • In Layout JavaScript, um die appId zu erhalten.

    appInsights.start("@ServerAnalytics.ApplicationInsightsId"); 
    
0

Ich fand das auf MSDN Blogs vom 7. Januar 2015 Application Insights support for Multiple Environments, Stamps and App Versions.

Grundsätzlich können Sie den Instrumentierungsschlüssel von ApplicationInsights.config entfernen und ihn als AppSetting in Web.config setzen und dann beim Start festlegen.

Dies bedeutet, dass Sie die Konfiguration für jede Umgebung direkt in azure beibehalten können.

Meine Schritte:

  1. löschen <InstrumentationKey> von ApplicationInsights.config
  2. die Einstellung im Web hinzufügen.Config

    <add key="appInsightsInstrumentationKey" value="id_from hre"/>

  3. hinzufügen Einstellungen in porta.azure.com für Dev, Sta, etc
  4. Beim Start:

    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;

Verwandte Themen