Thinking Elixir Podcast

66: Tracing Production with Kai Wern Choong


Listen Later

We talk with Kai Wern Choong about his experience with tracing performance problems in production. We talk about what “tracing” means in a BEAM system, available tools like recon, great resources for learning how the tools work and general approaches for troubleshooting live production Elixir systems. Kai also shares his Livebook notebook setup for demonstrating tracing techniques in an interactive way.

Show Notes online - http://podcast.thinkingelixir.com/66

Elixir Community News

  • https://twitter.com/hexpm/status/1439268469296570368 – New version of Hex released that fixes issues with version downgrades and slow version resolutions. Run mix local.hex to upgrade.
  • https://hexdocs.pm/credo/1.6.0-rc.0/changelog.html#1-6-0 – Credo 1.6.0 was released with new "First Run Mode"
  • https://twitter.com/elixirphoenix/status/1438222537301843970 – Removing Phoenix compiler config change can speed up compilation times when on up-to-date versions
  • https://github.com/Qqwy/elixir-type_check – New library called TypeCheck
  • https://blog.oestrich.org/2021/09/introducing-aino/ – Eric Osterich is experimenting with an alternative HTTP framework for Elixir
  • https://github.com/oestrich/aino – The Aino project
  • https://techcrunch.com/2021/09/14/logistics-startup-stord-raises-90m-in-kleiner-perkins-led-round-becomes-a-unicorn-and-acquires-another-company/ – Stord, an Elixir company, raised $90M and became a "unicorn"
  • https://spawnfest.org/ – SpawnFest 2021 happened
  • https://github.com/spawnfest/eflambe – SpawnFest submission - rapid generation of flamegraphs
  • https://github.com/spawnfest/Sketch – SpawnFest submission - library for creating generative art with Elixir
  • https://github.com/spawnfest/lotus – SpawnFest submission - Lotus is a Surface UI wrapper for UIKit
  • https://github.com/spawnfest/Discovery – SpawnFest submission - Platform for hosting realtime, stateful servers with zero downtime deployment and horizontal scaling on Kubernetes
  • https://github.com/spawnfest/crash – SpawnFest submission - Crash is a simple (distributed) docker-on-docker Continuous Integration system written in Elixir
  • Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at [email protected]

    Discussion Resources

    • https://kaiwern.com/posts/2021/06/27/debugging-with-tracing-in-elixir-with-recon_trace/
    • https://www.naluri.life/
    • https://ferd.github.io/recon/recon.html
    • https://hex.pm/packages/recon
    • https://twitter.com/kw7oe/status/1409126300636254219
    • https://github.com/kw7oe/livebook-notebooks/blob/main/debugging-with-tracing-in-elixir-with-recon_trace.livemd – Livebook notebook showing tracing examples
    • https://www.youtube.com/watch?v=sR9h3DZAA74 – Debugging Live Systems on the BEAM talk by Jeffery Utter
    • https://www.youtube.com/watch?v=OR2Gc6_Le2U – Operable Erlang and Elixir talk by Fred Hebert (skip to 25:51, where he started talking about tracing)
    • https://kaiwern.com/posts/2020/11/02/debugging-with-tracing-in-elixir/ – Tracing with dbg modules
    • https://en.wikipedia.org/wiki/Tracing_(software)
    • https://erlang.org/doc/man/dbg.html – dbg module in Erlang
    • :dbg.fun2ms
    • https://kubernetes.io/blog/2017/12/using-ebpf-in-kubernetes/
    • https://github.com/cilium/cilium
    • https://opentelemetry.io/docs/erlang/
    • https://www.brendangregg.com/blog/2019-01-01/learn-ebpf-tracing.html
    • https://www.erlang-solutions.com/capabilities/wombatoam/
    • https://hex.pm/packages/recon_ex
    • https://erlang-in-anger.com/ – Erlang in Anger (Chapter 9)
    • https://www.thegreatcodeadventure.com/testing-genservers-with-erlang-trace/ – Testing GenServers with Erlang Trace
    • http://blog.plataformatec.com.br/2016/04/how-to-trace-elixir-nodes-with-erlyberly/ – How to trace Elixir nodes with Erlyberly - Plataformatec Blog
    • http://erlang.org/doc/man/seq_trace.html#sequential-tracing – Seq_trace
    • http://erlang.org/doc/man/erlang.html#trace-3 – Erlang:trace
    • https://github.com/andytill/erlyberly – Erlang tracing for the masses
    • https://github.com/tatsuya6502/recon_ex – Elixir wrapper for Recon, tools to diagnose Erlang VM safely in production
    • Guest Information

      • https://twitter.com/kw7oe – on Twitter
      • https://github.com/kw7oe/ – on Github
      • https://kaiwern.com/ – Blog
      • Find us online

        • Message the show - @ThinkingElixir
        • Email the show - [email protected]
        • Mark Ericksen - @brainlid
        • David Bernheisel - @bernheisel
        • Cade Ward - @cadebward
        • ...more
          View all episodesView all episodes
          Download on the App Store

          Thinking Elixir PodcastBy ThinkingElixir.com

          • 4.9
          • 4.9
          • 4.9
          • 4.9
          • 4.9

          4.9

          32 ratings


          More shows like Thinking Elixir Podcast

          View all
          Hanselminutes with Scott Hanselman by Scott Hanselman

          Hanselminutes with Scott Hanselman

          377 Listeners

          Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

          Software Engineering Radio - the podcast for professional software developers

          272 Listeners

          The Changelog: Software Development, Open Source by Changelog Media

          The Changelog: Software Development, Open Source

          283 Listeners

          Talk Python To Me by Michael Kennedy

          Talk Python To Me

          592 Listeners

          Software Engineering Daily by Software Engineering Daily

          Software Engineering Daily

          624 Listeners

          Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

          Syntax - Tasty Web Development Treats

          982 Listeners

          REWORK by 37signals

          REWORK

          211 Listeners

          CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

          CoRecursive: Coding Stories

          189 Listeners

          Elixir Mix by Charles M Wood

          Elixir Mix

          13 Listeners

          Elixir Wizards by SmartLogic LLC

          Elixir Wizards

          22 Listeners

          The Stack Overflow Podcast by The Stack Overflow Podcast

          The Stack Overflow Podcast

          64 Listeners

          Beam Radio by Lars Wikman

          Beam Radio

          11 Listeners

          Oxide and Friends by Oxide Computer Company

          Oxide and Friends

          47 Listeners

          Elixir Mentor by Jacob Luetzow

          Elixir Mentor

          2 Listeners

          The Pragmatic Engineer by Gergely Orosz

          The Pragmatic Engineer

          52 Listeners