normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Application Insights を Java のコンソールアプリで利用する

Application Insights のドキュメントを確認すると Web アプリでの利用が多いが、実はコンソールアプリケーションでも利用可能なことをご存じだろうか?
今回は Java コンソールアプリで Application Insights で利用する方法を紹介する。すでに Github にて Console App で Appinsights 利用するサンプル として公開中なので、必要な方は確認してほしい。

Application Insights をコンソールアプリで利用する場合の TIPS

まずはソースコードを見てほしい。

package com.mydomain.appinsightsconsole;

import com.microsoft.applicationinsights.TelemetryClient;
import com.microsoft.applicationinsights.TelemetryConfiguration;

public class App {
	public static void main(String[] args) {
		// Application Insights の設定を有効化
		TelemetryConfiguration configuration = TelemetryConfiguration.getActive();
		TelemetryClient telemetryClient = new TelemetryClient(configuration);

		telemetryClient.trackTrace("コンソールアプリからのトレースメッセージ");
		telemetryClient.trackException(new RuntimeException("コンソールアプリの自作例外"), null, null);

		// 最後に flush しないとリクエストがメモリ上に滞留したままアプリが終了する
		telemetryClient.flush();

		System.out.println("end");
	}
}

重要なのは以下の点だ。

  • TelemetryClient インスタンス作成前に TelemetryConfiguration#getActive() メソッドを呼び出して設定を有効化する
  • アプリケーション終了前に TelemetryClient#flush() メソッドを呼ぶこと

うまく動けば以下のように管理ポータル上に情報が即座に反映されるはずだ。
f:id:waritohutsu:20160324175238p:plain