2016-07-05 16 views
1

Ich baue eine Java-Webanwendung (Spring-Webanwendung mit Maven-Build) auf Azure und verwende Application Insights zur Überwachung. Ich habe den Referenzlink https://azure.microsoft.com/en-us/documentation/articles/app-insights-java-get-started/ verwendet.Application Insights unterstützen mehrere Umgebungen für Java

Da ich mehrere Umgebungen verwende, plante ich, den App Insights-Instrumentationsschlüssel als Systemeigenschaft vom Azure-Portal APP_SETTING (JAVA_OPTS als -Dappinsight.instrumentation.key=xxxxxxx) zu übergeben.

Ich habe hinzugefügt erforderlich Maven Abhängigkeiten und meine src\main\resources\ApplicationInsights.xml hat die App Insight Instrumentierung Schlüsselreferenz als:

<?xml version="1.0" encoding="utf-8"?> 
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30"> 


    <!-- The key from the portal: --> 

    <InstrumentationKey>${appinsight.instrumentation.key}</InstrumentationKey> 


    <!-- HTTP request component (not required for bare API) --> 

    <TelemetryModules> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebRequestTrackingTelemetryModule"/> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebSessionTrackingTelemetryModule"/> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebUserTrackingTelemetryModule"/> 
    </TelemetryModules> 

    <!-- Events correlation (not required for bare API) --> 
    <!-- These initializers add context data to each event --> 

    <TelemetryInitializers> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationIdTelemetryInitializer"/> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationNameTelemetryInitializer"/> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebSessionTelemetryInitializer"/> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserTelemetryInitializer"/> 
    <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserAgentTelemetryInitializer"/> 

    </TelemetryInitializers> 
</ApplicationInsights> 

Aber es funktioniert nicht. Wenn ich den Schlüssel direkt codiere, funktioniert es.

Gibt es eine spezifische Möglichkeit, die Systemeigenschaften für Anwendungseinblicke im Frühling zu referenzieren?

Antwort

3

Der in der Konfigurationsdatei enthaltene Instrumentierungsschlüssel wird als verwendet, und daher wird die Angabe einer Systemeigenschaft nicht hilfreich sein.

Obwohl es nicht, AI Java SDK dokumentiert wird versucht, die Instrumentierung Schlüssel in der folgenden Reihenfolge zu beheben:

  1. Systemeigenschaft: -DAPPLICATION_INSIGHTS_IKEY = your_ikey
  2. Umgebungsvariable: APPLICATION_INSIGHTS_IKEY
  3. Konfigurationsdatei: ApplicationInsights.xml.

Also ich denke, eine der ersten beiden Optionen wird Sie zufriedenstellen.

Das SDK Open-Source ist, können Sie den Code hier lesen: TelemetryConfigurationFactory.setInstrumentationKey

+1

Perfect, danke! – Satheesh

Verwandte Themen