Live data from Hacker News

We used Elixir's Observer to hunt down bottlenecks

blog.sequin.io

1–10 of 43 posts

Re: We used Elixir's Observer to hunt down bottlenecks

#2
This is really cool. We use Elixir at work, but we mostly use it in a "traditional web app" (i.e. non-Elixir) way, of Docker containers deployed to independent AWS instances.

So I'm always intrigued by some of the more BEAM-specific things that folks do, like using `observer` on a remote (production??) node here, or distributed Elixir where the nodes communicate with each other, or "hot" code updates.

How do companies deploy Elixir in such a way to take advantage of all those things? Does Sequin talk anywhere about their deploy process and how their infrastructure looks?

Re: We used Elixir's Observer to hunt down bottlenecks

#5
recon and observer_cli are the tools I reach out first to debug any issues in production. In any other language, I usually think about how to reproduce the issue locally. With Elixir, I just get into a remote shell in the affected machine and live debug the issue, and there are cases where we applied hotfix by using eval right there from the shell. The idea of the remote shell itself is alien to most languages.

Re: We used Elixir's Observer to hunt down bottlenecks

#8
post #7

So, the graphic at the top of the article (on mobile) is AI-generated, right? The character's fingers are smooshed. Interesting to see this approach to article graphics after I first read about it on HN recently.

It is. Dall-e did the heavy lifting, I tweaked with Photoshop

> Painting of a detective from the 1800s, portrait, looking at a magnifying glass at a computer monitor, digital art

Re: We used Elixir's Observer to hunt down bottlenecks

#9

recon and observer_cli are the tools I reach out first to debug any issues in production. In any other language, I usually think about how to reproduce the issue locally. With Elixir, I just get into a remote shell in the affected machine and live debug the issue, and there are cases where we applied hotfix by using eval right there from the shell. The idea of the remote shell itself is alien to most languages.

And unfortunately the kind of thing that compliance flags as a big no-no once you've got any kind of filing or privacy requirements.

Re: We used Elixir's Observer to hunt down bottlenecks

#10
post #6

Sounds like there are some very nice observability features built into BEAM. I wish NodeJS had something similar!

The BEAM is really cool, and was actually originally intended to be a bare-metal operating system. That's why it has so many features that are useful for operations: they couldn't assume you'd have any other tooling available, and often didn't even have physical access to the machines that were running it.
Post reply on HN