Java Helper
Java Helperはアプリケーションのライブラリを自動で分析し、最適なweaving設定を生成するCLIツールです。Javaアプリケーションで使用するフレームワークやオープンソースライブラリをWhaTapエージェントが追跡するには、weaving設定が必要です。Java Helperはエージェントパッケージにwhatap.javahelper.jarとして含まれており、JDK 8以上で動作します。
weavingオプションを直接指定するには、手動設定文書を参照してください。
サポートフォーマット
JAR、Spring Boot Fat JAR、Maven Shade JAR、WARフォーマットをサポートします。EARはルートレベルのJARモジュールまで分析します。
Java Helperコマンド
java -jar whatap.javahelper.jar conf generate <入力> [オプション]
入力
| Input | Description | Example |
|---|---|---|
<JARパス> | JARファイルを直接指定して分析 | /app/myapp.jar |
--pid <PID> | 実行中のJavaプロセスのPIDで分析 | --pid 12345 |
JARパスと--pidのいずれかを必ず指定してください。
Options
| Option | Description | Default |
|---|---|---|
-o <ファイル> | マッチング結果をwhatap.confファイルに保存 | 未指定時は画面出力のみ |
-v | 分析過程の詳細ログを出力 (verbose) | off |
使用シナリオ
新規エージェントインストール
JARファイルパスを指定してwhatap.confを直接作成します。
java -jar whatap.javahelper.jar conf generate /app/myapp.jar -o whatap.conf
生成されたwhatap.confの例:
weaving=spring-boot-3.2,tomcat10,mongodb-4.8
# 推奨モジュール(必要に応じてコメント解除)
#weaving+=,reactor-kafka-1.3
#weaving+=,resilience4j
作成したファイルにライセンスキーとサーバー情報を追加すればインストールが完了します。
運用中の設定点検
実行中のプロセスをPIDで分析してマッチング結果を確認します。
java -jar whatap.javahelper.jar conf generate --pid 12345
出力例:
==========================================
WhaTap Weaving Module マッチング結果
==========================================
検出されたライブラリ: 25個
マッチしたモジュール: 8個
バージョン不一致: 1個
自動含有: 3個
LIBRARY VERSION WEAVING MODULE STATUS
spring-boot 3.2.5 spring-boot-3.2 MATCHED
mongodb-driver-sync 4.11.1 mongodb-4.8 MATCHED
lettuce-core 6.3.2 lettuce-6.1 AUTO
...
現在のwhatap.confと比較して不足しているモジュールがないか確認できます。設定ファイルに保存するには-oオプションを追加してください。
ライブラリアップグレード後
Spring Bootのバージョンアップグレードなどライブラリ変更時、アップグレードしたJARで再分析すると新しいweaving設定を取得できます。
java -jar whatap.javahelper.jar conf generate /app/myapp-upgraded.jar
マッチング状態
| Status | Description | Action |
|---|---|---|
MATCHED | artifactId、groupId、versionがすべて一致し、weavingモジュール適用可能 | 自動適用 |
AUTO | 自動含有対象モジュール(weaving設定なしでデフォルト適用) | 自動適用 |
VERSION_MISMATCH | ライブラリは検出されたがバージョンがweavingモジュールのサポート範囲外 | エージェントアップデート確認 |
NO_MATCH | weavingレジストリに該当するモジュールなし | 該当なし |
参考
依存性分析方式
JARファイルからライブラリバージョンを確認する過程は3段階の優先順位で動作します。上位段階で抽出した情報は下位段階で上書きされません。
-
Maven pom.properties: JAR内部の
META-INF/maven/{groupId}/{artifactId}/pom.propertiesからgroupId、artifactId、versionを抽出します。最も正確な方法です。 -
MANIFEST.MF: pom.propertiesがない場合、
META-INF/MANIFEST.MFからImplementation-Title、Implementation-Versionなどの標準属性を読み取ります。 -
ファイル名パーシング: 上記2つの方法が失敗した場合、JARファイル名から推論します。(例:
jackson-databind-2.14.0.jar→version="2.14.0")