/ in Russian, на русском

Эрланг-шелл с визуализацией

This post is available in English: http://vladimir-vg.me/erlang-shell-visualization-demo/

Однажды я потратил полдня на работе безуспешно пытаясь найти ошибку в коде. Я пялился в логи, мысленно примерял их на код, воображал что же произошло но так и не мог вообразить что же за ситуация там возникала. Густо обмазав отладочным выводом я наконец выяснил проблему.

Я испытывал досаду. Ошибка была глупая и очевидная, и если бы я имел перед глазами какую-то карту где было бы показано время жизни эрланг-процессов и общение между ними, я бы потратил на поиск ошибки 5 минут вместо нескольких часов. Мне бы не пришлось вслепую шарить глазами в стенах текста логов.

Я и до этого размышлял о визуализации программ. Сейчас мне хотелось иметь какую-то карту эрланг-процессов и событий происходящих с ними, выровненных на единой временной шкале.

Решил сделать минимальный демо-проект, с визуализацией процессов запущенных из шелла, общения между ними. На каждый открытый шел поднимается эрланг-нода, втупую без какой-либо изоляции. Собранные события для простоты пишутся в csv файл.

Вот здесь находится код этого демо-проекта: https://github.com/vladimir-vg/espace/tree/demo-07-2017

Вот здесь можно посмотреть несколько заранее записанных сценариев работы в шелле (без подключения к живому эрлангу): http://vladimir-vg.github.io/espace-demo-07-2017/

Например есть несколько записанных сценариев для глав из книги «Learn you some Erlang»:

Или вот пример из «Эрланг на практике» на Hexlet:

Для того чтобы поиграть с живым эрлангом можно запустить докер-образ на своей машине:

docker run -i -t -p 8099:8099 vladimirvg/espace:demo-07-2017

После старта необходимо открыть http://localhost:8099