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() メソッドを呼ぶこと
うまく動けば以下のように管理ポータル上に情報が即座に反映されるはずだ。