dogukanzorlu

dogukanzorlu

Generate pprof and HTTP serve using a fprof data

Hi everyone,

As you know, Elixir does not have a built-in pprof library. In general Erlang/Elixir has very powerful and diverse profiling tools and as a cultural difference it doesn’t have pprof for observation at least like golang. However, you may not use or support Elixir with tools that use pprof ad-hoc.

I am happy to announce to you this library, in which I try to generate as meaningful pprof as possible using fprof.

Please do not hesitate for any kind of positive or negative criticism and support. I am open to any contribution that wants to provide support on a wider scale. Also, please don’t skip the parts that you think could have been written better on the basis of code :slight_smile: Do not ignore the fact that I created this library in 2 days and it is very lacking :slight_smile:

Documentation
Hex documentation: Pprof

Aim
The observation and profiling culture of erlang and elixir is different from other languages.
Elixir/Erlang runs on a virtual machine (a.k.a beam) and each block of code represents a process.
Erlang provides many tools internally for monitoring abstracted processes and processes dependent functions.
This library produces as meaningful pprof output as possible using the built-in Erlang profiling tools. Thus, it tries to spread the Erlang/Elixir observability with pprof-based ad-hoc profiling tools.

A few important things

  • This library an experimental and still under development, a library that needs to be careful to use on the production line.
  • The accuracy of the outputs has been proven by testing with cross-tools. But this alpha version does not offer a full pprof service.
  • fprof significantly slows down the application it is running on. It monitors all processes and collects their tracing data.
    Therefore, even a 10-second data collection in large-scale applications can mean GBs of data.
    It is recommended that the scrape seconds do not exceed 5 in order not to get lost in the abundance of data. More information: :fprof

Thanks!

Where Next?

Popular in Libraries Top

woylie
I released Doggo, a collection of unstyled Phoenix components. Features Unstyled Phoenix components. Storybook that can be added to...
New
mindok
What is ContEx? A pure Elixir server-side data plotting/charting library outputting SVG. It has nice barcharts in particular and works g...
New
michalmuskala
Another small library today. PersistentEts Hex: persistent_ets | Hex GitHub: GitHub - michalmuskala/persistent_ets Ets table backed by...
New
wfgilman
I’ve cleaned up and open sourced three financial libraries I was using for my company. They are bindings for the APIs of these three comp...
New
tfwright
After working on it for a couple of months and using it in production for most of that time, today I’ve released LiveAdmin, a LiveView ba...
New
Qqwy
Solution is a library to help you with working with ok/error-tuples in case and with-expressions by exposing special matching macros, as ...
New
alisinabh
Hey everyone i’ve developed a library for Jalaali calendar for elixir which supports converting Gregorian dates to Jalaali and vice vers...
New
wmnnd
Hi there, for my project DBLSQD, I needed a file storage solution that is a bit more flexible than Arc. Because I thought others might f...
New
mtrudel
Bandit is an HTTP server for Plug and WebSock apps. Bandit is written entirely in Elixir and is built atop Thousand Island. It can serve...
New
KallDrexx
For a good number of months I've been working on creating a very basic RTMP live video streaming server. Now that I have a very, very ba...
New

Other popular topics Top

srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New

Sub Categories:

We're in Beta

About us Mission Statement