ふくしま

ソフトウェアエンジニア

GraalVM の Tracing Agent を使ってみた話

やりたいこと

Spring Native の公式ドキュメントで紹介されている Tracing Agent を使ってみたい。

Environment

  • Java: 22.1.0.r17-grl
  • SDKMAN: 5.15.0
  • GraalVM: 22.1.0 Java 17 CE (Java Version 17.0.3+7-jvmci-22.1-b06)

GraalVM のインストール

  • SDKMAN をインストール
  • sdk コマンドでインストールできる java のバージョンを確認する
sdk list java
  • GraalVM に対応した java のインストール
sdk install java 22.1.0.r17-grl
  • native-image のインストール
gu install native-image
  • Path がインストールしたバージョンになっているか確認
echo $JAVA_HOME
echo $PATH

Tracing Agent とは

Tracing Agent は、 Native Image ではない状態で実行されているアプリケーション(つまり JVM で動作しているアプリケーション)の動作を観察することによって、Native Image に必要な設定ファイルを生成する。

具体的には、Tracing Agent のフラグを立てた状態でアプリケーションを立ち上げ、実際にアプリケーションを動作させることで、Tracing Agent にアプリケーションの動作を観察させる。Tracing Agent はその観察の結果、実際に Native Image で使用できる json ファイルを生成する。

使用手順

具体的な使用手順は、GraalVM の公式ドキュメントを参照されたし。

以下はざっくり手順。

  • アプリケーションの jar ファイルを作成する
  • Tracing Agent のフラグを立てて、アプリケーションを起動する
  • (もし Web アプリなら)Postman などで アプリケーションに対して通信してみる
  • コマンドに指定したパスに Native Configuration ファイルが生成される

参考文献