Repolode
LinShunKang

LinShunKang/MyPerf4J

애플리케이션 코드를 변경하지 않고 Java agent로 메서드와 JVM 지표를 수집하는 고성능 Java APM 도구입니다.

스타
3,570
포크
551
열린 이슈
6
마지막 커밋
3개월 전

어떤 프로젝트인가요?

MyPerf4J는 높은 동시성과 낮은 지연 시간이 요구되는 서비스용 Java 애플리케이션 성능 모니터링 및 통계 도구입니다. ASM 바이트코드 계측을 기반으로 만든 JavaAgent를 통해 JVM에 연결하므로, 애플리케이션 코드를 변경하지 않고 메서드 응답 시간을 기록할 수 있습니다. 메서드별 RPS, 호출 수, 평균, 최솟값, 최댓값, 표준편차, TP 백분위수(TP50~TP100)와 함께 JVM 스레드, 메모리, GC, 클래스, 컴파일, 파일 디스크립터 지표를 수집합니다.

통계는 1초 단위로 집계되며, 프로젝트 설명에 따르면 샘플링하지 않고 모든 호출을 기록합니다. 결과는 로그 파일에 저장되며, InfluxDB로 전송하고 Grafana 대시보드에서 확인할 수 있도록 설정을 제공합니다. 설정에는 properties 파일과 JVM 인자 두 개를 사용하며, JDK 9 이상에서는 --add-opens 플래그가 추가로 필요합니다.

프로젝트는 BSD-3-Clause 라이선스를 따르며, Maven으로 소스에서 빌드할 수도 있습니다.

핵심 기능

  • 01애플리케이션 코드를 변경하지 않고 JavaAgent로 연결
  • 02RPS, 평균, 최댓값, 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은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. 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
7천+2 이번 주1.6천JavaLGPL-3.0업데이트 2개월 전