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”

Last Post!

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:

Where Next?

Popular in Discussions Top

scouten
I’m looking for a host for the server part of a small (personal) side project that I’m working on. It’s currently written in Node.js and ...
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 20070 166
New
AstonJ
If a newbie asked you about Phoenix Contexts, how would you explain the basics to them? Feel free to be as concise or in-depth as you li...
New
wmnnd
The Go vs Elixir thread got me thinking: Would it be too hard to implement a simple mechanism for creating Go-style static app binaries f...
New
mmmrrr
Just saw that dhh announced https://hotwire.dev/ Is it just me or is this essentially live view? :smiley: Although I like the “iFrame-e...
New
crispinb
On reading dhh’s latest The One Person Framework it strikes me that Phoenix with LiveView is already pretty much this. However, never hav...
New
shishini
I think this twitter post and youtube video didn’t get as much attention as I hoped I am still new to Elixir, so can’t really judge ...
New

Other popular topics Top

grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 54092 488
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54996 245
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 44167 214
New

We're in Beta

About us Mission Statement