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

https://github.com/dogukanzorlu/pprof

Thanks!

Where Next?

Popular in Announcing Top

mischov
import Meeseeks.CSS html = HTTPoison.get!("https://news.ycombinator.com/").body for story <- Meeseeks.all(html, css("tr.athing")) do...
New
josevalim
Hi everyone, We would like to announce that Plataformatec is working on a new MySQL driver called MyXQL. Our goal is to eventually integ...
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 10167 134
New
bryanjos
Hi, I just published version 0.23.0 of Elixirscript. https://github.com/bryanjos/elixirscript/blob/master/CHANGELOG.md Most of the chan...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
Crowdhailer
Experimenting with this code. OK.try do user <- fetch_user(1) cart <- fetch_cart(1) order = checkout(cart, user) save_orde...
New
wojtekmach
Hey everyone! Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
markmark206
simple_feature_flags is a tiny package that lets you turn features on or off based on which environment (e.g. localhost, staging, product...
New
kevinlang
Hey all, We have made an Ecto3 Adapter for SQLite3, ecto_sqlite3! We have successfully on-boarded the full suite of integration tests (...
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

Other popular topics Top

marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
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 53690 245
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
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
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36128 110
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New

We're in Beta

About us Mission Statement