Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Herramientas de monitorización de la JVM @ Mála...

Herramientas de monitorización de la JVM @ MálagaJUG 2020-04-29

Slides de la presentación sobre herramientas de monitorización de la JVM realizada para MálagaJUG el 29 de abril de 2020.

Jorge Hidalgo

April 29, 2020
Tweet

More Decks by Jorge Hidalgo

Other Decks in Programming

Transcript

  1. SOBRE MÍ JORGE HIDALGO Senior Manager – Senior Technology Architect

    Accenture – Global Java Practice Lead Advanced Technology Center in Spain – Engineering Services Lead MálagaJUG Co-lead Father of two, husband, whistle player, video gamer, sci-fi *.*, Lego, LOTR, Star Wars, Star Trek, Starcraft, Destiny, Halo, Borderlands, Raspberry Pi, Arduino… LLAP!
  2. DISCLAIMER J Esta presentación se basa en mi experiencia personal

    y los puntos de vista expresados no representan los de mi empresa ni los del JUG en su conjunto No es una lista exhaustiva de herramientas, solo aquéllas con las que he tenido la oportunidad de trabajar No hay esponsorización alguna por parte de los vendedores
  3. • Consumo de recursos (CPU, memoria, I/O…) • Experiencia de

    los usuarios • Monitorización por transacción (seguimiento) • Monitorización por componente (granularidad variable) • Visualización + Analítica + Trazabilidad CAPACIDADES DE MONITORIZACIÓN 5
  4. • Hoy nos centraremos en la JVM • No hablaremos

    de monitorización de infraestructuras o plataformas de contenedores • Herramientas que mostraremos: jcmd – VisualVM – JDK Mission Control JProfiler – YourKit – XRebel – New Relic MONITORIZACIÓN DE LA JVM 6
  5. • Incluida en OpenJDK • Gratuita • Muy básica (comandos

    de control y telemetría) • Funciona sin agente, por interfaz directa con la JVM desde la línea de comandos jcmd 9
  6. • Incluida en GraalVM (antes era parte del JDK) •

    Gratuita • Más opciones de instrumentación pero se queda corta en análisis de uso de la memoria o llamadas externas • Permite monitorizar lenguajes no-JVM a través de la interfaz de Graal con Truffle (p.ej. Ruby) • Funciona sin agente, por interfaz directa con la JVM VisualVM 10
  7. • Incluida en OpenJDK • AdoptOpenJDK y Azul Zulu tienen

    builds alternativas • Gratuita • Aunque mejor que VisualVM sigue careciendo en análisis de uso de la memoria o llamadas externas • Interfaz con Java Flight Recorder para hacer ‘profiling’ exhaustivo de lo que sucede en la JVM • Capacidad de poner alertas para ‘grabar’ automáticamente • Funciona sin agente, por interfaz directa con la JVM • En versiones antiguas de Java había que activar explícitamente JFR porque aun no era open source JDK Mission Control 11
  8. • Comercial, aunque asequible en precio • La más completa

    en cuanto a opciones de instrumentación • Destaca especialmente: • El monitor de memoria y objetos creados • Trazabilidad con las transacciones desde la UI • Monitor de acceso a base de datos • Permite filtrar fácilmente para no perderse en el ruido de los frameworks • Funciona tanto sin agente como con agente, lo que además habilita más opciones de monitorización (p.ej. excepciones) JProfiler 12
  9. • Comercial, aunque asequible en precio • Aunque mejor que

    VisualVM sigue careciendo en análisis de uso de la memoria o llamadas externas • No soporta Java 14 todavía • Funciona tanto sin agente como con agente, lo que además habilita más opciones de monitorización (p.ej. excepciones) YourKit 13
  10. • Comercial, aunque asequible en precio • Muy enfocada al

    entorno web, realizando snapshots automáticos de cada click y permitiéndonos analizar qué occurre en esa transacción • Excelente en el análisis de acceso a datos, queries ejecutadas, web services externos y captura de excepciones • No soporta Java 14 todavía • Funciona con agente XRebel 14
  11. • Comercial, variable en precio según características y volumetría de

    servidores; capa Lite gratuita • Foco en la perspectiva de los usuarios, realizando un mapeo a las transacciones web y analizando el rendimiento en cada capa: comunicaciones, JVM, acceso a datos… • Módulos extra para análisis de rendimiento de la capa web y móvil, bases de datos, telemetría de la JVM, y más • Excelente en el análisis de acceso a datos, mapas de aplicaciones, flujo de transacciones distribuidas, y más • Funciona con agente y es “CI-friendly” New Relic 15