Blog

Tracing en Elixir con Erlyberly

Tracing en Elixir con Erlyberly

En este enlace se menciona Erlyberly, una herramienta para depurar por tracing.

Erlyberly se conecta al nodo. Necesita el nombre del nodo, IP y cookie de Erlang. En el enlace arriba mencionado aparece cómo utilizarlo con iex, pero no con mix, que es lo que estoy utilizando para desarrollar en Phoenix. En este otro sitio se menciona:

elixir --name server@127.0.0.1 --cookie abc -S mix

en mi caso, es phx.server, por ejemplo:

[j@localhost poi_umbrella]$ elixir --name poi@127.0.0.1 --cookie poi_cookie -S mix phx.server

podemos comprobar el nombre así:

[j@localhost poi_umbrella]$ epmd -names
epmd: up and running on port 4369 with data:
name poi at port 40225
name erlyberly3445 at port 35543


Ahora que hemos iniciado con un nombre y cookie establecida, podemos arrancar Erlyberly y conectar.

Conectando al nodo que hemos arrancado, de nombre "poi", en local (127.0.0.1), con la cookie de Erlang "poi_cookie"
Conectando al nodo que hemos arrancado, de nombre «poi», en local (127.0.0.1), con la cookie de Erlang «poi_cookie»
Tracing con Erlyberly de una función de logout en Phoenix
Tracing con Erlyberly de una función de logout en Phoenix

La ventaja del tracing frente a IO.inspect o IEx.pry es que podemos depurar sin necesidad de modificar el código.