Eventlog Live es una herramienta de software diseñada para capturar y transmitir telemetría en tiempo real desde aplicaciones escritas en el lenguaje de programación Haskell. Este programa actúa como un puente que analiza el registro de eventos (eventlog) generado por el runtime de GHC y lo exporta mediante el protocolo estándar OpenTelemetry. Esta integración permite a los desarrolladores enviar datos de observabilidad a plataformas compatibles, como Grafana Cloud, Prometheus o visualizadores locales como otel-tui y otel-desktop-viewer, sin necesidad de instrumentar el código de la aplicación de forma intrusiva.
La herramienta destaca por su ligereza, operando de forma paralela a la aplicación principal con un consumo de memoria de solo unos pocos megabytes. Para su funcionamiento, la aplicación Haskell solo requiere las opciones de compilación -threaded y -rtsopts, lo que minimiza la complejidad de implementación. Eventlog Live soporta de forma nativa perfiles de memoria (heap profiles) clasificados por tipo de cierre (closure type) o tabla de información, métricas de uso de memoria, perfiles de pila de centros de coste (cost-centre stack profiles), mensajes de registro, métricas de productividad y trazas detalladas de uso de hilos y capacidades.
El sistema permite una configuración flexible mediante variables de entorno de OpenTelemetry o archivos de configuración específicos. Por defecto, agrega los datos de telemetría en intervalos de un segundo y los exporta cada 30 segundos, aunque estos parámetros son ajustables. Además, al integrar la librería eventlog-socket, los usuarios pueden controlar dinámicamente el inicio y la parada de la perfilización mientras la aplicación está en ejecución, utilizando una API REST. Esta funcionalidad permite interactuar con botones en paneles de Grafana para activar o desactivar la captura de perfiles de memoria en tiempo real, facilitando el diagnóstico de problemas de rendimiento sin interrumpir el servicio.
