Repolode
LinShunKang

LinShunKang/MyPerf4J

Высокопроизводительный Java APM-инструмент, который собирает метрики методов и JVM через Java agent без изменений кода приложения.

Звёзды
3,570
Форки
551
Открытые issues
6
Последний коммит
3 месяца назад

Что это?

MyPerf4J — инструмент мониторинга производительности и сбора статистики Java-приложений, рассчитанный на высококонкурентные сервисы с низкой задержкой. Он подключается к JVM через JavaAgent на основе байткод-инструментирования ASM и записывает время отклика методов без изменений кода приложения. Для каждого метода собираются RPS, количество вызовов, среднее, минимальное и максимальное значения, стандартное отклонение и перцентили TP (от TP50 до TP100); также собираются метрики потоков JVM, памяти, GC, классов, компиляции и файловых дескрипторов.

Статистика агрегируется с интервалом в одну секунду. По заявлению проекта, учитывается каждый вызов, а не только выборка. Результаты записываются в лог-файлы; проект также предоставляет конфигурацию для отправки данных в InfluxDB и отображения их на дашбордах Grafana. Для настройки используются properties-файл и два аргумента JVM; в JDK 9 и новее требуется дополнительный флаг --add-opens.

Проект распространяется по лицензии BSD-3-Clause; его также можно собрать из исходного кода с помощью Maven.

Ключевые возможности

  • 01Подключается через JavaAgent без изменений кода приложения
  • 02Собирает метрики по каждому методу, включая RPS, среднее и максимальное значения, а также перцентили от TP50 до TP100
  • 03Собирает метрики JVM: потоки, память, GC, классы, компиляция и файловые дескрипторы
  • 04Агрегирует статистику с интервалом в одну секунду и учитывает каждый вызов
  • 05Записывает результаты в лог-файлы и интегрируется с InfluxDB и Grafana

Сценарии использования

  • Поиск медленных методов Java-микросервиса под производственной нагрузкой
  • Мониторинг изменений потребления памяти JVM, работы GC и потоков с течением времени
  • Создание дашбордов Grafana для мониторинга производительности Java-сервисов

Быстрый старт

  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 APM-инструмент, который собирает метрики методов и JVM через Java agent без изменений кода приложения. MyPerf4J — инструмент мониторинга производительности и сбора статистики Java-приложений, рассчитанный на высококонкурентные сервисы с низкой задержкой. Он подключается к JVM через JavaAgent на основе байткод-инструментирования ASM и записывает время отклика методов без изменений кода приложения. Для каждого метода собираются RPS, количество вызовов, среднее, минимальное и максимальное значения, стандартное отклонение и перцентили TP (от TP50 до TP100); также собираются метрики потоков JVM, памяти, GC, классов, компиляции и файловых дескрипторов.
MyPerf4J можно использовать бесплатно? Какая у него лицензия?
MyPerf4J распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
MyPerf4J всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в MyPerf4J — 31 июл. 2026 г..
Для чего можно использовать MyPerf4J?
Поиск медленных методов Java-микросервиса под производственной нагрузкой Мониторинг изменений потребления памяти JVM, работы GC и потоков с течением времени Создание дашбордов Grafana для мониторинга производительности Java-сервисов
Как установить 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 проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Контейнер-песочница для JVM, который добавляет работающим Java-приложениям ненавязчивый AOP во время выполнения без перезапуска.

DevOps и облака#java#jvm#aop
7 тыс.+2 за неделю1,6 тыс.JavaLGPL-3.0Обновлён 2 месяца назад

Низкоуровневый по накладным расходам сэмплирующий профилировщик Java: собирает профили CPU, аллокаций, блокировок и нативной памяти без смещения safepoint.

9,2 тыс.+9 за неделю994C++Apache-2.0Активно поддерживаетсяОбновлён 17 часов назад