Un ingeniero ha desarrollado 'xgotop', una nueva herramienta de rastreo para el runtime de Go que utiliza eBPF para observar en tiempo real el estado de las goroutines y las asignaciones de memoria. Xgotop permite a los desarrolladores 'ralentizar el tiempo' para examinar el ciclo de vida de las goroutines en una escala microscópica, algo difícil de lograr con los métodos de registro tradicionales. La herramienta rastrea los cambios de estado de las goroutines (como _Grunnable, _Grunning, _Gwaiting, etc.) y las operaciones de memoria, aprovechando funciones específicas del runtime de Go y las capacidades de eBPF para interceptar y analizar su ejecución. El proyecto, ganador del Hackathon eBPF '25, se basa en el código de Go 1.26 y se divide en dos partes: la primera explica el diseño y desarrollo, mientras que la segunda cubrirá la implementación completa utilizando C, Go y cilium/ebpf-go. El autor destaca el uso de runtime.casgstatus para rastrear la mayoría de los cambios de estado de las goroutines y funciones como runtime.makemap y runtime.makeslice para el seguimiento de asignaciones de memoria. El objetivo final es proporcionar una visión detallada del comportamiento interno del runtime de Go.
