{"id":40305881,"url":"https://github.com/vladimir-vg/batiscaph","last_synced_at":"2026-01-20T06:05:17.296Z","repository":{"id":62428994,"uuid":"121415990","full_name":"vladimir-vg/batiscaph","owner":"vladimir-vg","description":"Currently inactive. Erlang trace visualizer.","archived":false,"fork":false,"pushed_at":"2018-06-20T10:56:05.000Z","size":5520,"stargazers_count":37,"open_issues_count":13,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-09-27T13:31:22.246Z","etag":null,"topics":["erlang","tracing","visualization"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vladimir-vg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-13T17:55:35.000Z","updated_at":"2023-02-18T09:47:03.000Z","dependencies_parsed_at":"2022-11-01T20:04:58.761Z","dependency_job_id":null,"html_url":"https://github.com/vladimir-vg/batiscaph","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/vladimir-vg/batiscaph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir-vg%2Fbatiscaph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir-vg%2Fbatiscaph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir-vg%2Fbatiscaph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir-vg%2Fbatiscaph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vladimir-vg","download_url":"https://codeload.github.com/vladimir-vg/batiscaph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladimir-vg%2Fbatiscaph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28597087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erlang","tracing","visualization"],"created_at":"2026-01-20T06:04:20.992Z","updated_at":"2026-01-20T06:05:17.288Z","avatar_url":"https://github.com/vladimir-vg.png","language":"JavaScript","funding_links":["https://www.patreon.com/VladimirVG"],"categories":[],"sub_categories":[],"readme":"# Batiscaph [![Build Status](https://travis-ci.com/vladimir-vg/batiscaph.svg?branch=master)](https://travis-ci.com/vladimir-vg/batiscaph) [![Join the chat at https://gitter.im/batiscaph/Lobby](https://badges.gitter.im/batiscaph/Lobby.svg)](https://gitter.im/batiscaph/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) [![Become a Patron](https://pp.userapi.com/c846016/v846016003/50faf/0W4mEbYb_5s.jpg)](https://www.patreon.com/VladimirVG)\n\nBatiscaph is a research device that submerges into ocean and explores unknown space.\nThat's what this tool does -- submerges into Erlang node and observes how programs work in it.\n\nHumans are more effective operating with graphs and shapes rather than symbols.\nBatiscaph takes advantage of this fact and provides visual environment that\nhelps to understand your programs.\n\nProject is still in early development and not ready for production yet.\n\n# Video demo\n\nI've recorded a small video that explains what it looks like:\n\n[![Batiscaph: visualizing logs and processes](https://img.youtube.com/vi/VNr7o9eg4Ck/0.jpg)](https://www.youtube.com/watch?v=VNr7o9eg4Ck)\n\n# Try it out\n\n0. Install Erlang (worked on 20 version).\n\n1. Install [batiscaph probe](https://github.com/vladimir-vg/batiscaph_probe) as a dependency into your application.\n   For Elixir: add `{:batiscaph_probe, \"~\u003e 0.1.1\"}` into deps in `mix.exs` file.\n   \n   For Erlang: add `{batiscaph_probe, \"0.1.1\"}` into deps in `rebar.config`.\n   Also add `batiscaph_probe` as a dependency into your `*.app.src` file (`applications` list) or start it manually via `application:ensure_all_started(batiscaph_probe).`\n\n2. Start batiscaph server on the same machine.\n   Clone repositiory, checkout stable version, run it:\n   ```\n   git clone https://github.com/vladimir-vg/batiscaph.git\n   cd batiscaph\n   git checkout v0.1.1\n   make run\n   ```\n\n3. Start your application.\n\n4. Open batiscaph web UI: http://0.0.0.0:8099/\n   \n   Choose (connected) instance id, likely it's gonna be your application.\n\n# Storage\n\nBy default Batiscaph will store everything in memory.\n\nIf you want to store data persistently you should use Clickhouse storage.\nIn order to use just define two environment variables: \n\n```\nexport CLICKHOUSE_DB = batiscaph\nexport CLICKHOUSE_URL = http://0.0.0.0:8123/\n```\n\nDon't forget to create a database with such name in advance.\n\nAfter defining these variables start batiscaph\nand then run following in Erlang shell:\n\n```\nbatiscaph_cmds:reset_storage().\n```\n\nThis will erase and create afresh necessary tables in Clickhouse for batiscaph.\nFrom this moment events should be stored persistently.\n\n# Development\n\nIn order to work on web UI you need to set up brunch javascript transpiling.\n\n```\ncd frontend\nnpm install .\nmake\n```\n\nThese commands should install all deps, and start a brunch server that will\nwait for changes and update js files in `backend/priv/compiled_static`.\n\n# Running tests\n\nBatiscaph uses docker containers for testing different environments (Erlang version, libraries).\nYou need to install docker to run tests.\n\nTo run tests with in-memory storage, just exec: `make ct_mnesia`.\n\nTo run tests with persistent storage, install Clickhouse first and create empty `batiscaph_test` database.\nThen run `make ct_clickhouse`.\n\n# Help and feedback\n\nI would really appreciate feedback, thoughts and ideas about this project.\nYou can share them in [gitter chat](https://gitter.im/batiscaph/Lobby), in [patreon comments](https://www.patreon.com/VladimirVG)\nor in [issues](https://github.com/vladimir-vg/batiscaph/issues).\n\nIf you like this project and want to see more features and bugfixes,\nplease support me on Patreon: https://www.patreon.com/VladimirVG\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimir-vg%2Fbatiscaph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladimir-vg%2Fbatiscaph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimir-vg%2Fbatiscaph/lists"}