Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Diagnosing bugs in production with Elixir

Daniel
August 06, 2021

Diagnosing bugs in production with Elixir

In this talk some useful tools to debug applications written in Elixir in production are shown, specially for memory leak and tracing cases, exemplified via a simple GenServer, that is myself.

Daniel

August 06, 2021
Tweet

More Decks by Daniel

Other Decks in Programming

Transcript

  1. Diagnosing bugs in production with Elixir

    View Slide

  2. Who am I?

    View Slide

  3. View Slide

  4. /danielpilon
    /daniel-pilon
    /daniel_pilon

    View Slide

  5. I don't like to have bugs...

    View Slide

  6. ...but I love to solve them!

    View Slide

  7. It's a great opportunity to learn

    View Slide

  8. "If I don't use it, I lose it"

    View Slide

  9. Enjoy your bugs!

    View Slide

  10. Yet another memory leak story

    View Slide

  11. View Slide

  12. So, where do we start?

    View Slide

  13. View Slide

  14. Mix, Distillery and Elixir releases

    View Slide

  15. View Slide

  16. Going roots: :sys, :erlang and :dbg modules

    View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. The Observer UI

    View Slide

  26. View Slide

  27. View Slide

  28. iex> :observer.start

    View Slide

  29. View Slide

  30. The Observer CLI

    View Slide

  31. View Slide

  32. iex> :observer_cli.start

    View Slide

  33. View Slide

  34. Recon

    View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  38. View Slide

  39. View Slide

  40. View Slide

  41. View Slide

  42. View Slide

  43. View Slide

  44. Rexbug

    View Slide

  45. View Slide

  46. Wrapping up...

    View Slide

  47. Fulfill your toolbox!

    View Slide

  48. Explore! (ExProf, fprof, eflame etc)

    View Slide

  49. Enjoy your bugs!

    View Slide

  50. Thank you!

    View Slide