Dolphie: Monitorización en tiempo real para MySQL desde terminal

Publicado el 25 noviembre 2024 por Lauratuero @incubaweb

En el ámbito de la administración de bases de datos, contar con herramientas potentes y accesibles es esencial para mantener el rendimiento y la estabilidad del sistema. En este contexto, Dolphie emerge como una solución moderna para la monitorización de bases de datos MySQL en tiempo real, directamente desde la terminal.

¿Qué es Dolphie?

Dolphie es una herramienta basada en TUI (interfaz de usuario en terminal) que ofrece un análisis detallado de las métricas de salud de MySQL en tiempo real. Desarrollada en Python y utilizando el framework Textual, Dolphie combina una interfaz intuitiva con funcionalidades avanzadas, proporcionando una alternativa moderna y eficiente frente a herramientas como Innotop.

Principales características

  1. Interfaz gráfica en terminal
    Dolphie muestra métricas clave como el consumo de CPU, uso de memoria, lista de procesos y replicación mediante gráficos interactivos y personalizables directamente en la terminal.
  2. Paneles intercambiables
    Los usuarios pueden alternar entre cuatro paneles principales:
    • Dashboard: Vista general de métricas del sistema.
    • Lista de procesos: Gestión avanzada de hilos con opciones para ordenar, filtrar o finalizar procesos.
    • Replicación: Información detallada sobre réplicas y transacciones errantes.
    • Métricas gráficas: Visualización de gráficos como solicitudes del pool de buffers, logs de redo, entre otros.
  3. Compatibilidad con múltiples versiones y plataformas
    Dolphie es compatible con MySQL (5.6 en adelante), MariaDB, y ProxySQL, así como con entornos como AWS RDS y Azure MySQL/MariaDB.
  4. Grabación y reproducción de sesiones
    Dolphie permite grabar sesiones en tiempo real para su posterior análisis. Los datos se almacenan en una base de datos SQLite comprimida, permitiendo reproducir la actividad tal como ocurrió.
  5. Modo daemon
    Ideal para una monitorización continua, el modo daemon registra datos en segundo plano sin mostrar la interfaz gráfica, asegurando la captura de información crítica durante eventos inesperados.
  6. Soporte para credenciales encriptadas
    Dolphie permite gestionar perfiles de credenciales en su archivo de configuración, facilitando conexiones seguras con múltiples hosts.
  7. Función de autocompletado
    Desde comandos hasta nombres de hosts y procesos, Dolphie incluye autocompletado para agilizar las operaciones.

Cómo funciona Dolphie

Al iniciar Dolphie, los usuarios son recibidos por un panel principal que muestra métricas clave, incluyendo Queries por Segundo (QPS) y listas de procesos activos. Desde ahí, se pueden activar o desactivar gráficos, filtrar procesos o alternar entre diferentes paneles según las necesidades del administrador.

Por ejemplo:

  • Gestión de procesos:
    Dolphie permite filtrar por usuario, host, texto de consulta o base de datos, así como finalizar hilos directamente desde la interfaz.
  • Gráficos avanzados:
    Los gráficos muestran métricas clave como logs de redo, operaciones DML y estados de replicación.

Instalación

Dolphie requiere Python 3.8.1 o superior y puede instalarse utilizando diversas opciones:

  • Homebrew: brew install dolphie
  • Pip: pip install dolphie
  • Docker:
    Dolphie también está disponible como imagen Docker:
    docker pull ghcr.io/charles-001/dolphie:latest
    docker run -it ghcr.io/charles-001/dolphie:latest

Ventajas frente a herramientas tradicionales

Dolphie se posiciona como una alternativa moderna a herramientas como Innotop, ofreciendo gráficos integrados, soporte para terminales avanzadas y compatibilidad con configuraciones modernas de MySQL y MariaDB. Además, su diseño modular y sus múltiples modos de operación lo convierten en una herramienta versátil para administradores de bases de datos.

Conclusión

Con su enfoque en la usabilidad y la modernidad, Dolphie es una herramienta imprescindible para cualquier administrador de bases de datos que busque una solución integral para la monitorización de MySQL. Su capacidad para visualizar métricas críticas en tiempo real, junto con opciones avanzadas de personalización, la posicionan como una de las mejores opciones disponibles en el mercado.

Para más información y descarga, visite el repositorio oficial en GitHub.