arkgil

arkgil

Erlang Performance Lab

Hello everyone!

Erlang Performance Lab is a tool for developers working with the BEAM, which aims to help with analysis of performance and behaviour of their systems.

Our goal is to provide a tool which will allow folks to see and understand what’s happening inside their systems at first few glances. That’s why we focus on visualising system’s behaviour rather than displaying raw debug information, which may be more detailed, but much harder to comprehend. We strive to make EPL useful for experienced developers, as well as people just getting into the BEAM world. Please note that it’s not meant to be a production-ready monitoring solution, but rather a debugging tool used in your day-to-day development.

Currently our three main “views” are:

  • general node info, memory usage and processes count
  • visualisation of applications’ supervision trees
  • visualisation of network traffic between nodes in a cluster, and visualisation of message passing inside a single node

And a little teaser:

Usage

EPL is portable, meaning you only need Erlang installed on your machine. Then download our prebuilt escript and you’re good to go. You can find download link on our website. To see what it’s all about, follow examples in the README.

Contributing

EPL is completely open-source, and we’d very much appreciate any kind of contributions, be it general usability feedback, finding bugs (:blush:), or developing new views and extending existing ones!

We’re announcing it here today, because just 2 hours ago we merged a pull request, which allows development of backend plugins in Elixir!

Resources

If you have any questions regarding EPL, our vision, roadmap, favourite color, don’t hesitate to ask here or post an issue on Github. :slight_smile:

Most Liked

OvermindDL1

OvermindDL1

Ooo this looks fascinating! Thanks for the post!

arkgil

arkgil

I’m glad you like it :slight_smile: Have fun and break it!

arkgil

arkgil

Great to hear that you’ve already found it useful!

We’re currently working on polishing existing views. Next on the roadmap are:

  • Drawing flame graphs for the processes
  • Tracking messages received by the process, recording how they affect its state, and drawing it on a “timeline”
mkacper

mkacper

I’ve just published a blog post which presents an interesting ErlangPL use case. Here is the link: https://medium.com/@mentel.kk/using-erlang-performance-lab-with-a-real-project-f101f39619c7
I encourage you to read it! :slight_smile:

aseigo

aseigo

I used this in a recent presentation on Elixir to show the clustering features in action … the eye-candy really grabbed people, and I’ll continue to monitor the project as it matures to provide further tools. Thanks to everyone who is working on this!

Another interesting tool in this category that i found (and have also used in presentations :slight_smile: is GitHub - koudelka/visualixir: A process/message visualizer for BEAM nodes.💪👁 · GitHub

Where Next?

Popular in Discussions Top

chuck
Let me start by stating an assumption: Phoenix is a great approach to building REST APIs. There are many reasons for this, but I will ass...
New
pillaiindu
I want to convert a Phoenix LiveView CRUD website to a CRUD mobile app. What do you think is the easiest way to do so?
New
ricklove
I was just introduced to Elixir and Phoenix. I was told about the 2 million websocket test that was done 2 years ago. From my research, t...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 19568 166
New
sergio
There’s a new TIOBE index report that came out that shows Elixir is still not in the top 50 used languages. It also goes on to call Elix...
New
restack_oslo
Hello, Please pardon me for any faux paux. I am 46 and this is my first time on a forum of any kind. I wanted to to get answers from tho...
New
jsonify
So, is Heroku the only free option for hosting Phoenix/Elixir at this point? I’m not ready to commit to paying monthly and was wondering ...
New
tomekowal
Hey guys! I want to create a toy project that shows a chart of temperature over time and updates every 5 seconds. I feel LiveView is per...
New
joeerl
I’m playing with Elixir - It’s fun. I think @rvirding does give Elixir courses these days. Re: files and database - when I given Erlang ...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

Other popular topics Top

skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New

We're in Beta

About us Mission Statement