Skip to content
This repository has been archived by the owner on Feb 5, 2020. It is now read-only.

Project: Erlang Lab

Michal Slaski edited this page Feb 6, 2019 · 3 revisions

Erlang Lab is a tool for developers working on systems based on the BEAM virtual machine. It helps with observing a system.

The project consists of Erlang back-end and React front-end. The UI has also Elm-based examples for front-end developers preferring Elm over JS. At present there are views for visualising supervision tree, inter-node and inter-process traffic, and ETS tables operations.

There are two ideas listed below, but students can provide their own ideas too!

Idea #1: Reduce the cost of collecting trace events

Erlang Lab core relies on tracing events such as message passing. In systems with many messages being sent between processes, the cost of collecting and aggregating trace events may be too high for a single CPU core processing the events, in which case rendering the UI is delayed and UX is poor.

The cost could be reduced if the counters aggregating measurements would be implemented on top of the counters or if the trace event handling would be implemented in NIF functions.

Expected results: New erlangpl core with more efficient trace events handler.

Knowledge prerequisites: Intermediate Erlang, Basic JS

Possible Mentors: Michał Ślaski, Kacper Mentel

Idea #2: Render telemetry measurements

Erlang Lab UI relies on Vizceral for rendering its visualisations of nodes and processes. Some modern Erlang and Elixir systems adopt the telemetry library for metrics and instrumentation.

This project aims at rendering some useful information derived from telemetry events. Such information should be rendered in the context of a process or a node.

Expected results: New erlangpl plugin which renders information derived from telemetry events in the UI.

Knowledge prerequisites: Intermediate Erlang, Basic JS or Elm

Possible Mentors: Michał Ślaski, Kacper Mentel