2016-07-05 22 views
1

私はAzure上でJava webapp(Mavenビルドを使用したSpring Webapp)を構築し、Application Insightsを使用して監視しています。参照リンクhttps://azure.microsoft.com/en-us/documentation/articles/app-insights-java-get-started/を使用しました。Application InsightsはJava用の複数の環境をサポートしています

私は複数の環境を使用しているので、私はAzureポータルAPP_SETTING(JAVA_OPTSの値は-Dappinsight.instrumentation.key=xxxxxxx)からシステムプロパティとしてApp Insights計測キーを渡す予定でした。

私は必要なMavenの依存関係を追加した、私のsrc\main\resources\ApplicationInsights.xmlは通りのAppインサイト計装キーの参照を持っています

<?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> 

しかし、それは動作しません。キーを直接ハードコードすると動作します。

SpringのApplication Insightのシステムプロパティを参照する具体的な方法はありますか?

答えて

3

構成ファイルで提供される計測キーは、と解釈されるため、システムプロパティを指定することは役に立ちません。

それはを文書化されていないが、AIのJava SDKは、次の順序でインスツルメンテーション・キーを解決しよう:

  1. Systemプロパティ:-DAPPLICATION_INSIGHTS_IKEY = your_ikey
  2. 環境変数:APPLICATION_INSIGHTS_IKEY
  3. 構成ファイル:ApplicationInsights.xml。

私は最初の2つのオプションのいずれかがあなたを満足させると思います。

SDKはオープンソースなので、ここでコードを読むことができます:TelemetryConfigurationFactory.setInstrumentationKey

+1

完璧、ありがとう! – Satheesh

関連する問題