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

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

Стаття з групи Random UA
Джерело: 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-додатків як на стадії розробки, так і на стадії виробництва.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ