Инструмент для диагностики Java-приложений в работающей JVM: помогает находить проблемы без изменения кода и перезапуска.
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
Скачайте и распакуйте 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 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 обновляется ежедневно.
Похожие проекты
Бесплатная библиотека для измерения покрытия Java-кода, которая показывает, какие части байткода выполняются во время тестов.
Официальная Go-библиотека Datadog для APM-трейсинга, непрерывного профилирования и мониторинга безопасности приложений.
Контейнер-песочница для JVM, который добавляет работающим Java-приложениям ненавязчивый AOP во время выполнения без перезапуска.
Низкоуровневый по накладным расходам сэмплирующий профилировщик Java: собирает профили CPU, аллокаций, блокировок и нативной памяти без смещения safepoint.
Наблюдаемость облачных приложений и приложений с ИИ без изменений в коде: сбор метрик, трейсов, логов запросов и профилей с помощью eBPF и Wasm.