稼働中のJVMアプリケーションを、コード変更や再起動なしでリアルタイムに調査できるJava診断ツールです。
LinShunKang/MyPerf4J
アプリケーションコードを変更せず、Java agentでメソッドとJVMのメトリクスを収集する高性能なJava APMツール。
- スター
- 3,570
- フォーク
- 551
- 未解決の Issue
- 6
- 最終コミット
- 3 か月前
これは何?
MyPerf4Jは、高い同時実行性と低レイテンシが求められるサービス向けのJavaアプリケーション性能監視・統計ツールです。ASMによるバイトコード計測を利用したJavaAgentでJVMにアタッチし、アプリケーションコードを変更せずにメソッドの応答時間を記録できます。メソッドごとにRPS、呼び出し回数、平均値、最小値、最大値、標準偏差、TPパーセンタイル(TP50~TP100)を計測するほか、JVMのスレッド、メモリ、GC、クラス、コンパイル、ファイルディスクリプタに関するメトリクスも収集します。
統計は1秒単位で集計され、サンプリングではなくすべての呼び出しを計測するとプロジェクトでは説明されています。結果はログファイルに書き出され、InfluxDBへの送信設定とGrafanaダッシュボードも提供されています。設定にはpropertiesファイルと2つのJVM引数を使い、JDK 9以降では追加で--add-opensフラグが必要です。
ライセンスはBSD-3-Clauseで、Mavenを使ってソースからビルドすることもできます。
主な機能
- 01アプリケーションコードを変更せず、JavaAgentでアタッチ
- 02メソッドごとにRPS、平均値、最大値、TP50~TP100のパーセンタイルなどを計測
- 03スレッド、メモリ、GC、クラス、コンパイル、ファイルディスクリプタを含むJVMメトリクスを収集
- 041秒単位で統計を集計し、すべての呼び出しを記録
- 05ログファイルに出力し、InfluxDBおよびGrafanaと連携
ユースケース
- 本番環境の負荷がかかったJavaマイクロサービスで、処理の遅いメソッドを特定する
- JVMのメモリ、GC、スレッドの動作を継続的に監視する
- Javaサービスの性能を可視化するGrafanaダッシュボードを作成する
クイックスタート
- 1
MyPerf4J-ASM.zipをダウンロードして解凍し、MyPerf4J.propertiesを編集します
- 2
Java agentとpropertiesファイルをJVMの起動引数に追加します
java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar - 3
アプリを起動し、/path/to/log/method_metrics.logに出力があることを確認します
使う前に知っておきたいこと
- セットアップには、propertiesファイルとJVMの起動フラグの編集が必要です。
- JDK 9以降では、追加の--add-opens java.base/java.lang=ALL-UNNAMEDフラグが必要です。
収録されている特集
トピック
よくある質問
- MyPerf4J とは?
- アプリケーションコードを変更せず、Java agentでメソッドとJVMのメトリクスを収集する高性能なJava APMツール。 MyPerf4Jは、高い同時実行性と低レイテンシが求められるサービス向けのJavaアプリケーション性能監視・統計ツールです。ASMによるバイトコード計測を利用したJavaAgentでJVMにアタッチし、アプリケーションコードを変更せずにメソッドの応答時間を記録できます。メソッドごとにRPS、呼び出し回数、平均値、最小値、最大値、標準偏差、TPパーセンタイル(TP50~TP100)を計測するほか、JVMのスレッド、メモリ、GC、クラス、コンパイル、ファイルディスクリプタに関するメトリクスも収集します。
- MyPerf4J は無料で使えますか?ライセンスは?
- MyPerf4J は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- MyPerf4J は今もメンテナンスされていますか?
- 半年以内に更新あり。MyPerf4J の最終コミットは 2026年7月31日 です。
- MyPerf4J は何に使えますか?
- 本番環境の負荷がかかったJavaマイクロサービスで、処理の遅いメソッドを特定する JVMのメモリ、GC、スレッドの動作を継続的に監視する Javaサービスの性能を可視化するGrafanaダッシュボードを作成する
- MyPerf4J のインストール方法は?
- MyPerf4J-ASM.zipをダウンロードして解凍し、MyPerf4J.propertiesを編集します Java agentとpropertiesファイルをJVMの起動引数に追加します: java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar アプリを起動し、/path/to/log/method_metrics.logに出力があることを確認します
- MyPerf4J はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/LinShunKang/MyPerf4J
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
テストで実行されたJavaバイトコードの範囲を測定する、無料のJavaコードカバレッジライブラリです。
APMトレーシング、継続的プロファイリング、アプリケーションセキュリティ監視に対応するDatadog公式Goクライアントライブラリ。
稼働中のJavaアプリケーションを再起動せず、非侵襲的なランタイムAOPを追加できるJVMサンドボックスコンテナ。
セーフポイントバイアスなしでCPU、割り当て、ロック、ネイティブメモリを計測する、低オーバーヘッドのJavaサンプリングプロファイラ。
eBPFとWasmでメトリクス、トレース、リクエストログ、プロファイルを収集し、クラウドネイティブやAIアプリケーションをコード変更なしで可観測化します。