Repolode
LinShunKang

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. 1

    MyPerf4J-ASM.zipをダウンロードして解凍し、MyPerf4J.propertiesを編集します

  2. 2

    Java agentとpropertiesファイルをJVMの起動引数に追加します

    java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar
  3. 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アプリケーションを再起動せず、非侵襲的なランタイムAOPを追加できるJVMサンドボックスコンテナ。

DevOps・クラウド#java#jvm#aop
6953+2 今週1586JavaLGPL-3.0更新 2 か月前