JavaRush /Java блог /Random /Кофе-брейк #82. 41 инструмент для мониторинга JVM и произ...

Кофе-брейк #82. 41 инструмент для мониторинга JVM и производительности Java-приложений

Статья из группы Random
Источник: JVMwhisperer Я попытался создать исчерпывающий список инструментов мониторинга JVM и сопутствующих продуктов. Надеюсь, это поможет вам в вашей работе. Инструменты перечисляются в алфавитном порядке, без каких-либо предпочтений, связанных с местом в списке. Кофе-брейк #82. 41 инструмент для мониторинга JVM и производительности Java-приложений - 1
  1. Apache Netbeans может использоваться не только как IDE, но и как отладчик. Работает во всех операционных системах, поддерживающих Java: Windows, Linux, Mac OSX и BSD.

  2. Apache Skywalking — инструмент мониторинга производительности приложений для распределенных систем, специально разработанный для микросервисов, облачных и контейнерных (Docker, Kubernetes, Mesos) архитектур, включая Java.

  3. Когда дело доходит до бесплатных инструментов для мониторинга приложений Java, обычно выбирают JConsole и VisualVM. AppDynamics предоставляет третий вариант, который поможет вам в мониторинге производительности веб-приложений.

  4. Cobertura — это скорее инструмент разработки, чем мониторинга, но я считаю, что весь код должен быть протестирован перед запуском в производство, а Cobertura — это бесплатный инструмент Java, который вычисляет процент кода, доступного для тестов. Его можно использовать для определения того, какие части вашей программы Java не покрыты тестами. Основан на jcoverage.

  5. Flamegraph Datadog анализирует каждый запрос Java для обнаружения и устранения проблем с производительностью приложений в распределенной системе.

  6. Dynatrace контролирует и оптимизирует производительность приложений Java для всего стека приложений, включая базы данных и службы.

  7. Eclipse Memory Analyzer — набор инструментов общего назначения для анализа дампов кучи Java. Также он сообщает о возможных утечках и антипаттернах потребления памяти. Основная область применения — ошибки, связанные с нехваткой или повышенным потреблением памяти.

  8. Fusion Reactor — инструмент мониторинга Java, который позволяет находить проблемы с производительностью в Java-приложении или сервере, анализируя код, поток и память.

  9. GCeasy — первый инструмент для анализа журнала сборки мусора, работающий на основе машинного обучения. GCeasy автоматически обнаруживает проблемы в журналах JVM и Android GC и рекомендует вариант их решения.

  10. Glowroot предоставляет информационную сводку о приложении, имеет гибкие настройки, формирует диаграммы для визуализации разбивки по времени отклика. С его интерактивным пользовательским интерфейсом можно контролировать Java-приложение как с настольных компьютеров, так и с мобильных устройств.

  11. JavaMelody выполняет мониторинг приложений Java или Java EE в средах контроля качества и производственных средах. Это не инструмент для имитации запросов от пользователей — это инструмент для измерения и расчета статистики реальной работы приложения в зависимости от степени его использования.

  12. Подключаемый модуль Jet Brains Memory View показывает общее количество объектов в куче, сгруппированных по имени их класса. Когда вы пошагово выполняете программу, столбец Diff показывает, как количество объектов изменяется между остановками отладчика. Таким образом, вы можете легко увидеть, как код влияет на кучу.

  13. JProfiler — простой и мощный инструмент профилирования. Настройка сеансов в нем проста, сторонние интеграции упрощают начало работы, а данные профилирования представлены в естественном виде.

  14. JRat Java Runtime Analysis Toolkit — профилировщик производительности с открытым исходным кодом для платформы Java. JRat отслеживает выполнение приложения и сохраняет измерения производительности. Затем эти данные можно просмотреть и проанализировать с помощью JRat Desktop, приложения Swing.

  15. С помощью инструмента Kamon можно определить причину медленных запросов и другие ошибки. Разработчику достаточно навести и нажать мышь, чтобы найти endpoints, запросы к базе данных и вызовы API, которые влияют на взаимодействие с пользователем.

  16. Lightstep автоматически обнаруживает изменения в приложении, инфраструктуре и взаимодействии с пользователем и выделяет конкретные причины.

  17. Applications Manager JRE отслеживает различные метрики, включая память JVM, сборку мусора, потоки и другое. Отличный инструмент для тщательного мониторинга производительности JRE.

  18. MoSKito Monitoring проверяет работоспособность приложения. Имеет открытый код, поддерживает микросервисы, отличный выбор для специалистов DevOps и инженеров SR.

  19. Nagios — каталог модулей, сценариев и плагинов для приложений и серверов Java.

  20. New Relic позволяет отслеживать практически все: от проблем с производительностью до мелких ошибок в коде. Каждую минуту Java-агент отправляет метрические временные интервалы и данные о событиях в пользовательский интерфейс New Relic, где владелец этих данных может войти в систему и использовать эту информацию, чтобы увидеть, как работает сайт или приложение.

  21. Java VisualVM — инструмент, который предоставляет визуальный интерфейс для просмотра подробной информации о приложениях Java во время их работы на виртуальной машине Java (JVM), а также для устранения неполадок и профилирования этих приложений. Различные дополнительные инструменты, включая Java VisualVM, поставляются с дистрибутивом Sun Java Development Kit (JDK).

  22. JConsole — инструмент мониторинга, который соответствует спецификации Java Management Extensions (JMX). JConsole использует обширный инструментарий виртуальной машины Java (Java VM) для предоставления информации о производительности и потреблении ресурсов приложениями, работающими на платформе Java.

  23. Java Flight Recorder и JDK Mission Control — комбинация инструментов для постоянного сбора подробной информации о времени выполнения, что позволяет анализировать инциденты постфактум. Java Flight Recorder — это платформа для профилирования и сбора событий, встроенная в Oracle JDK. С ее помощью можно собирать подробную низкоуровневую информацию о поведении виртуальной машины Java (JVM) и приложения Java. JDK Mission Control — это расширенный набор инструментов, который позволяет эффективно и детально анализировать обширный объем данных, собранных Java Flight Recorder.

  24. JMap — утилита, которая при использовании jmap с файлом процесса или ядром без каких-либо параметров командной строки печатает список загруженных общих объектов (вывод аналогичен утилите pmap в операционной системе Oracle Solaris). Для получения конкретной информации, можно использовать опции -heap, -histo или -permstat.

  25. Jps — утилита, полезная в средах со встроенной виртуальной машиной. Позволяет легко распознавать процессы Java в списке процессов.

  26. JStack — утилита, которая из командной строки присоединяется к указанному процессу или файлу ядра и печатает трассировку стеков всех потоков, которые прикреплены к виртуальной машине. Также утилита обнаруживает тупиковые ситуации.

  27. JStat — утилита, которая предоставляет информацию о производительности и потреблении ресурсов запущенных приложений.

  28. The jstatd Daemon — сервер приложений RMI, который контролирует создание и завершение каждого инструментированного Java HotSpot и предоставляет интерфейс, позволяющий средства удаленного мониторинга для подключения к JVM, выполняющихся на локальном хосте.

  29. Visualgc — инструмент, который обеспечивает графическое представление системы сборки мусора. Использует встроенные инструменты виртуальной машины Java HotSpot.

  30. Pinpoint — это инструмент APM (Application Performance Management, Управление производительностью приложений) для крупномасштабных распределенных систем, написанный на Java, PHP или Python. Pinpoint предоставляет решение, которое помогает проанализировать общую структуру системы и то, как компоненты в них взаимосвязаны благодаря отслеживанию транзакций в распределенных приложениях.

  31. Scouter — еще один инструмент APM (управление производительностью приложений) с открытым исходным кодом.

  32. Sematext Experience — инструмент мониторинга, который позволяет отслеживать производительность приложения и получать предупреждения всякий раз, когда он обнаруживает аномалии, влияющие на работу конечного пользователя.

  33. Sematext Logs — служба ведения журналов, которая позволяет централизовать журналы из различных источников, таких как приложения, микросервисы, операционные системы, различные устройства и, конечно же, приложения на основе Java.

  34. Sematext Cloud — это платформа наблюдения с широким выбором функций. Благодаря простой и удобной настройке, мониторинг Java-приложения выполняется легко и быстро. С предварительно созданными готовыми панелями мониторинга можно начать мониторинг приложения на основе JVM сразу после завершения установки агента. Sematext Logs также позволяет анализировать журналы с помощью функции автоматического обнаружения журналов для приложений Java или отправлять их через одного из поддерживаемых поставщиков журналов.

  35. Site24x7 — инструмент, с помощью которого разработчики могут легко выявить медленные внутренние вызовы (методы) в коде Java и просмотреть весь путь в виде дерева. Трассировка будет отображать последовательность вызовов URL, включая определенные пользователем методы.

  36. Java Solar Winds — инструменты, которые помогают улучшить и оптимизировать производительность Java-приложений.

  37. Stackify — набор инструментов для мониторинга производительности Java-приложений.

  38. Stage Monitor — решение с открытым исходным кодом, чтобы мониторить производительность серверных приложений Java.

  39. VisualVM — визуальный инструмент с поддержкой Java 16 и Apple M1, объединяющий инструменты командной строки JDK и облегченные возможности профилирования. Предназначен как для разработки, так и для использования во время производства.

  40. XRebel делает то, чего не могут традиционные инструменты профилирования. Он позволяет разработчикам отслеживать влияние своего кода от начала до конца — даже в распределенных приложениях.

  41. YourKit Java Profiler — инструмент профилирования Java-приложений как на стадии разработки, так и на стадии производства.

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ