Batiscaph is a research device that submerges into ocean and explores unknown space. That's what this tool does -- submerges into Erlang node and observes how programs work in it.
UI ideas for this project could be found here: https://www.figma.com/file/Jz6rhLiGoFbRZOZnoeTBHIvj/Chertezh
Unfortunately I don't have much time to work on this project as I wish I had, because I'm fulltime employee. I wish I could turn this tool into something very convenient for everyday work. If you want to help me make it happen please support me at Patreon: https://www.patreon.com/VladimirVG
It worked with my Erlang 20, Clickhouse 1.1.54318, Neo4j 3.0.5 and Node.js v6.11.3. Haven't tested on other versions, but likely gonna work just fine.
- install Clickhouse, Neo4j and stable Nodejs(required for frontend build)
- create empty database in Clickhouse.
- specify env variables in Makefile according to your configuration (CLICKHOUSE_DB, CLICKHOUSE_URL, NEO4J_HTTP_URL, HTTP_PORT)
- run
npm install .
, This will install React required for frontend - run
./rebar3 get-deps
,./rebar3 compile
and finallymake shell
. - after getting into erlang shell you need to setup databases.
Run:
batiscaph:create_tables().
,batiscaph:prepare_graph_schema().
- after that you should be able to access http://localhost:HTTP_PORT with port you previously specified
- run
./rebar3 path --app batiscaph
and copy path to beam files of Batiscaph, gonna need that later - go to directory of a project you want to run tests on
- make sure that Common Test run command takes path to batiscaph beam files.
specify it with
-pa
, likect_run ... -pa path/to/batiscaph/ebin ...
- add two lines into
*_SUITE
files that you want to be visualized:Specifying parse_transform through ct_run args may not work, it doesn't guarantee that this transform gonna run last, and may conflict with others (like ms_transform).-batiscaph_steps(all). -compile({parse_transform, batiscaph_suite_transform}).
- finally run your ct_run, but also specify
BATISCAPH_NODE=batiscaph@(hostname)
env variable - after run you would see your test run displayed on http://localhost:HTTP_PORT
If you want to locally setup demo that was described in my blog, please check out demo-07-2017 git tag.